@cicctencent/agent-core 0.1.26 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/agent/engine.d.ts +5 -1
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +78 -49
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/history-manager.d.ts.map +1 -1
- package/dist/cjs/agent/history-manager.js +17 -2
- package/dist/cjs/agent/history-manager.js.map +1 -1
- package/dist/cjs/agent/llm-caller.d.ts +2 -9
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +69 -123
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/agent/tool-executor.d.ts +9 -6
- package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
- package/dist/cjs/agent/tool-executor.js +53 -59
- package/dist/cjs/agent/tool-executor.js.map +1 -1
- package/dist/cjs/agent/types.d.ts +50 -0
- package/dist/cjs/agent/types.d.ts.map +1 -1
- package/dist/cjs/agent/types.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/runtime/run-registry-interface.d.ts +5 -5
- package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.d.ts +15 -2
- package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.js +87 -25
- package/dist/cjs/runtime/run-registry.js.map +1 -1
- package/dist/cjs/utils/dsml-parser.d.ts +89 -0
- package/dist/cjs/utils/dsml-parser.d.ts.map +1 -0
- package/dist/cjs/utils/dsml-parser.js +289 -0
- package/dist/cjs/utils/dsml-parser.js.map +1 -0
- package/dist/cjs/utils/token-counter.d.ts.map +1 -1
- package/dist/cjs/utils/token-counter.js +20 -4
- package/dist/cjs/utils/token-counter.js.map +1 -1
- package/dist/esm/agent/engine.d.ts +5 -1
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +78 -49
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/history-manager.d.ts.map +1 -1
- package/dist/esm/agent/history-manager.js +17 -2
- package/dist/esm/agent/history-manager.js.map +1 -1
- package/dist/esm/agent/llm-caller.d.ts +2 -9
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +69 -123
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/agent/tool-executor.d.ts +9 -6
- package/dist/esm/agent/tool-executor.d.ts.map +1 -1
- package/dist/esm/agent/tool-executor.js +53 -59
- package/dist/esm/agent/tool-executor.js.map +1 -1
- package/dist/esm/agent/types.d.ts +50 -0
- package/dist/esm/agent/types.d.ts.map +1 -1
- package/dist/esm/agent/types.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/runtime/run-registry-interface.d.ts +5 -5
- package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.d.ts +15 -2
- package/dist/esm/runtime/run-registry.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.js +87 -25
- package/dist/esm/runtime/run-registry.js.map +1 -1
- package/dist/esm/utils/dsml-parser.d.ts +89 -0
- package/dist/esm/utils/dsml-parser.d.ts.map +1 -0
- package/dist/esm/utils/dsml-parser.js +283 -0
- package/dist/esm/utils/dsml-parser.js.map +1 -0
- package/dist/esm/utils/token-counter.d.ts.map +1 -1
- package/dist/esm/utils/token-counter.js +20 -4
- package/dist/esm/utils/token-counter.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { AgentEvent, Message, TokenUsage } from '../types.js';
|
|
2
2
|
import type { LLMProvider } from '../llm/types.js';
|
|
3
3
|
import type { ToolDefinition } from '../tool/types.js';
|
|
4
|
-
import type { RetryPolicy } from './types.js';
|
|
5
|
-
import type { HookEvent, HookContext, HookResult } from '../hooks/types.js';
|
|
4
|
+
import type { RetryPolicy, EngineContext } from './types.js';
|
|
6
5
|
import type { HistoryManager } from './history-manager.js';
|
|
7
6
|
/** LLM 调用配置 */
|
|
8
|
-
export interface LLMCallerConfig {
|
|
7
|
+
export interface LLMCallerConfig extends EngineContext {
|
|
9
8
|
/** 主 LLM Provider */
|
|
10
9
|
llmProvider: LLMProvider;
|
|
11
10
|
/** 降级 LLM Provider(可选) */
|
|
@@ -14,10 +13,6 @@ export interface LLMCallerConfig {
|
|
|
14
13
|
retryPolicy?: RetryPolicy;
|
|
15
14
|
/** LLM 推理超时(毫秒) */
|
|
16
15
|
llmTimeout: number;
|
|
17
|
-
/** Hook 执行器(由 Engine 注入) */
|
|
18
|
-
runHooks: (event: HookEvent, ctx: HookContext) => Promise<HookResult[]>;
|
|
19
|
-
/** 事件创建辅助(由 Engine 注入) */
|
|
20
|
-
createEvent: (sessionId: string, event: Record<string, unknown>) => AgentEvent;
|
|
21
16
|
/** 历史管理器(可选,用于上下文过长时压缩) */
|
|
22
17
|
historyManager?: HistoryManager;
|
|
23
18
|
}
|
|
@@ -66,7 +61,5 @@ export declare class LLMCaller {
|
|
|
66
61
|
private isContextTooLongError;
|
|
67
62
|
/** 单次 LLM 调用(流式),带诊断信息 */
|
|
68
63
|
private callOnceWithDiag;
|
|
69
|
-
/** 单次 LLM 调用(流式),返回 assistant message 或 null(保留向后兼容) */
|
|
70
|
-
private callOnce;
|
|
71
64
|
}
|
|
72
65
|
//# sourceMappingURL=llm-caller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-caller.d.ts","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAY,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"llm-caller.d.ts","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAY,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,eAAe;AACf,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,qBAAqB;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,0BAA0B;IAC1B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,WAAW;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,kBAAkB;AAClB,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAInC,0BAA0B;IAC1B,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI3C;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,WAAW,GACvB,cAAc,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IA0FhF,mBAAmB;IACnB,OAAO,CAAC,qBAAqB;IAO7B,0BAA0B;YACX,gBAAgB;CAqMhC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// LLMCaller — LLM 调用 + 重试 + 降级
|
|
3
3
|
// ============================================================
|
|
4
|
+
import { StreamingDSMLParser } from "../utils/dsml-parser.js";
|
|
4
5
|
/**
|
|
5
6
|
* LLM 调用管理器
|
|
6
7
|
*
|
|
@@ -164,6 +165,38 @@ export class LLMCaller {
|
|
|
164
165
|
let role = 'assistant';
|
|
165
166
|
let toolStreamingLastEmit = 0;
|
|
166
167
|
let finishReason;
|
|
168
|
+
// DSML 流式解析器(用于处理 DeepSeek 模型的 DSML 格式工具调用)。
|
|
169
|
+
// 解析器内部已处理「部分 DSML 标记前缀」的暂留,因此所有 content chunk
|
|
170
|
+
// 统一走 process(),由解析器决定哪些是文本增量、哪些暂留等待后续 chunk。
|
|
171
|
+
const dsmlParser = new StreamingDSMLParser();
|
|
172
|
+
// DSML 工具调用使用大偏移 index,避免与标准 delta.tool_calls 的 index 冲突
|
|
173
|
+
const DSML_INDEX_BASE = 1_000_000;
|
|
174
|
+
let dsmlToolCallIndex = 0;
|
|
175
|
+
/** 将 DSML 解析出的 ToolCall 写入 toolCallsMap,返回需发出的 tool_call 事件 */
|
|
176
|
+
const buildDSMLToolCallEvent = (tc) => {
|
|
177
|
+
const idx = DSML_INDEX_BASE + dsmlToolCallIndex++;
|
|
178
|
+
toolCallsMap.set(idx, {
|
|
179
|
+
id: tc.id,
|
|
180
|
+
name: tc.function.name,
|
|
181
|
+
args: tc.function.arguments,
|
|
182
|
+
});
|
|
183
|
+
// arguments 由 parseDSML 内部 JSON.stringify 生成,但仍兜底防非法 JSON
|
|
184
|
+
let input;
|
|
185
|
+
try {
|
|
186
|
+
input = JSON.parse(tc.function.arguments);
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
input = { _raw: tc.function.arguments };
|
|
190
|
+
}
|
|
191
|
+
return this.config.createEvent(sessionId, {
|
|
192
|
+
type: 'tool_call',
|
|
193
|
+
toolCallId: tc.id,
|
|
194
|
+
toolName: tc.function.name,
|
|
195
|
+
displayName: tc.function.name,
|
|
196
|
+
input,
|
|
197
|
+
startedAt: Date.now(),
|
|
198
|
+
});
|
|
199
|
+
};
|
|
167
200
|
for await (const chunk of stream) {
|
|
168
201
|
if (abortSignal.aborted)
|
|
169
202
|
break;
|
|
@@ -181,8 +214,14 @@ export class LLMCaller {
|
|
|
181
214
|
if (delta.content) {
|
|
182
215
|
const text = typeof delta.content === 'string' ? delta.content : '';
|
|
183
216
|
if (text) {
|
|
184
|
-
|
|
185
|
-
|
|
217
|
+
const result = dsmlParser.process(text);
|
|
218
|
+
if (result.textDelta) {
|
|
219
|
+
contentParts.push(result.textDelta);
|
|
220
|
+
yield this.config.createEvent(sessionId, { type: 'message', content: result.textDelta, delta: true });
|
|
221
|
+
}
|
|
222
|
+
for (const tc of result.completedToolCalls) {
|
|
223
|
+
yield buildDSMLToolCallEvent(tc);
|
|
224
|
+
}
|
|
186
225
|
}
|
|
187
226
|
}
|
|
188
227
|
if (delta.tool_calls) {
|
|
@@ -213,6 +252,15 @@ export class LLMCaller {
|
|
|
213
252
|
if (delta.role)
|
|
214
253
|
role = delta.role;
|
|
215
254
|
}
|
|
255
|
+
// 流结束后,处理 DSML 解析器中可能残留的缓冲区(完整块解析 + 未闭合块兜底)
|
|
256
|
+
const flushResult = dsmlParser.flush();
|
|
257
|
+
if (flushResult.textDelta) {
|
|
258
|
+
contentParts.push(flushResult.textDelta);
|
|
259
|
+
yield this.config.createEvent(sessionId, { type: 'message', content: flushResult.textDelta, delta: true });
|
|
260
|
+
}
|
|
261
|
+
for (const tc of flushResult.completedToolCalls) {
|
|
262
|
+
yield buildDSMLToolCallEvent(tc);
|
|
263
|
+
}
|
|
216
264
|
const fullContent = contentParts.join('') || null;
|
|
217
265
|
const fullReasoning = reasoningParts.join('') || null;
|
|
218
266
|
const toolCalls = [];
|
|
@@ -236,26 +284,27 @@ export class LLMCaller {
|
|
|
236
284
|
// 空响应:保留原始诊断信息(finish_reason),由前端展示
|
|
237
285
|
const detail = finishReason ? ` (finish_reason: ${finishReason})` : '';
|
|
238
286
|
const emptyErr = `Empty response (no content and no tool calls)${detail}`;
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
// 诊断:打印累积的输出
|
|
252
|
-
console.warn(`[LLMCaller] Output: contentParts=${contentParts.length} (${fullContent?.length || 0} chars), reasoningParts=${reasoningParts.length} (${fullReasoning?.length || 0} chars), toolCallsMap=${toolCallsMap.size}, role=${role}, finish_reason=${finishReason || 'none'}, usage=${JSON.stringify(chunkUsage)}`);
|
|
253
|
-
if (toolCallsMap.size > 0) {
|
|
254
|
-
for (const [idx, entry] of toolCallsMap) {
|
|
255
|
-
console.warn(`[LLMCaller] toolCall[${idx}] id=${entry.id || '(empty)'}, name=${entry.name || '(empty)'}, argsLen=${entry.args.length}, args=${entry.args.slice(0, 200)}`);
|
|
287
|
+
// P3 #14: 诊断日志仅在 DEBUG 环境变量启用时输出,避免生产热路径性能影响
|
|
288
|
+
if (process.env.DEBUG_LLM_DIAGNOSTICS === '1' || process.env.NODE_ENV === 'development') {
|
|
289
|
+
console.warn(`[LLMCaller] Empty response (${isFallback ? 'fallback' : 'primary'}), finish_reason=${finishReason || 'none'}`);
|
|
290
|
+
console.warn(`[LLMCaller] === Empty response diagnostics (${isFallback ? 'fallback' : 'primary'}) ===`);
|
|
291
|
+
console.warn(`[LLMCaller] Input: ${messages.length} messages, ${toolDefs.length} tools`);
|
|
292
|
+
for (let i = 0; i < messages.length; i++) {
|
|
293
|
+
const m = messages[i];
|
|
294
|
+
const contentPreview = typeof m.content === 'string'
|
|
295
|
+
? m.content.slice(0, 200)
|
|
296
|
+
: JSON.stringify(m.content).slice(0, 200);
|
|
297
|
+
const toolCallsInfo = m.tool_calls ? `, tool_calls=${m.tool_calls.length}` : '';
|
|
298
|
+
console.warn(`[LLMCaller] msg[${i}] role=${m.role}, len=${typeof m.content === 'string' ? m.content.length : JSON.stringify(m.content).length}${toolCallsInfo}: ${contentPreview}`);
|
|
256
299
|
}
|
|
300
|
+
console.warn(`[LLMCaller] Output: contentParts=${contentParts.length} (${fullContent?.length || 0} chars), reasoningParts=${reasoningParts.length} (${fullReasoning?.length || 0} chars), toolCallsMap=${toolCallsMap.size}, role=${role}, finish_reason=${finishReason || 'none'}, usage=${JSON.stringify(chunkUsage)}`);
|
|
301
|
+
if (toolCallsMap.size > 0) {
|
|
302
|
+
for (const [idx, entry] of toolCallsMap) {
|
|
303
|
+
console.warn(`[LLMCaller] toolCall[${idx}] id=${entry.id || '(empty)'}, name=${entry.name || '(empty)'}, argsLen=${entry.args.length}, args=${entry.args.slice(0, 200)}`);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
console.warn(`[LLMCaller] === End diagnostics ===`);
|
|
257
307
|
}
|
|
258
|
-
console.warn(`[LLMCaller] === End diagnostics ===`);
|
|
259
308
|
return { result: null, contextTooLong: false, emptyResponse: true, usage: chunkUsage, error: emptyErr };
|
|
260
309
|
}
|
|
261
310
|
return { result: assistant, contextTooLong: false, usage: chunkUsage, error: null };
|
|
@@ -267,109 +316,6 @@ export class LLMCaller {
|
|
|
267
316
|
return { result: null, contextTooLong, usage: chunkUsage, error: errMsg };
|
|
268
317
|
}
|
|
269
318
|
}
|
|
270
|
-
/** 单次 LLM 调用(流式),返回 assistant message 或 null(保留向后兼容) */
|
|
271
|
-
async *callOnce(sessionId, messages, toolDefs, abortSignal, provider, isFallback) {
|
|
272
|
-
try {
|
|
273
|
-
// Hook: before_ll_call(仅主 Provider 首次调用时触发)
|
|
274
|
-
if (!isFallback) {
|
|
275
|
-
await this.config.runHooks('before_ll_call', {
|
|
276
|
-
sessionId,
|
|
277
|
-
iteration: 0,
|
|
278
|
-
messages,
|
|
279
|
-
tools: toolDefs,
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
// 使用流式 API
|
|
283
|
-
const stream = provider.chatStream({
|
|
284
|
-
messages,
|
|
285
|
-
tools: toolDefs.length > 0 ? toolDefs : undefined,
|
|
286
|
-
toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
|
|
287
|
-
abortSignal,
|
|
288
|
-
});
|
|
289
|
-
// 累积流式数据
|
|
290
|
-
let contentParts = [];
|
|
291
|
-
let reasoningParts = [];
|
|
292
|
-
const toolCallsMap = new Map();
|
|
293
|
-
let role = 'assistant';
|
|
294
|
-
let chunkUsage;
|
|
295
|
-
let toolStreamingLastEmit = 0; // 工具参数流式生成进度追踪
|
|
296
|
-
for await (const chunk of stream) {
|
|
297
|
-
if (abortSignal.aborted)
|
|
298
|
-
break;
|
|
299
|
-
if (chunk.usage) {
|
|
300
|
-
chunkUsage = chunk.usage;
|
|
301
|
-
}
|
|
302
|
-
const delta = chunk.delta;
|
|
303
|
-
if (delta.reasoning_content) {
|
|
304
|
-
reasoningParts.push(delta.reasoning_content);
|
|
305
|
-
yield this.config.createEvent(sessionId, { type: 'thinking', content: delta.reasoning_content });
|
|
306
|
-
}
|
|
307
|
-
if (delta.content) {
|
|
308
|
-
const text = typeof delta.content === 'string' ? delta.content : '';
|
|
309
|
-
if (text) {
|
|
310
|
-
contentParts.push(text);
|
|
311
|
-
yield this.config.createEvent(sessionId, { type: 'message', content: text, delta: true });
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
if (delta.tool_calls) {
|
|
315
|
-
for (const tc of delta.tool_calls) {
|
|
316
|
-
const idx = tc.index ?? 0;
|
|
317
|
-
if (!toolCallsMap.has(idx)) {
|
|
318
|
-
toolCallsMap.set(idx, { id: '', name: '', args: '' });
|
|
319
|
-
}
|
|
320
|
-
const entry = toolCallsMap.get(idx);
|
|
321
|
-
if (tc.id)
|
|
322
|
-
entry.id = tc.id;
|
|
323
|
-
if (tc.function?.name)
|
|
324
|
-
entry.name = tc.function.name;
|
|
325
|
-
if (tc.function?.arguments)
|
|
326
|
-
entry.args += tc.function.arguments;
|
|
327
|
-
}
|
|
328
|
-
// 工具参数流式生成时,定期发出 thinking 事件让 UI 有可见进度
|
|
329
|
-
const totalLen = Array.from(toolCallsMap.values()).reduce((s, e) => s + e.args.length, 0);
|
|
330
|
-
const threshold = Math.max(toolStreamingLastEmit * 2, 500);
|
|
331
|
-
if (totalLen - toolStreamingLastEmit >= threshold) {
|
|
332
|
-
toolStreamingLastEmit = totalLen;
|
|
333
|
-
const names = Array.from(toolCallsMap.values()).map(e => e.name || 'tool').join(', ');
|
|
334
|
-
yield this.config.createEvent(sessionId, {
|
|
335
|
-
type: 'thinking',
|
|
336
|
-
content: `⏳ Generating ${names} parameters (${totalLen} chars)...`,
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
if (delta.role)
|
|
341
|
-
role = delta.role;
|
|
342
|
-
}
|
|
343
|
-
// 组装完整 assistant message
|
|
344
|
-
const fullContent = contentParts.join('') || null;
|
|
345
|
-
const fullReasoning = reasoningParts.join('') || null;
|
|
346
|
-
const toolCalls = [];
|
|
347
|
-
const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
348
|
-
for (const [, entry] of sortedEntries) {
|
|
349
|
-
if (entry.id && entry.name) {
|
|
350
|
-
toolCalls.push({
|
|
351
|
-
id: entry.id,
|
|
352
|
-
type: 'function',
|
|
353
|
-
function: { name: entry.name, arguments: entry.args },
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
const assistant = {
|
|
358
|
-
role,
|
|
359
|
-
content: fullContent,
|
|
360
|
-
...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
|
|
361
|
-
...(fullReasoning ? { reasoning_content: fullReasoning } : {}),
|
|
362
|
-
};
|
|
363
|
-
if (!fullContent && toolCalls.length === 0) {
|
|
364
|
-
return null; // 空响应,由重试逻辑处理
|
|
365
|
-
}
|
|
366
|
-
return assistant;
|
|
367
|
-
}
|
|
368
|
-
catch (err) {
|
|
369
|
-
console.warn(`[LLMCaller] LLM call failed (${isFallback ? 'fallback' : 'primary'}):`, err?.message || err);
|
|
370
|
-
return null;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
319
|
}
|
|
374
320
|
/** 辅助:异步延迟 */
|
|
375
321
|
function sleep(ms) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm-caller.js","sourceRoot":"","sources":["../../../src/agent/llm-caller.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,12 @@ import type { AgentEvent, Message, ToolCall, ToolCallRecord } from '../types.js'
|
|
|
2
2
|
import type { ToolRegistry } from '../tool/registry.js';
|
|
3
3
|
import type { ToolContext } from '../tool/types.js';
|
|
4
4
|
import type { SecurityGuard } from '../security/guard.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { HookContext, HookResult } from '../hooks/types.js';
|
|
6
6
|
import type { Middleware } from '../middleware/types.js';
|
|
7
7
|
import type { HistoryManager } from './history-manager.js';
|
|
8
|
+
import type { EngineContext } from './types.js';
|
|
8
9
|
/** 工具执行配置 */
|
|
9
|
-
export interface ToolExecutorConfig {
|
|
10
|
+
export interface ToolExecutorConfig extends EngineContext {
|
|
10
11
|
/** Tool Registry */
|
|
11
12
|
toolRegistry: ToolRegistry;
|
|
12
13
|
/** 安全守卫(可选) */
|
|
@@ -15,12 +16,8 @@ export interface ToolExecutorConfig {
|
|
|
15
16
|
deniedTools?: string[];
|
|
16
17
|
/** 单工具执行超时(毫秒) */
|
|
17
18
|
toolTimeout: number;
|
|
18
|
-
/** Hook 执行器 */
|
|
19
|
-
runHooks: (event: HookEvent, ctx: HookContext) => Promise<HookResult[]>;
|
|
20
19
|
/** 中间件工具阶段执行器 */
|
|
21
20
|
runMiddlewareToolPhase: (phase: 'onToolBefore' | 'onToolAfter', ctx: HookContext) => Promise<HookResult[]>;
|
|
22
|
-
/** 事件创建辅助 */
|
|
23
|
-
createEvent: (sessionId: string, event: Record<string, unknown>) => AgentEvent;
|
|
24
21
|
/** 历史管理器 */
|
|
25
22
|
historyManager: HistoryManager;
|
|
26
23
|
/** 中间件列表 */
|
|
@@ -63,6 +60,12 @@ export declare class AgentToolExecutor {
|
|
|
63
60
|
constructor(config: ToolExecutorConfig);
|
|
64
61
|
/** 执行一批 tool_calls(按并发属性分组) */
|
|
65
62
|
executeToolCalls(state: ToolLoopState, toolCalls: ToolCall[]): AsyncGenerator<AgentEvent>;
|
|
63
|
+
/**
|
|
64
|
+
* P2 #9: 统一的工具结果输出辅助 — 消除 8+ 处重复的 push+addHistory+record 模式
|
|
65
|
+
*
|
|
66
|
+
* 推送 tool_result 事件 + 写入历史 + 记录到 toolCallRecords
|
|
67
|
+
*/
|
|
68
|
+
private emitToolResult;
|
|
66
69
|
/** 按并发属性将 tool_calls 分组 */
|
|
67
70
|
private groupByConcurrency;
|
|
68
71
|
/** 并行执行一组工具(按顺序推送事件和结果) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAa,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,aAAa;AACb,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,oBAAoB;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,sBAAsB,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3G,YAAY;IACZ,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY;IACZ,aAAa,EAAE,MAAM,UAAU,EAAE,GAAG,SAAS,CAAC;CAC/C;AAQD,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAqB;IAEnC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IAEtD,4BAA4B;IAC5B,OAAO,CAAC,cAAc,CAAc;gBAExB,MAAM,EAAE,kBAAkB;IAKtC,+BAA+B;IACxB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;IAmBhG;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAmDtB,2BAA2B;IAC3B,OAAO,CAAC,kBAAkB;IA0B1B,2BAA2B;YACZ,wBAAwB;IAsDvC,gCAAgC;YACjB,kBAAkB;IAkPjC,eAAe;YACD,cAAc;YA4Db,yBAAyB;IAsBxC,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAIvB,iBAAiB;IACjB,OAAO,CAAC,kBAAkB;IAQ1B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAoD9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAyC5B"}
|
|
@@ -40,6 +40,46 @@ export class AgentToolExecutor {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
// ---- 内部方法 ----
|
|
43
|
+
/**
|
|
44
|
+
* P2 #9: 统一的工具结果输出辅助 — 消除 8+ 处重复的 push+addHistory+record 模式
|
|
45
|
+
*
|
|
46
|
+
* 推送 tool_result 事件 + 写入历史 + 记录到 toolCallRecords
|
|
47
|
+
*/
|
|
48
|
+
emitToolResult(state, call, result, isError, duration, actualArgs, updateFailureCount = true) {
|
|
49
|
+
// 推送 SSE 事件
|
|
50
|
+
const event = this.config.createEvent(state.sessionId, {
|
|
51
|
+
type: 'tool_result',
|
|
52
|
+
tool: call.function.name,
|
|
53
|
+
result,
|
|
54
|
+
isError,
|
|
55
|
+
duration,
|
|
56
|
+
callId: call.id,
|
|
57
|
+
});
|
|
58
|
+
// 安全脱敏 + 上下文压缩
|
|
59
|
+
const sanitizedResult = this.config.securityGuard
|
|
60
|
+
? this.config.securityGuard.sanitizeCredentials(result)
|
|
61
|
+
: result;
|
|
62
|
+
const truncatedResult = this.config.historyManager.processToolOutput(sanitizedResult, call.id, call.function.name, state.sessionId);
|
|
63
|
+
// 写入消息历史
|
|
64
|
+
const toolMessage = { role: 'tool', tool_call_id: call.id, content: truncatedResult };
|
|
65
|
+
state.messages.push(toolMessage);
|
|
66
|
+
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
67
|
+
// 记录到 toolCallRecords
|
|
68
|
+
state.toolCallRecords.push({
|
|
69
|
+
callId: call.id,
|
|
70
|
+
tool: call.function.name,
|
|
71
|
+
args: actualArgs || {},
|
|
72
|
+
result,
|
|
73
|
+
isError,
|
|
74
|
+
duration,
|
|
75
|
+
timestamp: Date.now(),
|
|
76
|
+
});
|
|
77
|
+
// 更新连续失败计数
|
|
78
|
+
if (updateFailureCount) {
|
|
79
|
+
this.updateFailureCount(state, call.function.name, isError);
|
|
80
|
+
}
|
|
81
|
+
return event;
|
|
82
|
+
}
|
|
43
83
|
/** 按并发属性将 tool_calls 分组 */
|
|
44
84
|
groupByConcurrency(toolCalls) {
|
|
45
85
|
const groups = [];
|
|
@@ -90,22 +130,18 @@ export class AgentToolExecutor {
|
|
|
90
130
|
const available = parsedArgs.filter(({ call }) => this.config.toolRegistry.has(call.function.name));
|
|
91
131
|
const executable = available.filter(({ call }) => !this.isCircuitBroken(state, call.function.name));
|
|
92
132
|
const circuitBroken = available.filter(({ call }) => this.isCircuitBroken(state, call.function.name));
|
|
93
|
-
//
|
|
133
|
+
// 被熔断的工具:直接推送阻断结果(使用 emitToolResult 统一输出)
|
|
94
134
|
for (const { call, args } of circuitBroken) {
|
|
95
135
|
const failCount = state.consecutiveToolFailures.get(call.function.name) || 0;
|
|
96
136
|
const result = `CIRCUIT_BREAKER: ${call.function.name} has failed ${failCount} consecutive times. ` +
|
|
97
137
|
`STOP calling this tool with the same approach. Fix your parameters or use a different tool.`;
|
|
98
|
-
yield this.
|
|
99
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
100
|
-
state.messages.push(toolMessage);
|
|
101
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
102
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
138
|
+
yield this.emitToolResult(state, call, result, true, 0, args, false);
|
|
103
139
|
}
|
|
104
140
|
// 并行执行剩余未被熔断的工具
|
|
105
141
|
const results = executable.length > 0
|
|
106
142
|
? await Promise.all(executable.map(({ call, args }) => this.runWithTimeout(state, call, args)))
|
|
107
143
|
: [];
|
|
108
|
-
//
|
|
144
|
+
// 按顺序推送结果并同步到历史(使用 emitToolResult 统一输出)
|
|
109
145
|
for (const { result, isError, actualArgs, duration, call } of results) {
|
|
110
146
|
const afterResults = await this.config.runHooks('after_tool', {
|
|
111
147
|
sessionId: state.sessionId,
|
|
@@ -118,16 +154,7 @@ export class AgentToolExecutor {
|
|
|
118
154
|
});
|
|
119
155
|
const inject = afterResults.find(r => r.inject)?.inject;
|
|
120
156
|
const finalResult = inject ? `${result}\n${inject}` : result;
|
|
121
|
-
yield this.
|
|
122
|
-
const sanitizedResult = this.config.securityGuard
|
|
123
|
-
? this.config.securityGuard.sanitizeCredentials(finalResult)
|
|
124
|
-
: finalResult;
|
|
125
|
-
const truncatedResult = this.config.historyManager.processToolOutput(sanitizedResult, call.id, call.function.name, state.sessionId);
|
|
126
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: truncatedResult };
|
|
127
|
-
state.messages.push(toolMessage);
|
|
128
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
129
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args: actualArgs, result, isError, duration, timestamp: Date.now() });
|
|
130
|
-
this.updateFailureCount(state, call.function.name, isError);
|
|
157
|
+
yield this.emitToolResult(state, call, finalResult, isError, duration, actualArgs);
|
|
131
158
|
}
|
|
132
159
|
}
|
|
133
160
|
/** 串行执行单个工具调用(含安全检查 + Hooks) */
|
|
@@ -176,11 +203,7 @@ export class AgentToolExecutor {
|
|
|
176
203
|
// 执行层 deniedTools 拦截(防止 LLM 幻觉调用被禁工具)
|
|
177
204
|
if (this.deniedToolsSet.size > 0 && this.deniedToolsSet.has(call.function.name)) {
|
|
178
205
|
const result = `DENIED: Tool "${call.function.name}" is not allowed in this context. Please use other available tools.`;
|
|
179
|
-
yield this.
|
|
180
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
181
|
-
state.messages.push(toolMessage);
|
|
182
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
183
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
206
|
+
yield this.emitToolResult(state, call, result, true, 0, args, false);
|
|
184
207
|
return;
|
|
185
208
|
}
|
|
186
209
|
// 空参数/截断参数早期检测
|
|
@@ -244,12 +267,7 @@ export class AgentToolExecutor {
|
|
|
244
267
|
' Step 2: run_script({ language: "nodejs", code: "require(require(\'path\').join(process.cwd(),\'generate.cjs\'));", timeout: 60000 })',
|
|
245
268
|
].join('\n');
|
|
246
269
|
}
|
|
247
|
-
yield this.
|
|
248
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
249
|
-
state.messages.push(toolMessage);
|
|
250
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
251
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
252
|
-
this.updateFailureCount(state, call.function.name, true);
|
|
270
|
+
yield this.emitToolResult(state, call, result, true, 0, args);
|
|
253
271
|
return;
|
|
254
272
|
}
|
|
255
273
|
}
|
|
@@ -260,11 +278,7 @@ export class AgentToolExecutor {
|
|
|
260
278
|
`STOP calling this tool with the same approach. ` +
|
|
261
279
|
`If your content is too long for tool parameters, SPLIT it: use multiple execute_command calls with "cat >>" to append, ` +
|
|
262
280
|
`or write a much shorter script. Review ALL error messages above for specific guidance.`;
|
|
263
|
-
yield this.
|
|
264
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
265
|
-
state.messages.push(toolMessage);
|
|
266
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
267
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
281
|
+
yield this.emitToolResult(state, call, result, true, 0, args, false);
|
|
268
282
|
return;
|
|
269
283
|
}
|
|
270
284
|
// 安全检查(execute_command)
|
|
@@ -273,11 +287,7 @@ export class AgentToolExecutor {
|
|
|
273
287
|
const check = this.config.securityGuard.sanitize(args.command);
|
|
274
288
|
if (!check.safe) {
|
|
275
289
|
const result = check.reason || 'BLOCKED: Command rejected by security policy';
|
|
276
|
-
yield this.
|
|
277
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
278
|
-
state.messages.push(toolMessage);
|
|
279
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
280
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
290
|
+
yield this.emitToolResult(state, call, result, true, 0, args, false);
|
|
281
291
|
return;
|
|
282
292
|
}
|
|
283
293
|
if (check.rewritten)
|
|
@@ -296,11 +306,7 @@ export class AgentToolExecutor {
|
|
|
296
306
|
const blocked = allBefore.find(r => r.block);
|
|
297
307
|
if (blocked) {
|
|
298
308
|
const result = blocked.reason || 'Blocked by hook';
|
|
299
|
-
yield this.
|
|
300
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: result };
|
|
301
|
-
state.messages.push(toolMessage);
|
|
302
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
303
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args: actualArgs, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
309
|
+
yield this.emitToolResult(state, call, result, true, 0, actualArgs, false);
|
|
304
310
|
return;
|
|
305
311
|
}
|
|
306
312
|
const modified = allBefore.find(r => r.modify);
|
|
@@ -325,16 +331,8 @@ export class AgentToolExecutor {
|
|
|
325
331
|
const allAfter = [...afterResults, ...mwAfterResults];
|
|
326
332
|
const inject = allAfter.find(r => r.inject)?.inject;
|
|
327
333
|
const finalResult = inject ? `${result}\n${inject}` : result;
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
? this.config.securityGuard.sanitizeCredentials(finalResult)
|
|
331
|
-
: finalResult;
|
|
332
|
-
const truncatedResult = this.config.historyManager.processToolOutput(sanitizedResult, call.id, call.function.name, state.sessionId);
|
|
333
|
-
const toolMessage = { role: 'tool', tool_call_id: call.id, content: truncatedResult };
|
|
334
|
-
state.messages.push(toolMessage);
|
|
335
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
336
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args: actualArgs, result, isError, duration, timestamp: Date.now() });
|
|
337
|
-
this.updateFailureCount(state, call.function.name, isError);
|
|
334
|
+
// 使用 emitToolResult 统一输出(P2 #9: 消除重复的 push+addHistory+record 模式)
|
|
335
|
+
yield this.emitToolResult(state, call, finalResult, isError, duration, actualArgs);
|
|
338
336
|
}
|
|
339
337
|
/** 带超时的工具执行 */
|
|
340
338
|
async runWithTimeout(state, call, args) {
|
|
@@ -410,12 +408,8 @@ export class AgentToolExecutor {
|
|
|
410
408
|
'',
|
|
411
409
|
'Use only one of the available tool names above, or explain to the user that the requested connector/tool is not available in the current application.',
|
|
412
410
|
].join('\n');
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
state.messages.push(toolMessage);
|
|
416
|
-
this.config.historyManager.addHistory(state.sessionId, toolMessage);
|
|
417
|
-
state.toolCallRecords.push({ callId: call.id, tool: call.function.name, args, result, isError: true, duration: 0, timestamp: Date.now() });
|
|
418
|
-
this.updateFailureCount(state, call.function.name, true);
|
|
411
|
+
// 使用 emitToolResult 统一输出(P2 #9)
|
|
412
|
+
yield this.emitToolResult(state, call, result, true, 0, args);
|
|
419
413
|
}
|
|
420
414
|
/** 检查工具是否被熔断 */
|
|
421
415
|
isCircuitBroken(state, toolName) {
|