@cicctencent/agent-core 1.0.34 → 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.
Files changed (223) hide show
  1. package/dist/cjs/a2a/rest-runner.d.ts.map +1 -1
  2. package/dist/cjs/a2a/rest-runner.js +24 -5
  3. package/dist/cjs/a2a/rest-runner.js.map +1 -1
  4. package/dist/cjs/a2a/runner.d.ts.map +1 -1
  5. package/dist/cjs/a2a/runner.js +33 -8
  6. package/dist/cjs/a2a/runner.js.map +1 -1
  7. package/dist/cjs/agent/compaction.d.ts.map +1 -1
  8. package/dist/cjs/agent/compaction.js +1 -4
  9. package/dist/cjs/agent/compaction.js.map +1 -1
  10. package/dist/cjs/agent/constants.d.ts +14 -0
  11. package/dist/cjs/agent/constants.d.ts.map +1 -0
  12. package/dist/cjs/agent/constants.js +30 -0
  13. package/dist/cjs/agent/constants.js.map +1 -0
  14. package/dist/cjs/agent/engine.d.ts +57 -2
  15. package/dist/cjs/agent/engine.d.ts.map +1 -1
  16. package/dist/cjs/agent/engine.js +139 -379
  17. package/dist/cjs/agent/engine.js.map +1 -1
  18. package/dist/cjs/agent/guard-controller.d.ts +64 -0
  19. package/dist/cjs/agent/guard-controller.d.ts.map +1 -0
  20. package/dist/cjs/agent/guard-controller.js +265 -0
  21. package/dist/cjs/agent/guard-controller.js.map +1 -0
  22. package/dist/cjs/agent/llm-caller.d.ts +22 -5
  23. package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
  24. package/dist/cjs/agent/llm-caller.js +119 -30
  25. package/dist/cjs/agent/llm-caller.js.map +1 -1
  26. package/dist/cjs/agent/rate-limit-manager.d.ts +8 -0
  27. package/dist/cjs/agent/rate-limit-manager.d.ts.map +1 -1
  28. package/dist/cjs/agent/rate-limit-manager.js +36 -0
  29. package/dist/cjs/agent/rate-limit-manager.js.map +1 -1
  30. package/dist/cjs/agent/runtime-builder.d.ts +44 -0
  31. package/dist/cjs/agent/runtime-builder.d.ts.map +1 -1
  32. package/dist/cjs/agent/runtime-builder.js +78 -20
  33. package/dist/cjs/agent/runtime-builder.js.map +1 -1
  34. package/dist/cjs/agent/session-state-manager.d.ts +47 -0
  35. package/dist/cjs/agent/session-state-manager.d.ts.map +1 -0
  36. package/dist/cjs/agent/session-state-manager.js +85 -0
  37. package/dist/cjs/agent/session-state-manager.js.map +1 -0
  38. package/dist/cjs/agent/tool-executor.d.ts +26 -3
  39. package/dist/cjs/agent/tool-executor.d.ts.map +1 -1
  40. package/dist/cjs/agent/tool-executor.js +101 -20
  41. package/dist/cjs/agent/tool-executor.js.map +1 -1
  42. package/dist/cjs/agent/tool-section-builder.d.ts +55 -0
  43. package/dist/cjs/agent/tool-section-builder.d.ts.map +1 -0
  44. package/dist/cjs/agent/tool-section-builder.js +191 -0
  45. package/dist/cjs/agent/tool-section-builder.js.map +1 -0
  46. package/dist/cjs/agent/types.d.ts +6 -2
  47. package/dist/cjs/agent/types.d.ts.map +1 -1
  48. package/dist/cjs/agent/types.js.map +1 -1
  49. package/dist/cjs/index.d.ts +7 -3
  50. package/dist/cjs/index.d.ts.map +1 -1
  51. package/dist/cjs/index.js +20 -11
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/llm/anthropic-provider.d.ts +5 -0
  54. package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -1
  55. package/dist/cjs/llm/anthropic-provider.js +25 -1
  56. package/dist/cjs/llm/anthropic-provider.js.map +1 -1
  57. package/dist/cjs/llm/ollama-provider.d.ts +8 -1
  58. package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
  59. package/dist/cjs/llm/ollama-provider.js +19 -0
  60. package/dist/cjs/llm/ollama-provider.js.map +1 -1
  61. package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
  62. package/dist/cjs/llm/openai-provider.js +24 -0
  63. package/dist/cjs/llm/openai-provider.js.map +1 -1
  64. package/dist/cjs/llm/types.d.ts +40 -0
  65. package/dist/cjs/llm/types.d.ts.map +1 -1
  66. package/dist/cjs/llm/types.js +83 -0
  67. package/dist/cjs/llm/types.js.map +1 -1
  68. package/dist/cjs/mcp/base-client.js +2 -2
  69. package/dist/cjs/mcp/base-client.js.map +1 -1
  70. package/dist/cjs/mcp/client.js +4 -4
  71. package/dist/cjs/mcp/client.js.map +1 -1
  72. package/dist/cjs/mcp/factory.d.ts +6 -1
  73. package/dist/cjs/mcp/factory.d.ts.map +1 -1
  74. package/dist/cjs/mcp/factory.js +7 -2
  75. package/dist/cjs/mcp/factory.js.map +1 -1
  76. package/dist/cjs/mcp/http-client.js +5 -5
  77. package/dist/cjs/mcp/http-client.js.map +1 -1
  78. package/dist/cjs/observability/logger.d.ts.map +1 -1
  79. package/dist/cjs/observability/logger.js +56 -2
  80. package/dist/cjs/observability/logger.js.map +1 -1
  81. package/dist/cjs/pool/engine-pool.d.ts +4 -4
  82. package/dist/cjs/pool/engine-pool.d.ts.map +1 -1
  83. package/dist/cjs/pool/engine-pool.js +21 -50
  84. package/dist/cjs/pool/engine-pool.js.map +1 -1
  85. package/dist/cjs/runtime/run-registry-interface.d.ts +6 -0
  86. package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -1
  87. package/dist/cjs/runtime/run-registry.d.ts +8 -0
  88. package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
  89. package/dist/cjs/runtime/run-registry.js +25 -0
  90. package/dist/cjs/runtime/run-registry.js.map +1 -1
  91. package/dist/cjs/security/guard.d.ts +12 -1
  92. package/dist/cjs/security/guard.d.ts.map +1 -1
  93. package/dist/cjs/security/guard.js +42 -10
  94. package/dist/cjs/security/guard.js.map +1 -1
  95. package/dist/cjs/security/types.d.ts +11 -0
  96. package/dist/cjs/security/types.d.ts.map +1 -1
  97. package/dist/cjs/tool/ask-user.js +3 -3
  98. package/dist/cjs/tool/delegate.d.ts.map +1 -1
  99. package/dist/cjs/tool/delegate.js +4 -2
  100. package/dist/cjs/tool/delegate.js.map +1 -1
  101. package/dist/cjs/types.d.ts +15 -1
  102. package/dist/cjs/types.d.ts.map +1 -1
  103. package/dist/cjs/utils/dsml-parser.d.ts +1 -1
  104. package/dist/cjs/utils/dsml-parser.js +1 -1
  105. package/dist/cjs/utils/event-adapter.d.ts.map +1 -1
  106. package/dist/cjs/utils/event-adapter.js +6 -0
  107. package/dist/cjs/utils/event-adapter.js.map +1 -1
  108. package/dist/cjs/utils/ttl-lru-cache.d.ts +49 -0
  109. package/dist/cjs/utils/ttl-lru-cache.d.ts.map +1 -0
  110. package/dist/cjs/utils/ttl-lru-cache.js +108 -0
  111. package/dist/cjs/utils/ttl-lru-cache.js.map +1 -0
  112. package/dist/esm/a2a/rest-runner.d.ts.map +1 -1
  113. package/dist/esm/a2a/rest-runner.js +24 -5
  114. package/dist/esm/a2a/rest-runner.js.map +1 -1
  115. package/dist/esm/a2a/runner.d.ts.map +1 -1
  116. package/dist/esm/a2a/runner.js +33 -8
  117. package/dist/esm/a2a/runner.js.map +1 -1
  118. package/dist/esm/agent/compaction.d.ts.map +1 -1
  119. package/dist/esm/agent/compaction.js +1 -4
  120. package/dist/esm/agent/compaction.js.map +1 -1
  121. package/dist/esm/agent/constants.d.ts +14 -0
  122. package/dist/esm/agent/constants.d.ts.map +1 -0
  123. package/dist/esm/agent/constants.js +27 -0
  124. package/dist/esm/agent/constants.js.map +1 -0
  125. package/dist/esm/agent/engine.d.ts +57 -2
  126. package/dist/esm/agent/engine.d.ts.map +1 -1
  127. package/dist/esm/agent/engine.js +140 -380
  128. package/dist/esm/agent/engine.js.map +1 -1
  129. package/dist/esm/agent/guard-controller.d.ts +64 -0
  130. package/dist/esm/agent/guard-controller.d.ts.map +1 -0
  131. package/dist/esm/agent/guard-controller.js +256 -0
  132. package/dist/esm/agent/guard-controller.js.map +1 -0
  133. package/dist/esm/agent/llm-caller.d.ts +22 -5
  134. package/dist/esm/agent/llm-caller.d.ts.map +1 -1
  135. package/dist/esm/agent/llm-caller.js +119 -30
  136. package/dist/esm/agent/llm-caller.js.map +1 -1
  137. package/dist/esm/agent/rate-limit-manager.d.ts +8 -0
  138. package/dist/esm/agent/rate-limit-manager.d.ts.map +1 -1
  139. package/dist/esm/agent/rate-limit-manager.js +36 -0
  140. package/dist/esm/agent/rate-limit-manager.js.map +1 -1
  141. package/dist/esm/agent/runtime-builder.d.ts +44 -0
  142. package/dist/esm/agent/runtime-builder.d.ts.map +1 -1
  143. package/dist/esm/agent/runtime-builder.js +75 -20
  144. package/dist/esm/agent/runtime-builder.js.map +1 -1
  145. package/dist/esm/agent/session-state-manager.d.ts +47 -0
  146. package/dist/esm/agent/session-state-manager.d.ts.map +1 -0
  147. package/dist/esm/agent/session-state-manager.js +78 -0
  148. package/dist/esm/agent/session-state-manager.js.map +1 -0
  149. package/dist/esm/agent/tool-executor.d.ts +26 -3
  150. package/dist/esm/agent/tool-executor.d.ts.map +1 -1
  151. package/dist/esm/agent/tool-executor.js +101 -20
  152. package/dist/esm/agent/tool-executor.js.map +1 -1
  153. package/dist/esm/agent/tool-section-builder.d.ts +55 -0
  154. package/dist/esm/agent/tool-section-builder.d.ts.map +1 -0
  155. package/dist/esm/agent/tool-section-builder.js +182 -0
  156. package/dist/esm/agent/tool-section-builder.js.map +1 -0
  157. package/dist/esm/agent/types.d.ts +6 -2
  158. package/dist/esm/agent/types.d.ts.map +1 -1
  159. package/dist/esm/agent/types.js.map +1 -1
  160. package/dist/esm/index.d.ts +7 -3
  161. package/dist/esm/index.d.ts.map +1 -1
  162. package/dist/esm/index.js +4 -1
  163. package/dist/esm/index.js.map +1 -1
  164. package/dist/esm/llm/anthropic-provider.d.ts +5 -0
  165. package/dist/esm/llm/anthropic-provider.d.ts.map +1 -1
  166. package/dist/esm/llm/anthropic-provider.js +25 -1
  167. package/dist/esm/llm/anthropic-provider.js.map +1 -1
  168. package/dist/esm/llm/ollama-provider.d.ts +8 -1
  169. package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
  170. package/dist/esm/llm/ollama-provider.js +19 -0
  171. package/dist/esm/llm/ollama-provider.js.map +1 -1
  172. package/dist/esm/llm/openai-provider.d.ts.map +1 -1
  173. package/dist/esm/llm/openai-provider.js +24 -0
  174. package/dist/esm/llm/openai-provider.js.map +1 -1
  175. package/dist/esm/llm/types.d.ts +40 -0
  176. package/dist/esm/llm/types.d.ts.map +1 -1
  177. package/dist/esm/llm/types.js +80 -0
  178. package/dist/esm/llm/types.js.map +1 -1
  179. package/dist/esm/mcp/base-client.js +2 -2
  180. package/dist/esm/mcp/base-client.js.map +1 -1
  181. package/dist/esm/mcp/client.js +4 -4
  182. package/dist/esm/mcp/client.js.map +1 -1
  183. package/dist/esm/mcp/factory.d.ts +6 -1
  184. package/dist/esm/mcp/factory.d.ts.map +1 -1
  185. package/dist/esm/mcp/factory.js +7 -2
  186. package/dist/esm/mcp/factory.js.map +1 -1
  187. package/dist/esm/mcp/http-client.js +5 -5
  188. package/dist/esm/mcp/http-client.js.map +1 -1
  189. package/dist/esm/observability/logger.d.ts.map +1 -1
  190. package/dist/esm/observability/logger.js +56 -2
  191. package/dist/esm/observability/logger.js.map +1 -1
  192. package/dist/esm/pool/engine-pool.d.ts +4 -4
  193. package/dist/esm/pool/engine-pool.d.ts.map +1 -1
  194. package/dist/esm/pool/engine-pool.js +21 -50
  195. package/dist/esm/pool/engine-pool.js.map +1 -1
  196. package/dist/esm/runtime/run-registry-interface.d.ts +6 -0
  197. package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -1
  198. package/dist/esm/runtime/run-registry.d.ts +8 -0
  199. package/dist/esm/runtime/run-registry.d.ts.map +1 -1
  200. package/dist/esm/runtime/run-registry.js +25 -0
  201. package/dist/esm/runtime/run-registry.js.map +1 -1
  202. package/dist/esm/security/guard.d.ts +12 -1
  203. package/dist/esm/security/guard.d.ts.map +1 -1
  204. package/dist/esm/security/guard.js +42 -10
  205. package/dist/esm/security/guard.js.map +1 -1
  206. package/dist/esm/security/types.d.ts +11 -0
  207. package/dist/esm/security/types.d.ts.map +1 -1
  208. package/dist/esm/tool/ask-user.js +3 -3
  209. package/dist/esm/tool/delegate.d.ts.map +1 -1
  210. package/dist/esm/tool/delegate.js +4 -2
  211. package/dist/esm/tool/delegate.js.map +1 -1
  212. package/dist/esm/types.d.ts +15 -1
  213. package/dist/esm/types.d.ts.map +1 -1
  214. package/dist/esm/utils/dsml-parser.d.ts +1 -1
  215. package/dist/esm/utils/dsml-parser.js +1 -1
  216. package/dist/esm/utils/event-adapter.d.ts.map +1 -1
  217. package/dist/esm/utils/event-adapter.js +6 -0
  218. package/dist/esm/utils/event-adapter.js.map +1 -1
  219. package/dist/esm/utils/ttl-lru-cache.d.ts +49 -0
  220. package/dist/esm/utils/ttl-lru-cache.d.ts.map +1 -0
  221. package/dist/esm/utils/ttl-lru-cache.js +104 -0
  222. package/dist/esm/utils/ttl-lru-cache.js.map +1 -0
  223. package/package.json +1 -1
