@cicctencent/agent-core 1.0.35 → 1.0.37
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 +19 -0
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +87 -2
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/llm-caller.d.ts +22 -5
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +113 -27
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/agent/tool-executor.d.ts +24 -0
- package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
- package/dist/cjs/agent/tool-executor.js +92 -4
- package/dist/cjs/agent/tool-executor.js.map +1 -1
- package/dist/cjs/agent/types.d.ts +5 -1
- 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 +6 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/anthropic-provider.d.ts +5 -0
- package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/cjs/llm/anthropic-provider.js +25 -1
- package/dist/cjs/llm/anthropic-provider.js.map +1 -1
- package/dist/cjs/llm/ollama-provider.d.ts +8 -1
- package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
- package/dist/cjs/llm/ollama-provider.js +19 -0
- package/dist/cjs/llm/ollama-provider.js.map +1 -1
- package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
- package/dist/cjs/llm/openai-provider.js +24 -0
- package/dist/cjs/llm/openai-provider.js.map +1 -1
- package/dist/cjs/llm/types.d.ts +40 -0
- package/dist/cjs/llm/types.d.ts.map +1 -1
- package/dist/cjs/llm/types.js +83 -0
- package/dist/cjs/llm/types.js.map +1 -1
- package/dist/cjs/pool/engine-pool.d.ts +4 -4
- package/dist/cjs/pool/engine-pool.d.ts.map +1 -1
- package/dist/cjs/pool/engine-pool.js +21 -50
- package/dist/cjs/pool/engine-pool.js.map +1 -1
- package/dist/cjs/runtime/run-registry-interface.d.ts +6 -0
- package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.d.ts +8 -0
- package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.js +25 -0
- package/dist/cjs/runtime/run-registry.js.map +1 -1
- package/dist/cjs/security/guard.d.ts +12 -1
- package/dist/cjs/security/guard.d.ts.map +1 -1
- package/dist/cjs/security/guard.js +42 -10
- package/dist/cjs/security/guard.js.map +1 -1
- package/dist/cjs/security/types.d.ts +11 -0
- package/dist/cjs/security/types.d.ts.map +1 -1
- package/dist/cjs/types.d.ts +15 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/event-adapter.d.ts.map +1 -1
- package/dist/cjs/utils/event-adapter.js +6 -0
- package/dist/cjs/utils/event-adapter.js.map +1 -1
- package/dist/cjs/utils/ttl-lru-cache.d.ts +49 -0
- package/dist/cjs/utils/ttl-lru-cache.d.ts.map +1 -0
- package/dist/cjs/utils/ttl-lru-cache.js +108 -0
- package/dist/cjs/utils/ttl-lru-cache.js.map +1 -0
- package/dist/esm/agent/engine.d.ts +19 -0
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +87 -2
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/llm-caller.d.ts +22 -5
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +113 -27
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/agent/tool-executor.d.ts +24 -0
- package/dist/esm/agent/tool-executor.d.ts.map +1 -1
- package/dist/esm/agent/tool-executor.js +92 -4
- package/dist/esm/agent/tool-executor.js.map +1 -1
- package/dist/esm/agent/types.d.ts +5 -1
- 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 +6 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/anthropic-provider.d.ts +5 -0
- package/dist/esm/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/esm/llm/anthropic-provider.js +25 -1
- package/dist/esm/llm/anthropic-provider.js.map +1 -1
- package/dist/esm/llm/ollama-provider.d.ts +8 -1
- package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
- package/dist/esm/llm/ollama-provider.js +19 -0
- package/dist/esm/llm/ollama-provider.js.map +1 -1
- package/dist/esm/llm/openai-provider.d.ts.map +1 -1
- package/dist/esm/llm/openai-provider.js +24 -0
- package/dist/esm/llm/openai-provider.js.map +1 -1
- package/dist/esm/llm/types.d.ts +40 -0
- package/dist/esm/llm/types.d.ts.map +1 -1
- package/dist/esm/llm/types.js +80 -0
- package/dist/esm/llm/types.js.map +1 -1
- package/dist/esm/pool/engine-pool.d.ts +4 -4
- package/dist/esm/pool/engine-pool.d.ts.map +1 -1
- package/dist/esm/pool/engine-pool.js +21 -50
- package/dist/esm/pool/engine-pool.js.map +1 -1
- package/dist/esm/runtime/run-registry-interface.d.ts +6 -0
- package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.d.ts +8 -0
- package/dist/esm/runtime/run-registry.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.js +25 -0
- package/dist/esm/runtime/run-registry.js.map +1 -1
- package/dist/esm/security/guard.d.ts +12 -1
- package/dist/esm/security/guard.d.ts.map +1 -1
- package/dist/esm/security/guard.js +42 -10
- package/dist/esm/security/guard.js.map +1 -1
- package/dist/esm/security/types.d.ts +11 -0
- package/dist/esm/security/types.d.ts.map +1 -1
- package/dist/esm/types.d.ts +15 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/event-adapter.d.ts.map +1 -1
- package/dist/esm/utils/event-adapter.js +6 -0
- package/dist/esm/utils/event-adapter.js.map +1 -1
- package/dist/esm/utils/ttl-lru-cache.d.ts +49 -0
- package/dist/esm/utils/ttl-lru-cache.d.ts.map +1 -0
- package/dist/esm/utils/ttl-lru-cache.js +104 -0
- package/dist/esm/utils/ttl-lru-cache.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// ============================================================
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.LLMCaller = void 0;
|
|
7
|
+
const types_ts_1 = require("../llm/types.js");
|
|
7
8
|
const dsml_parser_ts_1 = require("../utils/dsml-parser.js");
|
|
8
9
|
const rate_limit_manager_ts_1 = require("./rate-limit-manager.js");
|
|
9
10
|
const token_counter_ts_1 = require("../utils/token-counter.js");
|
|
@@ -26,15 +27,58 @@ class LLMCaller {
|
|
|
26
27
|
}
|
|
27
28
|
/** 是否为不可重试错误(4xx 类确定性错误) */
|
|
28
29
|
isNonRetryableError(err) {
|
|
29
|
-
return this.classifyError(err
|
|
30
|
+
return this.classifyError(err) === 'non_retryable';
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
*
|
|
33
|
+
* 错误分类:将错误分类为不同类型,用于决定重试策略和用户提示。
|
|
33
34
|
*
|
|
34
|
-
* 分类优先级:
|
|
35
|
+
* 分类优先级:
|
|
36
|
+
* 1. 结构化字段优先 —— 若 err 携带 `kind` 或 `retryable`,直接依此判定,跨供应商一致;
|
|
37
|
+
* 2. 文本兜底 —— 无结构化字段时回落到错误文本解析(保持旧行为兼容)。
|
|
38
|
+
*
|
|
39
|
+
* 分类优先级(文本兜底):context_too_long > rate_limit_tpm > non_retryable > timeout > server_error > network_error > retryable
|
|
35
40
|
*/
|
|
36
|
-
classifyError(
|
|
37
|
-
|
|
41
|
+
classifyError(err) {
|
|
42
|
+
// —— 结构化优先 ——
|
|
43
|
+
if (err && typeof err === 'object') {
|
|
44
|
+
// 显式 retryable 优先(最权威)
|
|
45
|
+
if (err.retryable === false)
|
|
46
|
+
return 'non_retryable';
|
|
47
|
+
if (err.retryable === true) {
|
|
48
|
+
if (err.kind === 'context_length')
|
|
49
|
+
return 'context_too_long';
|
|
50
|
+
return 'retryable';
|
|
51
|
+
}
|
|
52
|
+
switch (err.kind) {
|
|
53
|
+
case 'auth':
|
|
54
|
+
case 'quota':
|
|
55
|
+
return 'non_retryable';
|
|
56
|
+
case 'rate_limit_tpm':
|
|
57
|
+
case 'rate_limit_rpm':
|
|
58
|
+
return 'rate_limit_tpm';
|
|
59
|
+
case 'context_length':
|
|
60
|
+
return 'context_too_long';
|
|
61
|
+
case 'timeout':
|
|
62
|
+
return 'timeout';
|
|
63
|
+
case 'server_error':
|
|
64
|
+
return 'server_error';
|
|
65
|
+
case 'network_error':
|
|
66
|
+
return 'network_error';
|
|
67
|
+
}
|
|
68
|
+
// 有 HTTP status 时也可结构化判定
|
|
69
|
+
const st = err.status ?? err.statusCode ?? (typeof err.response?.status === 'number' ? err.response.status : undefined);
|
|
70
|
+
if (st !== undefined) {
|
|
71
|
+
if (st === 429)
|
|
72
|
+
return 'rate_limit_tpm';
|
|
73
|
+
if (st === 401 || st === 403)
|
|
74
|
+
return 'non_retryable';
|
|
75
|
+
if (st >= 500)
|
|
76
|
+
return 'server_error';
|
|
77
|
+
if (st >= 400)
|
|
78
|
+
return 'non_retryable';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const msg = ((err?.message || err || '') + '').toLowerCase();
|
|
38
82
|
// 上下文过长(可恢复:压缩后重试)
|
|
39
83
|
if (msg.includes('too long') || msg.includes('input length') ||
|
|
40
84
|
msg.includes('context length') || msg.includes('too many tokens') ||
|
|
@@ -91,7 +135,15 @@ class LLMCaller {
|
|
|
91
135
|
* 典型错误消息:"rate limit exceeded on dimension: tpm"
|
|
92
136
|
*/
|
|
93
137
|
isTPMRateLimitError(err) {
|
|
94
|
-
|
|
138
|
+
// 结构化优先
|
|
139
|
+
if (err && typeof err === 'object') {
|
|
140
|
+
if (err.kind === 'rate_limit_tpm' || err.kind === 'rate_limit_rpm')
|
|
141
|
+
return true;
|
|
142
|
+
const st = err.status ?? err.statusCode ?? (typeof err.response?.status === 'number' ? err.response.status : undefined);
|
|
143
|
+
if (st === 429)
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
const msg = ((err?.message || err || '') + '').toLowerCase();
|
|
95
147
|
return /\b429\b/.test(msg) && /\btpm\b/.test(msg);
|
|
96
148
|
}
|
|
97
149
|
/**
|
|
@@ -101,7 +153,7 @@ class LLMCaller {
|
|
|
101
153
|
* 特殊处理:当 API 返回"输入过长"错误时,自动压缩历史并重试(最多一次)
|
|
102
154
|
* 遇到不可重试错误(4xx 配额/认证等)时立即放弃,不浪费重试次数
|
|
103
155
|
*/
|
|
104
|
-
async *callWithRetry(sessionId, messages, toolDefs, abortSignal) {
|
|
156
|
+
async *callWithRetry(sessionId, messages, toolDefs, abortSignal, callbacks, responseFormat) {
|
|
105
157
|
const policy = this.config.retryPolicy;
|
|
106
158
|
const maxRetries = policy?.maxRetries ?? 1;
|
|
107
159
|
const initialDelay = policy?.initialDelay ?? 1000;
|
|
@@ -134,7 +186,7 @@ class LLMCaller {
|
|
|
134
186
|
};
|
|
135
187
|
// 尝试主 Provider
|
|
136
188
|
callCount++;
|
|
137
|
-
const { result: firstResult, contextTooLong, emptyResponse, usage: firstUsage, error: firstError, firstTokenAt: firstTokenAt0 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
189
|
+
const { result: firstResult, contextTooLong, emptyResponse, usage: firstUsage, error: firstError, firstTokenAt: firstTokenAt0 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
|
|
138
190
|
if (firstResult !== null) {
|
|
139
191
|
successFirstTokenAt = firstTokenAt0;
|
|
140
192
|
successUsage = firstUsage;
|
|
@@ -143,8 +195,8 @@ class LLMCaller {
|
|
|
143
195
|
lastError = firstError;
|
|
144
196
|
// TPM 速率限制专用重试:TPM 是按分钟计的时间窗口限制,等待窗口重置后可恢复,
|
|
145
197
|
// 不同于配额耗尽。在常规重试/降级之前先尝试 TPM 退避重试。
|
|
146
|
-
if (this.isTPMRateLimitError(
|
|
147
|
-
const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, firstError);
|
|
198
|
+
if (this.isTPMRateLimitError(firstError) && !abortSignal.aborted) {
|
|
199
|
+
const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, firstError, callbacks, responseFormat);
|
|
148
200
|
callCount += tpm.attempts;
|
|
149
201
|
if (tpm.result !== null) {
|
|
150
202
|
successFirstTokenAt = tpm.firstTokenAt;
|
|
@@ -154,9 +206,9 @@ class LLMCaller {
|
|
|
154
206
|
lastError = tpm.error || lastError;
|
|
155
207
|
}
|
|
156
208
|
// 不可重试错误:立即放弃,不重试
|
|
157
|
-
const nonRetryable = this.isNonRetryableError(
|
|
209
|
+
const nonRetryable = this.isNonRetryableError(firstError) || emptyResponse;
|
|
158
210
|
// 上下文过长:压缩后重试(仅一次)
|
|
159
|
-
if (contextTooLong && this.config.historyManager) {
|
|
211
|
+
if (contextTooLong && this.config.historyManager && !abortSignal.aborted) {
|
|
160
212
|
const tokensAfter = this.config.historyManager.compressMessages(messages);
|
|
161
213
|
console.log(`[LLMCaller] Context too long, compressed to ~${tokensAfter} tokens, retrying...`);
|
|
162
214
|
yield this.config.createEvent(sessionId, {
|
|
@@ -164,7 +216,7 @@ class LLMCaller {
|
|
|
164
216
|
content: `🔄 Context too long, compressed history and retrying...`,
|
|
165
217
|
});
|
|
166
218
|
callCount++;
|
|
167
|
-
const { result, usage: retryUsage, error: retryError, firstTokenAt: rft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
219
|
+
const { result, usage: retryUsage, error: retryError, firstTokenAt: rft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
|
|
168
220
|
if (result !== null) {
|
|
169
221
|
successFirstTokenAt = rft;
|
|
170
222
|
successUsage = retryUsage;
|
|
@@ -192,7 +244,7 @@ class LLMCaller {
|
|
|
192
244
|
if (abortSignal.aborted)
|
|
193
245
|
return { assistant: null };
|
|
194
246
|
callCount++;
|
|
195
|
-
const { result, usage: retryUsage, emptyResponse: retryEmpty, error: retryError, firstTokenAt: rft2 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false);
|
|
247
|
+
const { result, usage: retryUsage, emptyResponse: retryEmpty, error: retryError, firstTokenAt: rft2 } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.llmProvider, false, callbacks, responseFormat);
|
|
196
248
|
if (result !== null) {
|
|
197
249
|
successFirstTokenAt = rft2;
|
|
198
250
|
successUsage = retryUsage;
|
|
@@ -200,7 +252,7 @@ class LLMCaller {
|
|
|
200
252
|
}
|
|
201
253
|
lastError = retryError || lastError;
|
|
202
254
|
// 重试后再次检查是否不可重试(含空响应)
|
|
203
|
-
if (this.isNonRetryableError(
|
|
255
|
+
if (this.isNonRetryableError(retryError) || retryEmpty)
|
|
204
256
|
break;
|
|
205
257
|
}
|
|
206
258
|
}
|
|
@@ -242,7 +294,7 @@ class LLMCaller {
|
|
|
242
294
|
provider: fallbackName,
|
|
243
295
|
});
|
|
244
296
|
callCount++;
|
|
245
|
-
const { result, usage: fallbackUsage, emptyResponse: fallbackEmpty, error: fallbackError, firstTokenAt: fft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true);
|
|
297
|
+
const { result, usage: fallbackUsage, emptyResponse: fallbackEmpty, error: fallbackError, firstTokenAt: fft } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, callbacks, responseFormat);
|
|
246
298
|
if (result !== null) {
|
|
247
299
|
successFirstTokenAt = fft;
|
|
248
300
|
successUsage = fallbackUsage;
|
|
@@ -255,8 +307,8 @@ class LLMCaller {
|
|
|
255
307
|
}
|
|
256
308
|
// TPM 速率限制:fallback 也可能受 TPM 限制(主备常共享同一配额),
|
|
257
309
|
// 等待速率窗口重置后重试
|
|
258
|
-
if (this.isTPMRateLimitError(
|
|
259
|
-
const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, fallbackError);
|
|
310
|
+
if (this.isTPMRateLimitError(fallbackError) && !abortSignal.aborted) {
|
|
311
|
+
const tpm = yield* this.retryOnTPM(sessionId, messages, toolDefs, abortSignal, this.config.fallbackProvider, true, fallbackError, callbacks, responseFormat);
|
|
260
312
|
if (tpm.result !== null)
|
|
261
313
|
return { assistant: tpm.result, usage: tpm.usage };
|
|
262
314
|
if (!(fallbackEmpty && lastError)) {
|
|
@@ -266,17 +318,20 @@ class LLMCaller {
|
|
|
266
318
|
}
|
|
267
319
|
}
|
|
268
320
|
// 所有尝试失败 — 将原始错误信息传递给前端,由前端决定展示方式
|
|
269
|
-
|
|
321
|
+
// lastError 为 normalizeLLMError 结果(对象),统一提取原始文本报文,
|
|
322
|
+
// 确保服务商返回 code/重置时间等原文被透传,而非展示 [object Object]。
|
|
323
|
+
const lastErrorMsg = (0, types_ts_1.normalizeLLMError)(lastError).message;
|
|
324
|
+
const errorType = this.classifyError(lastErrorMsg);
|
|
270
325
|
const userFacingErrors = {
|
|
271
326
|
'timeout': 'LLM 响应超时,可能是网络问题或服务繁忙,请稍后重试',
|
|
272
327
|
'network_error': '网络连接异常,请检查网络后重试',
|
|
273
328
|
'server_error': 'AI 服务端暂时不可用,请稍后重试',
|
|
274
329
|
'rate_limit_tpm': '请求频率超限,请等待 1 分钟后重试',
|
|
275
|
-
'non_retryable':
|
|
330
|
+
'non_retryable': lastErrorMsg || '请求被拒绝(认证/配额问题)',
|
|
276
331
|
'context_too_long': '对话上下文过长,请开启新对话或清理历史',
|
|
277
|
-
'retryable':
|
|
332
|
+
'retryable': lastErrorMsg || 'AI 服务调用失败,请稍后重试',
|
|
278
333
|
};
|
|
279
|
-
const errorMsg = userFacingErrors[errorType] ||
|
|
334
|
+
const errorMsg = userFacingErrors[errorType] || lastErrorMsg || 'All LLM providers failed after retries';
|
|
280
335
|
console.warn(`[LLMCaller] All providers exhausted. Error type: ${errorType}, message: ${errorMsg}`);
|
|
281
336
|
await this.config.runHooks('on_error', { sessionId, iteration: 0, error: errorMsg, recoverable: false });
|
|
282
337
|
yield this.config.createEvent(sessionId, { type: 'error', error: errorMsg, recoverable: false, errorType });
|
|
@@ -299,7 +354,7 @@ class LLMCaller {
|
|
|
299
354
|
* 策略:每次固定等待 60s(覆盖完整 TPM 窗口),重试 2 次。
|
|
300
355
|
* 当错误不再是 TPM 类型时提前跳出(可能是其他错误或已成功)。
|
|
301
356
|
*/
|
|
302
|
-
async *retryOnTPM(sessionId, messages, toolDefs, abortSignal, provider, isFallback, initialError) {
|
|
357
|
+
async *retryOnTPM(sessionId, messages, toolDefs, abortSignal, provider, isFallback, initialError, callbacks, responseFormat) {
|
|
303
358
|
const tpmRetries = 2;
|
|
304
359
|
/** 固定 60s,覆盖完整 TPM 窗口周期 */
|
|
305
360
|
const tpmDelay = 60_000;
|
|
@@ -322,19 +377,19 @@ class LLMCaller {
|
|
|
322
377
|
if (abortSignal.aborted)
|
|
323
378
|
return { result: null, usage: lastUsage, error: lastError, attempts };
|
|
324
379
|
attempts++;
|
|
325
|
-
const { result, usage, error, firstTokenAt } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback);
|
|
380
|
+
const { result, usage, error, firstTokenAt } = yield* this.callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback, callbacks, responseFormat);
|
|
326
381
|
if (result !== null)
|
|
327
382
|
return { result, usage, error: null, firstTokenAt, attempts };
|
|
328
383
|
lastError = error || lastError;
|
|
329
384
|
lastUsage = usage;
|
|
330
385
|
// 不再是 TPM 错误,跳出 TPM 专用重试(交由后续降级逻辑处理)
|
|
331
|
-
if (!this.isTPMRateLimitError(
|
|
386
|
+
if (!this.isTPMRateLimitError(error))
|
|
332
387
|
break;
|
|
333
388
|
}
|
|
334
389
|
return { result: null, usage: lastUsage, error: lastError, firstTokenAt: undefined, attempts };
|
|
335
390
|
}
|
|
336
391
|
/** 单次 LLM 调用(流式),带诊断信息 */
|
|
337
|
-
async *callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback) {
|
|
392
|
+
async *callOnceWithDiag(sessionId, messages, toolDefs, abortSignal, provider, isFallback, callbacks, responseFormat) {
|
|
338
393
|
let chunkUsage;
|
|
339
394
|
/** 调试模式下累积本次请求的网络诊断信息,待流式结束后统一以 debug 事件抛出 */
|
|
340
395
|
const debugEvents = [];
|
|
@@ -343,6 +398,10 @@ class LLMCaller {
|
|
|
343
398
|
let onExternalAbort = null;
|
|
344
399
|
/** 首内容 chunk 到达时间(用于计算 TTFT);声明在 try 外,供 catch 返回 */
|
|
345
400
|
let firstTokenAt;
|
|
401
|
+
// 流式工具早分发:已上报完毕的 tool_call index(本次尝试内)
|
|
402
|
+
const reportedToolCallIdx = new Set();
|
|
403
|
+
// 新的调用尝试开始:通知消费方作废上一次尝试的早分发状态
|
|
404
|
+
callbacks?.onToolCallReset?.();
|
|
346
405
|
try {
|
|
347
406
|
// 估算请求 token 规模(诊断用:定位 TPM 429 是否因请求体过大)
|
|
348
407
|
const modelInfo = provider.getModel();
|
|
@@ -422,6 +481,7 @@ class LLMCaller {
|
|
|
422
481
|
messages,
|
|
423
482
|
tools: toolDefs.length > 0 ? toolDefs : undefined,
|
|
424
483
|
toolChoice: toolDefs.length > 0 ? 'auto' : undefined,
|
|
484
|
+
responseFormat,
|
|
425
485
|
abortSignal: streamAbort.signal,
|
|
426
486
|
debug: debugEnabled,
|
|
427
487
|
onDebug,
|
|
@@ -433,6 +493,25 @@ class LLMCaller {
|
|
|
433
493
|
let role = 'assistant';
|
|
434
494
|
let toolStreamingLastEmit = 0;
|
|
435
495
|
let finishReason;
|
|
496
|
+
/** 流式工具早分发:上报参数聚合完成的 tool_calls(upToIdx 限定只上报 index 更小的条目;省略则上报全部未上报项) */
|
|
497
|
+
const reportReadyToolCalls = (upToIdx) => {
|
|
498
|
+
if (!callbacks?.onToolCallReady)
|
|
499
|
+
return;
|
|
500
|
+
for (const [idx, entry] of toolCallsMap) {
|
|
501
|
+
if (reportedToolCallIdx.has(idx))
|
|
502
|
+
continue;
|
|
503
|
+
if (upToIdx !== undefined && idx >= upToIdx)
|
|
504
|
+
continue;
|
|
505
|
+
if (entry.id && entry.name) {
|
|
506
|
+
reportedToolCallIdx.add(idx);
|
|
507
|
+
callbacks.onToolCallReady({
|
|
508
|
+
id: entry.id,
|
|
509
|
+
type: 'function',
|
|
510
|
+
function: { name: entry.name, arguments: entry.args },
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
};
|
|
436
515
|
// DSML 流式解析器(用于处理 DeepSeek 模型的 DSML 格式工具调用)。
|
|
437
516
|
// 解析器内部已处理「部分 DSML 标记前缀」的暂留,因此所有 content chunk
|
|
438
517
|
// 统一走 process(),由解析器决定哪些是文本增量、哪些暂留等待后续 chunk。
|
|
@@ -504,6 +583,8 @@ class LLMCaller {
|
|
|
504
583
|
for (const tc of delta.tool_calls) {
|
|
505
584
|
const idx = tc.index ?? 0;
|
|
506
585
|
if (!toolCallsMap.has(idx)) {
|
|
586
|
+
// 新 tool_call index 出现:更小 index 的条目参数已聚合完成,立即上报(早分发)
|
|
587
|
+
reportReadyToolCalls(idx);
|
|
507
588
|
toolCallsMap.set(idx, { id: '', name: '', args: '' });
|
|
508
589
|
}
|
|
509
590
|
const entry = toolCallsMap.get(idx);
|
|
@@ -555,6 +636,8 @@ class LLMCaller {
|
|
|
555
636
|
const fullContent = contentParts.join('') || null;
|
|
556
637
|
const fullReasoning = reasoningParts.join('') || null;
|
|
557
638
|
const toolCalls = [];
|
|
639
|
+
// 流结束:上报剩余未上报的 tool_calls(最后一个 index 的完成信号即流结束)
|
|
640
|
+
reportReadyToolCalls();
|
|
558
641
|
const sortedEntries = Array.from(toolCallsMap.entries()).sort((a, b) => a[0] - b[0]);
|
|
559
642
|
for (const [, entry] of sortedEntries) {
|
|
560
643
|
if (entry.id && entry.name) {
|
|
@@ -664,7 +747,10 @@ class LLMCaller {
|
|
|
664
747
|
for (const info of debugEvents) {
|
|
665
748
|
yield this.config.createEvent(sessionId, { type: 'debug', debug: info });
|
|
666
749
|
}
|
|
667
|
-
|
|
750
|
+
// 归一化为结构化错误:优先基于 HTTP status/code/type 推断 kind,
|
|
751
|
+
// 使上层 classifyError 跨供应商一致决策,无需依赖文本正则。
|
|
752
|
+
const structuredErr = (0, types_ts_1.normalizeLLMError)(err, { status: errStatus, code: errCode, type: errType });
|
|
753
|
+
return { result: null, contextTooLong, usage: chunkUsage, error: structuredErr, firstTokenAt };
|
|
668
754
|
}
|
|
669
755
|
}
|
|
670
756
|
}
|
|
@@ -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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"}
|
|
@@ -24,6 +24,8 @@ export interface ToolExecutorConfig extends EngineContext {
|
|
|
24
24
|
historyManager: HistoryManager;
|
|
25
25
|
/** 中间件列表 */
|
|
26
26
|
getMiddleware: () => Middleware[] | undefined;
|
|
27
|
+
/** 是否存在 before_tool hook / onToolBefore 拦截器(存在时禁用流式工具早分发,防止 block/modify 语义被绕过) */
|
|
28
|
+
hasBeforeToolInterceptors?: () => boolean;
|
|
27
29
|
}
|
|
28
30
|
/** 工具执行结果 */
|
|
29
31
|
export interface ToolExecResult {
|
|
@@ -46,6 +48,11 @@ export interface ToolLoopState {
|
|
|
46
48
|
* 与 deniedTools(构造时固定)不同,这是动态的:当 iterationGuard / dataFetchGuard
|
|
47
49
|
* 触发后,数据获取类工具被加入此集合,阻止 LLM 幻觉调用已被禁用的工具。 */
|
|
48
50
|
blockedTools?: Set<string>;
|
|
51
|
+
/** 流式工具早分发:已就绪工具调用的预执行结果缓存(callId -> 执行结果)。
|
|
52
|
+
* 由 engine 在每次 LLM 调用前新建/重置;executeOneToolCall 命中缓存时跳过实际执行。 */
|
|
53
|
+
earlyToolResults?: Map<string, ToolExecResult>;
|
|
54
|
+
/** 流式工具早分发:进行中的预执行 Promise(流结束后 await 收尾) */
|
|
55
|
+
earlyExecutions?: Promise<void>[];
|
|
49
56
|
}
|
|
50
57
|
/**
|
|
51
58
|
* 工具执行管理器
|
|
@@ -64,6 +71,23 @@ export declare class AgentToolExecutor {
|
|
|
64
71
|
/** 被禁工具集合(构造时编译,O(1) 查找) */
|
|
65
72
|
private deniedToolsSet;
|
|
66
73
|
constructor(config: ToolExecutorConfig);
|
|
74
|
+
/**
|
|
75
|
+
* 流式工具早分发:LLM 仍在生成后续内容时,立即预执行已聚合完成的工具调用。
|
|
76
|
+
*
|
|
77
|
+
* 安全约束(任一命中则不早分发,交由流结束后的正常路径处理):
|
|
78
|
+
* - 工具未注册 / 被禁(deniedTools / blockedTools)/ 熔断中
|
|
79
|
+
* - execute_command(securityGuard 可能改写参数)
|
|
80
|
+
* - delegate_task(子代理路径复杂,含限流槽位)
|
|
81
|
+
* - 非并发工具(必须保持分组串行语义)
|
|
82
|
+
* - 参数 JSON 解析失败(可能流截断,需走截断抢救路径)
|
|
83
|
+
* - 存在 before_tool hook / onToolBefore middleware(可能 block 或 modify 参数)
|
|
84
|
+
*
|
|
85
|
+
* 预执行结果写入 state.earlyToolResults;executeOneToolCall 命中缓存时
|
|
86
|
+
* 跳过实际执行(事件发射、历史写入、records、after hooks 均保持原时序不变)。
|
|
87
|
+
*/
|
|
88
|
+
startEarlyExecution(state: ToolLoopState, call: ToolCall): void;
|
|
89
|
+
/** 等待全部早分发预执行收尾(engine 在 LLM 流结束后调用;abort 场景同样先收尾再退出) */
|
|
90
|
+
awaitEarlyExecutions(state: ToolLoopState): Promise<void>;
|
|
67
91
|
/** 执行一批 tool_calls(按并发属性分组) */
|
|
68
92
|
executeToolCalls(state: ToolLoopState, toolCalls: ToolCall[]): AsyncGenerator<AgentEvent>;
|
|
69
93
|
/**
|
|
@@ -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,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,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;
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AgentToolExecutor = void 0;
|
|
7
7
|
const rate_limit_manager_ts_1 = require("./rate-limit-manager.js");
|
|
8
|
+
const logger_ts_1 = require("../observability/logger.js");
|
|
8
9
|
/**
|
|
9
10
|
* 工具执行管理器
|
|
10
11
|
*
|
|
@@ -25,6 +26,81 @@ class AgentToolExecutor {
|
|
|
25
26
|
this.config = config;
|
|
26
27
|
this.deniedToolsSet = new Set(config.deniedTools ?? []);
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* 流式工具早分发:LLM 仍在生成后续内容时,立即预执行已聚合完成的工具调用。
|
|
31
|
+
*
|
|
32
|
+
* 安全约束(任一命中则不早分发,交由流结束后的正常路径处理):
|
|
33
|
+
* - 工具未注册 / 被禁(deniedTools / blockedTools)/ 熔断中
|
|
34
|
+
* - execute_command(securityGuard 可能改写参数)
|
|
35
|
+
* - delegate_task(子代理路径复杂,含限流槽位)
|
|
36
|
+
* - 非并发工具(必须保持分组串行语义)
|
|
37
|
+
* - 参数 JSON 解析失败(可能流截断,需走截断抢救路径)
|
|
38
|
+
* - 存在 before_tool hook / onToolBefore middleware(可能 block 或 modify 参数)
|
|
39
|
+
*
|
|
40
|
+
* 预执行结果写入 state.earlyToolResults;executeOneToolCall 命中缓存时
|
|
41
|
+
* 跳过实际执行(事件发射、历史写入、records、after hooks 均保持原时序不变)。
|
|
42
|
+
*/
|
|
43
|
+
startEarlyExecution(state, call) {
|
|
44
|
+
try {
|
|
45
|
+
const name = call.function.name;
|
|
46
|
+
if (!name || !call.id)
|
|
47
|
+
return;
|
|
48
|
+
if (!this.config.toolRegistry.has(name))
|
|
49
|
+
return;
|
|
50
|
+
if (this.deniedToolsSet.has(name))
|
|
51
|
+
return;
|
|
52
|
+
if (state.blockedTools?.has(name))
|
|
53
|
+
return;
|
|
54
|
+
if (this.isCircuitBroken(state, name))
|
|
55
|
+
return;
|
|
56
|
+
if (name === 'execute_command' && this.config.securityGuard)
|
|
57
|
+
return;
|
|
58
|
+
if (name === 'delegate_task')
|
|
59
|
+
return;
|
|
60
|
+
const toolMeta = this.config.toolRegistry.get(name);
|
|
61
|
+
if (!toolMeta?.concurrent)
|
|
62
|
+
return;
|
|
63
|
+
if (this.config.hasBeforeToolInterceptors?.())
|
|
64
|
+
return;
|
|
65
|
+
// 参数不完整(流截断风险)不早分发:截断抢救逻辑依赖流结束后的完整上下文
|
|
66
|
+
let args;
|
|
67
|
+
try {
|
|
68
|
+
args = JSON.parse(call.function.arguments);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
state.earlyToolResults ??= new Map();
|
|
74
|
+
state.earlyExecutions ??= [];
|
|
75
|
+
if (state.earlyToolResults.has(call.id))
|
|
76
|
+
return; // 幂等去重
|
|
77
|
+
// 捕获当前缓存引用:onToolCallReset 替换 Map 后,旧尝试的写入落入旧 Map(作废)而非污染新缓存
|
|
78
|
+
const resultsMap = state.earlyToolResults;
|
|
79
|
+
const p = this.runWithTimeout(state, call, args)
|
|
80
|
+
.then((r) => {
|
|
81
|
+
resultsMap.set(call.id, r);
|
|
82
|
+
})
|
|
83
|
+
.catch((err) => {
|
|
84
|
+
// 预执行失败:不写缓存,流结束后的正常路径将重新执行
|
|
85
|
+
(0, logger_ts_1.logEvent)({
|
|
86
|
+
event: 'tool_executor.early_execution_failed',
|
|
87
|
+
level: 'warn',
|
|
88
|
+
sessionId: state.sessionId,
|
|
89
|
+
data: { tool: name, callId: call.id, error: err?.message || String(err) },
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
state.earlyExecutions.push(p);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// 早分发是纯优化:任何异常都不影响主流程
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** 等待全部早分发预执行收尾(engine 在 LLM 流结束后调用;abort 场景同样先收尾再退出) */
|
|
99
|
+
async awaitEarlyExecutions(state) {
|
|
100
|
+
if (!state.earlyExecutions?.length)
|
|
101
|
+
return;
|
|
102
|
+
await Promise.allSettled(state.earlyExecutions);
|
|
103
|
+
}
|
|
28
104
|
/** 执行一批 tool_calls(按并发属性分组) */
|
|
29
105
|
async *executeToolCalls(state, toolCalls) {
|
|
30
106
|
const groups = this.groupByConcurrency(toolCalls);
|
|
@@ -190,8 +266,11 @@ class AgentToolExecutor {
|
|
|
190
266
|
});
|
|
191
267
|
continue;
|
|
192
268
|
}
|
|
193
|
-
//
|
|
194
|
-
const
|
|
269
|
+
// 执行工具(流式早分发预执行结果命中时直接复用,跳过实际执行)
|
|
270
|
+
const cachedEarly = state.earlyToolResults?.get(call.id);
|
|
271
|
+
const execResult = cachedEarly
|
|
272
|
+
? cachedEarly
|
|
273
|
+
: await this.runWithTimeout(state, call, args);
|
|
195
274
|
// 立即更新失败计数,使熔断器能在同组后续调用中生效
|
|
196
275
|
this.updateFailureCount(state, toolName, execResult.isError);
|
|
197
276
|
results.push(execResult);
|
|
@@ -392,8 +471,17 @@ class AgentToolExecutor {
|
|
|
392
471
|
const modified = allBefore.find(r => r.modify);
|
|
393
472
|
if (modified?.modify)
|
|
394
473
|
actualArgs = { ...actualArgs, ...modified.modify };
|
|
395
|
-
//
|
|
396
|
-
const
|
|
474
|
+
// 执行工具(带超时);流式早分发预执行结果命中时直接复用(跳过实际执行)
|
|
475
|
+
const cachedEarly = state.earlyToolResults?.get(call.id);
|
|
476
|
+
let execResult;
|
|
477
|
+
if (cachedEarly) {
|
|
478
|
+
// 早分发预执行使用原始 args;before hook 的 modify 已在早分发禁用条件中排除,
|
|
479
|
+
// 此处 actualArgs 与预执行一致,可直接复用结果
|
|
480
|
+
execResult = cachedEarly;
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
execResult = await this.runWithTimeout(state, call, actualArgs);
|
|
484
|
+
}
|
|
397
485
|
const { result, isError, duration } = execResult;
|
|
398
486
|
// Hook + Middleware: after_tool
|
|
399
487
|
const afterHookCtx = {
|