@@ -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 execResult = await this.runWithTimeout(state, call, args);
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);
@@ -222,26 +301,22 @@ class AgentToolExecutor {
222
301
  * 返回可自我纠正的明确错误;返回 null 表示参数正常可继续执行。
223
302
  *
224
303
  * countsAsFailure 语义:截断类参数错误(内容过长)属于可纠正参数问题,模型改用
225
- * write_file + json_file 策略即可成功,不计入连续失败计数(避免触发 per-tool 熔断,
226
- * 否则正确的 json_file 重试也会被永久拦截,如 create_report 因超长内联参数失败 2 次后被熔断)。
227
- * 空参数错误仍计入。真正的运行时失败(执行后报错)始终正常累加熔断计数。
304
+ * write_file + content_file 策略即可成功,不计入连续失败计数(避免触发 per-tool 熔断,
305
+ * 否则正确的重试也会被永久拦截)。空参数错误仍计入。真正的运行时失败(执行后报错)始终正常累加熔断计数。
228
306
  */
229
307
  buildTruncationGuard(call, args, jsonParseFailed) {
230
308
  const argKeys = Object.keys(args);
231
309
  const argsEffectivelyEmpty = argKeys.length === 0 || (argKeys.length === 1 && args[argKeys[0]] === '');
232
310
  const toolName = call.function.name;
233
- const isDocTool = ['create_presentation', 'create_document', 'create_pdf', 'create_report'].includes(toolName);
234
- const docPayloadKey = toolName === 'create_presentation' ? 'slides' : toolName === 'create_report' ? 'metrics' : 'blocks';
235
- const docArgsIncomplete = isDocTool && !!args.title && !args.json_file && (!Array.isArray(args[docPayloadKey]) || args[docPayloadKey].length === 0);
236
- if (!argsEffectivelyEmpty && !docArgsIncomplete)
311
+ const rawArgs = (call.function.arguments || '').trim();
312
+ const rawArgLength = call._rawArgLength ?? rawArgs.length;
313
+ if (!argsEffectivelyEmpty)
237
314
  return null;
238
315
  const toolDef = this.config.toolRegistry.get(call.function.name);
239
316
  const required = toolDef?.definition?.function?.parameters?.required;
240
- if (!((required && required.length > 0) || docArgsIncomplete))
317
+ if (!(required && required.length > 0))
241
318
  return null;
242
- const rawArgs = (call.function.arguments || '').trim();
243
- const rawArgLength = call._rawArgLength ?? rawArgs.length;
244
- const isTruncated = (jsonParseFailed || docArgsIncomplete) && rawArgLength > 200;
319
+ const isTruncated = jsonParseFailed && rawArgLength > 200;
245
320
  let result;
246
321
  if (isTruncated) {
247
322
  const isFileWrite = ['write_file', 'append_file'].includes(toolName);
@@ -250,11 +325,8 @@ class AgentToolExecutor {
250
325
  `TRUNCATED_PARAMS_ERROR: ${toolName} parameters were too long (${rawArgLength} chars, JSON truncated or incomplete).`,
251
326
  '',
252
327
  ];
253
- if (isDocTool) {
254
- const rootKey = toolName === 'create_presentation' ? 'slides' : toolName === 'create_report' ? 'metrics' : 'blocks';
255
- const firstItemType = toolName === 'create_presentation' ? 'cover' : toolName === 'create_report' ? 'metric' : 'heading';
256
- const nextItemType = toolName === 'create_presentation' ? 'content' : toolName === 'create_report' ? 'section' : 'paragraph';
257
- lines.push(`CRITICAL: NEVER inline the full ${toolName} data in tool parameters — it exceeds the limit and gets truncated. ALWAYS use the json_file strategy below.`, ``, `RECOMMENDED — use json_file + append_file strategy:`, ` 1. write_file({ path: "data.json", content: '{"${rootKey}": [' })`, ` 2. append_file({ path: "data.json", content: '{"type":"${firstItemType}","title":"..."},' })`, ` 3. append_file({ path: "data.json", content: '{"type":"${nextItemType}","title":"..."},' })`, ` ... repeat for each ${rootKey.slice(0, -1)} ...`, ` N. append_file({ path: "data.json", content: '], "theme": "professional"}' })`, ` N+1. ${toolName}({ title: "My Title", json_file: "data.json" })`, '', 'Each write_file/append_file content chunk MUST be under 3000 characters.', '');
328
+ if (toolName === 'create_document') {
329
+ lines.push(`CRITICAL: NEVER inline the full document content in tool parameters - it exceeds the limit and gets truncated.`, ``, `RECOMMENDED - write content to a file, then pass content_file:`, ` 1. write_file({ path: "content.md", content: "<first ~2500 chars of markdown>" })`, ` 2. append_file({ path: "content.md", content: "<next ~2500 chars>" })`, ` 3. create_document({ format: <"html"|"pptx"|"docx"|"pdf">, title: "My Title", content_file: "content.md" })`, ``, `Accepted parameters:`, ` - format: "html" | "pptx" | "docx" | "pdf" (required)`, ` - title: document title (required)`, ` - content_file: sandbox-relative path to a .md file (use this for long content)`, ` - content: markdown string (only for short content; do NOT inline large content)`, ` - theme: "dark" | "light" (HTML only, default: dark)`, ` - filename: custom output filename without extension (optional)`, ``, `Each write_file/append_file chunk MUST be under 3000 characters.`, '');
258
330
  }
259
331
  else if (isFileWrite) {
260
332
  lines.push('RECOMMENDED — split content across multiple calls:', ' 1. write_file({ path: "script.cjs", content: "<first ~2500 chars>" })', ' 2. append_file({ path: "script.cjs", content: "<next ~2500 chars>" })', ' 3. append_file({ path: "script.cjs", content: "<next ~2500 chars>" })', ' ... repeat until complete ...', '', 'Each chunk MUST be under 3000 characters. Count your characters!', '');
@@ -399,8 +471,17 @@ class AgentToolExecutor {
399
471
  const modified = allBefore.find(r => r.modify);
400
472
  if (modified?.modify)
401
473
  actualArgs = { ...actualArgs, ...modified.modify };
402
- // 执行工具(带超时)
403
- const execResult = await this.runWithTimeout(state, call, actualArgs);
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
+ }
404
485
  const { result, isError, duration } = execResult;
405
486
  // Hook + Middleware: after_tool
406
487
  const afterHookCtx = {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../../src/agent/tool-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Tool Section Builder -- 从 engine.ts 抽离的工具定义解析、摘要化、
3
+ * 动态工具区构建、占位符渲染等逻辑。
4
+ *
5
+ * 设计说明:engine.ts 主类保留 `prepareRun` 等编排入口,将"工具段拼装"
6
+ * 的细节委托给此模块的独立函数。函数签名以 `ToolSectionDeps` 接收依赖,
7
+ * 避免运行时循环引用。
8
+ */
9
+ import type { ToolDefinition, ToolContext } from '../tool/types.js';
10
+ import type { RunOptions, AgentConfig } from './types.js';
11
+ /** 工具段构建器所需的 Engine 依赖 */
12
+ export interface ToolSectionDeps {
13
+ config: AgentConfig;
14
+ summarizedToolNames: Set<string>;
15
+ }
16
+ /** 创建空壳 shell 执行器(当 options.context.custom.shell 未提供时使用) */
17
+ export declare function createNoopShell(): ToolContext['shell'];
18
+ /**
19
+ * 解析本次 run 的工具定义集合。
20
+ *
21
+ * 1. 从 config.defaultTools + options.extraTools 获取初始列表
22
+ * 2. 按 deniedTools 过滤
23
+ * 3. 按 toolDiscovery 模式(summary / summary-all)对非核心工具做摘要化
24
+ */
25
+ export declare function resolveToolDefs(deps: ToolSectionDeps, options: RunOptions): ToolDefinition[];
26
+ /**
27
+ * 将工具定义转为摘要形式(截断 description + 清空 parameters)。
28
+ * 实现抽离至 ./compaction.ts,保持单一来源。
29
+ */
30
+ export declare function summarizeToolDefImpl(deps: ToolSectionDeps, def: ToolDefinition, scope: 'mcp' | 'all' | null): ToolDefinition;
31
+ /** 构建 ToolContext */
32
+ export declare function buildToolContext(deps: ToolSectionDeps, options: RunOptions, internalAbort: AbortController): ToolContext;
33
+ /** 动态构建工具区 prompt(Available Tools + Tool Usage Guidelines)。
34
+ * 从 state.toolDefs 现场拼装,确保与可执行工具集一致,消除静态穿透。 */
35
+ export declare function buildDynamicToolSection(deps: ToolSectionDeps, toolDefs: ToolDefinition[]): string;
36
+ /**
37
+ * 渲染工具提示中对其它工具的引用,避免「提示穿透」:
38
+ * 文案中使用 `{{TOOL:name}}` 包裹对其它工具的引用。
39
+ * - 若该工具在当前能力集(available)中,渲染为 `name`;
40
+ * - 若该工具未注册(不在 available,也未出现在 relatedTools 声明中),则整段(含该占位符的整行/整句)被剔除,
41
+ * 避免诱导 LLM 调用不存在的工具。
42
+ *
43
+ * @param text 原始文案
44
+ * @param available 当前可用的工具名集合(用于判定 {{TOOL:name}} 是否可见)
45
+ * @param relatedTools 声明式引用清单(可选)。留空的占位符若不在 available 中则被剔除;
46
+ * 显式声明在 relatedTools 中的工具名也可被识别为「已知引用」参与裁剪。
47
+ */
48
+ export declare function renderToolRefs(text: string, available: Set<string>, relatedTools?: string[]): string;
49
+ /** 刷新 system prompt 中的工具区,确保与 state.toolDefs 一致 */
50
+ export declare function refreshToolSection(deps: ToolSectionDeps, state: {
51
+ messages: any[];
52
+ stableSystemPrompt: string | null;
53
+ toolDefs: ToolDefinition[];
54
+ }): void;
55
+ //# sourceMappingURL=tool-section-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-section-builder.d.ts","sourceRoot":"","sources":["../../../src/agent/tool-section-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI1D,0BAA0B;AAC1B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,IAAI,WAAW,CAAC,OAAO,CAAC,CAMtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,GAAG,cAAc,EAAE,CAwC5F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAC1B,cAAc,CAMhB;AAED,qBAAqB;AACrB,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,eAAe,GAC7B,WAAW,CAuBb;AAED;+CAC+C;AAC/C,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,cAAc,EAAE,GACzB,MAAM,CAwBR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CA+BpG;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,GACxF,IAAI,CAIN"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ /**
3
+ * Tool Section Builder -- 从 engine.ts 抽离的工具定义解析、摘要化、
4
+ * 动态工具区构建、占位符渲染等逻辑。
5
+ *
6
+ * 设计说明:engine.ts 主类保留 `prepareRun` 等编排入口,将"工具段拼装"
7
+ * 的细节委托给此模块的独立函数。函数签名以 `ToolSectionDeps` 接收依赖,
8
+ * 避免运行时循环引用。
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.createNoopShell = createNoopShell;
12
+ exports.resolveToolDefs = resolveToolDefs;
13
+ exports.summarizeToolDefImpl = summarizeToolDefImpl;
14
+ exports.buildToolContext = buildToolContext;
15
+ exports.buildDynamicToolSection = buildDynamicToolSection;
16
+ exports.renderToolRefs = renderToolRefs;
17
+ exports.refreshToolSection = refreshToolSection;
18
+ const compaction_ts_1 = require("./compaction.js");
19
+ const constants_ts_1 = require("./constants.js");
20
+ /** 创建空壳 shell 执行器(当 options.context.custom.shell 未提供时使用) */
21
+ function createNoopShell() {
22
+ return {
23
+ exec: async () => 'Error: Shell executor not configured',
24
+ write: () => { },
25
+ read: () => '',
26
+ };
27
+ }
28
+ /**
29
+ * 解析本次 run 的工具定义集合。
30
+ *
31
+ * 1. 从 config.defaultTools + options.extraTools 获取初始列表
32
+ * 2. 按 deniedTools 过滤
33
+ * 3. 按 toolDiscovery 模式(summary / summary-all)对非核心工具做摘要化
34
+ */
35
+ function resolveToolDefs(deps, options) {
36
+ const { config, summarizedToolNames } = deps;
37
+ // 清空并重建摘要化工具名集合
38
+ summarizedToolNames.clear();
39
+ const toolNames = [...(config.defaultTools || []), ...(options.extraTools || [])];
40
+ let defs = toolNames.length > 0
41
+ ? config.toolRegistry.getDefinitions({ names: toolNames })
42
+ : config.toolRegistry.getDefinitions();
43
+ if (config.deniedTools?.length) {
44
+ const denied = new Set(config.deniedTools);
45
+ defs = defs.filter(d => !denied.has(d.function.name));
46
+ }
47
+ const discovery = config.toolDiscovery;
48
+ // summary 模式:仅 MCP 工具摘要
49
+ if (discovery === 'summary') {
50
+ defs = defs.map(d => {
51
+ const summarized = summarizeToolDefImpl(deps, d, 'mcp');
52
+ if (summarized !== d)
53
+ summarizedToolNames.add(d.function.name);
54
+ return summarized;
55
+ });
56
+ }
57
+ // summary-all 模式:所有非核心工具摘要(MCP + 非核心内置工具)
58
+ if (discovery === 'summary-all') {
59
+ const coreOverride = config.coreToolNames
60
+ ? new Set(config.coreToolNames)
61
+ : constants_ts_1.CORE_TOOL_NAMES;
62
+ defs = defs.map(d => {
63
+ const isCore = coreOverride.has(d.function.name);
64
+ const summarized = summarizeToolDefImpl(deps, d, isCore ? null : 'all');
65
+ if (summarized !== d)
66
+ summarizedToolNames.add(d.function.name);
67
+ return summarized;
68
+ });
69
+ }
70
+ return defs;
71
+ }
72
+ /**
73
+ * 将工具定义转为摘要形式(截断 description + 清空 parameters)。
74
+ * 实现抽离至 ./compaction.ts,保持单一来源。
75
+ */
76
+ function summarizeToolDefImpl(deps, def, scope) {
77
+ return (0, compaction_ts_1.summarizeToolDef)(def, {
78
+ scope,
79
+ maxDesc: deps.config.toolSummaryMaxDesc ?? 100,
80
+ getCategory: (name) => deps.config.toolRegistry.get(name)?.category,
81
+ });
82
+ }
83
+ /** 构建 ToolContext */
84
+ function buildToolContext(deps, options, internalAbort) {
85
+ const custom = options.context?.custom;
86
+ return {
87
+ sessionId: options.sessionId,
88
+ shell: custom?.shell || createNoopShell(),
89
+ fs: custom?.fs,
90
+ env: options.context?.env,
91
+ abortSignal: internalAbort.signal,
92
+ custom: {
93
+ ...custom,
94
+ // Fix A:始终使用引擎授权注册表(已按 selectedTools/disabledTools 过滤),
95
+ // 不接受 custom.toolRegistry 覆盖--防止 read_tool_doc/diagnose 泄漏被禁工具 schema。
96
+ toolRegistry: deps.config.toolRegistry,
97
+ skillManager: custom?.skillManager ?? deps.config.skillManager,
98
+ },
99
+ emitSubEvent: custom?.emitSubEvent,
100
+ emitWidget: custom?.emitWidget,
101
+ emitArtifact: custom?.emitArtifact,
102
+ emitToolLog: custom?.emitToolLog,
103
+ emitToolHeartbeat: custom?.emitToolHeartbeat,
104
+ toolTimeout: deps.config.toolTimeout,
105
+ maxScriptTimeoutMs: deps.config.maxScriptTimeoutMs,
106
+ };
107
+ }
108
+ /** 动态构建工具区 prompt(Available Tools + Tool Usage Guidelines)。
109
+ * 从 state.toolDefs 现场拼装,确保与可执行工具集一致,消除静态穿透。 */
110
+ function buildDynamicToolSection(deps, toolDefs) {
111
+ const { config, summarizedToolNames } = deps;
112
+ if (config.buildToolSection) {
113
+ return config.buildToolSection(toolDefs, config.toolRegistry);
114
+ }
115
+ if (toolDefs.length === 0)
116
+ return '';
117
+ // 可用工具名集合:用于占位符 {{TOOL:name}} 渲染时判定引用是否真实可用
118
+ const available = new Set(toolDefs.map(d => d.function.name));
119
+ const lines = toolDefs.map(d => `- \`${d.function.name}\`: ${renderToolRefs(d.function.description || '', available)}`);
120
+ let section = `\n\n## Available Tools\n${lines.join('\n')}`;
121
+ // 收集工具自带的使用引导(tool.prompt),并对其中对其他工具的引用做可用裁剪。
122
+ // tool.relatedTools 是声明式的「本工具引用的其它工具」清单,
123
+ // 用于:若某占位符 {{TOOL:x}} 未注册,则整段引用被剔除(见 renderToolRefs)。
124
+ const prompts = [];
125
+ for (const def of toolDefs) {
126
+ // 跳过被摘要化的工具:其 prompt 不注入 system prompt(progressive loading)
127
+ if (summarizedToolNames.has(def.function.name))
128
+ continue;
129
+ const tool = config.toolRegistry.get(def.function.name);
130
+ if (tool?.prompt)
131
+ prompts.push(renderToolRefs(tool.prompt, available, tool.relatedTools));
132
+ }
133
+ if (prompts.length > 0) {
134
+ section += `\n\n## Tool Usage Guidelines\n\n${prompts.join('\n\n')}`;
135
+ }
136
+ return section;
137
+ }
138
+ /**
139
+ * 渲染工具提示中对其它工具的引用,避免「提示穿透」:
140
+ * 文案中使用 `{{TOOL:name}}` 包裹对其它工具的引用。
141
+ * - 若该工具在当前能力集(available)中,渲染为 `name`;
142
+ * - 若该工具未注册(不在 available,也未出现在 relatedTools 声明中),则整段(含该占位符的整行/整句)被剔除,
143
+ * 避免诱导 LLM 调用不存在的工具。
144
+ *
145
+ * @param text 原始文案
146
+ * @param available 当前可用的工具名集合(用于判定 {{TOOL:name}} 是否可见)
147
+ * @param relatedTools 声明式引用清单(可选)。留空的占位符若不在 available 中则被剔除;
148
+ * 显式声明在 relatedTools 中的工具名也可被识别为「已知引用」参与裁剪。
149
+ */
150
+ function renderToolRefs(text, available, relatedTools) {
151
+ // relatedTools 声明本工具引用的「其他工具」。占位符 {{TOOL:name}} 只有在
152
+ // - name 确实注册(available)时才渲染为 `name`;
153
+ // - 否则用哨兵标记,后续做子句级清除,避免留下 "do NOT call after" 这类残缺。
154
+ // 不在 relatedTools 且未注册的占位符视为误写,保留原文。
155
+ const knownRefs = relatedTools && relatedTools.length > 0 ? new Set(relatedTools) : null;
156
+ const SENTINEL = '\x00'; // 哨兵:标记被剔除的占位符位置
157
+ // 1) 替换:可用 -> name;不可用且为已知引用 -> 哨兵;其余保留原文
158
+ let out = text.replace(/\{\{TOOL:([a-zA-Z0-9_-]+)\}\}/g, (m, name) => {
159
+ if (available.has(name))
160
+ return `\`${name}\``;
161
+ if (knownRefs && !knownRefs.has(name))
162
+ return m;
163
+ return SENTINEL;
164
+ });
165
+ // 2) 子句级清除:以 " - " 或 ", " 分隔的子句中含哨兵,则移除整个子句
166
+ out = out
167
+ .split(/(?<=\S)\s+-\s+|(?<=\S),\s+/)
168
+ .filter(clause => !clause.includes(SENTINEL))
169
+ .join(', ');
170
+ // 3) 行级清除:多行 prompt 中,整行仅剩哨兵/标点/空白的予以移除
171
+ out = out
172
+ .split('\n')
173
+ .filter(line => {
174
+ const trimmed = line.trim();
175
+ if (trimmed === '')
176
+ return true;
177
+ const meaningful = trimmed.replace(/[`.,;:()\-]+/g, '').replace(/\s+/g, '');
178
+ return meaningful.length > 0 && !trimmed.includes(SENTINEL);
179
+ })
180
+ .join('\n');
181
+ // 4) 清理残留哨兵 + 收缩多余空格
182
+ out = out.replace(/\x00/g, '').replace(/ {2,}/g, ' ').replace(/\s+\n/g, '\n').trim();
183
+ return out;
184
+ }
185
+ /** 刷新 system prompt 中的工具区,确保与 state.toolDefs 一致 */
186
+ function refreshToolSection(deps, state) {
187
+ if (state.messages[0] && state.stableSystemPrompt != null) {
188
+ state.messages[0].content = state.stableSystemPrompt + buildDynamicToolSection(deps, state.toolDefs);
189
+ }
190
+ }
191
+ //# sourceMappingURL=tool-section-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-section-builder.js","sourceRoot":"","sources":["../../../src/agent/tool-section-builder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { LLMProvider } from '../llm/types.js';
1
+ import type { LLMProvider, ResponseFormat } from '../llm/types.js';
2
2
  import type { ToolRegistry } from '../tool/registry.js';
3
3
  import type { ToolDefinition } from '../tool/types.js';
4
4
  import type { SkillManager } from '../skill/manager.js';
@@ -84,6 +84,8 @@ export interface AgentConfig {
84
84
  basePrompt?: string;
85
85
  /** LLM Provider 实例 */
86
86
  llmProvider: LLMProvider;
87
+ /** 结构化输出约束(Profile 级默认;请求级可用 RunOptions.responseFormat 覆盖) */
88
+ responseFormat?: ResponseFormat;
87
89
  /** Tool Registry 实例 */
88
90
  toolRegistry: ToolRegistry;
89
91
  /** Skill Manager 实例(可选) */
@@ -147,7 +149,7 @@ export interface AgentConfig {
147
149
  tokenBudget?: TokenBudget;
148
150
  /** 数据获取类工具名列表(用于循环检测,默认 ['web_fetch', 'http_request', 'browser_navigate', 'browser_click', 'execute_command', 'read_file', 'read_tool_doc'];注意 run_script 已不在默认列表,因为它属于「计算/执行」而非「数据获取」,避免循环检测触发后被动态禁用) */
149
151
  dataFetchTools?: string[];
150
- /** 产出型工具名列表(有这些工具调用时不触发数据获取循环检测,默认 ['delegate_task', 'create_presentation', 'create_document', 'create_pdf', 'show_widget', 'save_artifact']) */
152
+ /** 产出型工具名列表(有这些工具调用时不触发数据获取循环检测,默认 ['delegate_task', 'create_document', 'show_widget', 'save_artifact']) */
151
153
  outputTools?: string[];
152
154
  /** 外部数据源获取工具名列表(用于数据出处判定:本轮尝试过这些工具但全部失败时,
153
155
  * 最终回复的数据必然来自模型记忆,引擎会追加「未经实时核验」声明。
@@ -304,6 +306,8 @@ export interface RunOptions {
304
306
  abortSignal?: AbortSignal;
305
307
  /** 本次执行覆盖的 system prompt 片段(追加到 basePrompt 之后) */
306
308
  systemPromptOverride?: string;
309
+ /** 结构化输出约束(请求级覆盖,优先级高于 AgentConfig.responseFormat) */
310
+ responseFormat?: ResponseFormat;
307
311
  /** 扩展参数 */
308
312
  options?: Record<string, unknown>;
309
313
  }