@zooique/memora 0.1.0 → 0.2.0

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 (190) hide show
  1. package/dist/agent/agent.d.ts +155 -23
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/agent.js +386 -124
  4. package/dist/agent/agent.js.map +1 -1
  5. package/dist/agent/assembler.d.ts +8 -2
  6. package/dist/agent/assembler.d.ts.map +1 -1
  7. package/dist/agent/assembler.js +17 -6
  8. package/dist/agent/assembler.js.map +1 -1
  9. package/dist/agent/builtinToolHandlers.d.ts +1 -1
  10. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  11. package/dist/agent/builtinToolHandlers.js +5 -3
  12. package/dist/agent/builtinToolHandlers.js.map +1 -1
  13. package/dist/agent/builtinTools.d.ts +1 -1
  14. package/dist/agent/builtinTools.js +2 -2
  15. package/dist/agent/builtinTools.js.map +1 -1
  16. package/dist/agent/constants.d.ts +27 -6
  17. package/dist/agent/constants.d.ts.map +1 -1
  18. package/dist/agent/constants.js +27 -6
  19. package/dist/agent/constants.js.map +1 -1
  20. package/dist/agent/contextManager.d.ts +35 -9
  21. package/dist/agent/contextManager.d.ts.map +1 -1
  22. package/dist/agent/contextManager.js +138 -25
  23. package/dist/agent/contextManager.js.map +1 -1
  24. package/dist/agent/loop.d.ts +41 -11
  25. package/dist/agent/loop.d.ts.map +1 -1
  26. package/dist/agent/loop.js +143 -61
  27. package/dist/agent/loop.js.map +1 -1
  28. package/dist/agent/managers/archiveCoordinator.d.ts +100 -0
  29. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -0
  30. package/dist/agent/managers/archiveCoordinator.js +127 -0
  31. package/dist/agent/managers/archiveCoordinator.js.map +1 -0
  32. package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
  33. package/dist/agent/managers/autoConfigRefiner.js +1 -1
  34. package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
  35. package/dist/agent/managers/configManager.d.ts +13 -2
  36. package/dist/agent/managers/configManager.d.ts.map +1 -1
  37. package/dist/agent/managers/configManager.js +13 -5
  38. package/dist/agent/managers/configManager.js.map +1 -1
  39. package/dist/agent/managers/insightExtractor.d.ts +36 -3
  40. package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
  41. package/dist/agent/managers/insightExtractor.js +48 -11
  42. package/dist/agent/managers/insightExtractor.js.map +1 -1
  43. package/dist/agent/managers/memoryAdvisor.d.ts +4 -2
  44. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  45. package/dist/agent/managers/memoryAdvisor.js +6 -4
  46. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  47. package/dist/agent/managers/memoryDecayScheduler.d.ts +113 -0
  48. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -0
  49. package/dist/agent/managers/memoryDecayScheduler.js +134 -0
  50. package/dist/agent/managers/memoryDecayScheduler.js.map +1 -0
  51. package/dist/agent/managers/memoryInspector.d.ts +70 -10
  52. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  53. package/dist/agent/managers/memoryInspector.js +97 -23
  54. package/dist/agent/managers/memoryInspector.js.map +1 -1
  55. package/dist/agent/managers/sessionArchiver.d.ts +77 -0
  56. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -0
  57. package/dist/agent/managers/sessionArchiver.js +175 -0
  58. package/dist/agent/managers/sessionArchiver.js.map +1 -0
  59. package/dist/agent/managers/sessionManager.d.ts +10 -0
  60. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  61. package/dist/agent/managers/sessionManager.js +26 -5
  62. package/dist/agent/managers/sessionManager.js.map +1 -1
  63. package/dist/agent/managers/workProjection.d.ts +1 -1
  64. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  65. package/dist/agent/managers/workProjection.js +13 -10
  66. package/dist/agent/managers/workProjection.js.map +1 -1
  67. package/dist/agent/messageHistory.d.ts +1 -22
  68. package/dist/agent/messageHistory.d.ts.map +1 -1
  69. package/dist/agent/messageHistory.js +3 -19
  70. package/dist/agent/messageHistory.js.map +1 -1
  71. package/dist/agent/toolExecutor.d.ts +5 -18
  72. package/dist/agent/toolExecutor.d.ts.map +1 -1
  73. package/dist/agent/toolExecutor.js +7 -7
  74. package/dist/agent/toolExecutor.js.map +1 -1
  75. package/dist/agent/tracer.d.ts +8 -1
  76. package/dist/agent/tracer.d.ts.map +1 -1
  77. package/dist/agent/tracer.js +8 -1
  78. package/dist/agent/tracer.js.map +1 -1
  79. package/dist/agent/types.d.ts +29 -0
  80. package/dist/agent/types.d.ts.map +1 -1
  81. package/dist/agent/{managers/userFactExtractor.d.ts → userFactExtractor.d.ts} +2 -2
  82. package/dist/agent/userFactExtractor.d.ts.map +1 -0
  83. package/dist/agent/userFactExtractor.js.map +1 -0
  84. package/dist/config/loader.d.ts +4 -4
  85. package/dist/config/loader.d.ts.map +1 -1
  86. package/dist/config/loader.js +11 -2
  87. package/dist/config/loader.js.map +1 -1
  88. package/dist/eval/evalTypes.js +1 -1
  89. package/dist/eval/evalTypes.js.map +1 -1
  90. package/dist/index.d.ts +5 -2
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +2 -1
  93. package/dist/index.js.map +1 -1
  94. package/dist/llm/embedding.d.ts.map +1 -1
  95. package/dist/llm/embedding.js +8 -6
  96. package/dist/llm/embedding.js.map +1 -1
  97. package/dist/llm/factory.d.ts.map +1 -1
  98. package/dist/llm/factory.js +2 -1
  99. package/dist/llm/factory.js.map +1 -1
  100. package/dist/llm/openaiCompatible.d.ts +9 -0
  101. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  102. package/dist/llm/openaiCompatible.js +77 -33
  103. package/dist/llm/openaiCompatible.js.map +1 -1
  104. package/dist/llm/provider.d.ts +17 -3
  105. package/dist/llm/provider.d.ts.map +1 -1
  106. package/dist/llm/provider.js +6 -2
  107. package/dist/llm/provider.js.map +1 -1
  108. package/dist/logging/logger.d.ts.map +1 -1
  109. package/dist/logging/logger.js +25 -9
  110. package/dist/logging/logger.js.map +1 -1
  111. package/dist/memory/hybridMerge.d.ts +54 -0
  112. package/dist/memory/hybridMerge.d.ts.map +1 -0
  113. package/dist/memory/hybridMerge.js +36 -0
  114. package/dist/memory/hybridMerge.js.map +1 -0
  115. package/dist/memory/inMemoryStorage.d.ts +90 -15
  116. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  117. package/dist/memory/inMemoryStorage.js +179 -28
  118. package/dist/memory/inMemoryStorage.js.map +1 -1
  119. package/dist/memory/loader.js +1 -1
  120. package/dist/memory/loader.js.map +1 -1
  121. package/dist/memory/projectManager.d.ts +34 -5
  122. package/dist/memory/projectManager.d.ts.map +1 -1
  123. package/dist/memory/projectManager.js +98 -62
  124. package/dist/memory/projectManager.js.map +1 -1
  125. package/dist/memory/recall.d.ts +7 -18
  126. package/dist/memory/recall.d.ts.map +1 -1
  127. package/dist/memory/recall.js +14 -19
  128. package/dist/memory/recall.js.map +1 -1
  129. package/dist/memory/storageInterface.d.ts +81 -14
  130. package/dist/memory/storageInterface.d.ts.map +1 -1
  131. package/dist/memory/store.js +1 -1
  132. package/dist/memory/store.js.map +1 -1
  133. package/dist/memory/types.d.ts +7 -1
  134. package/dist/memory/types.d.ts.map +1 -1
  135. package/dist/memory/types.js +5 -1
  136. package/dist/memory/types.js.map +1 -1
  137. package/dist/memory/userProfile.d.ts +6 -6
  138. package/dist/memory/userProfile.d.ts.map +1 -1
  139. package/dist/memory/userProfile.js +20 -15
  140. package/dist/memory/userProfile.js.map +1 -1
  141. package/dist/memory/vectorStore.d.ts +35 -0
  142. package/dist/memory/vectorStore.d.ts.map +1 -1
  143. package/dist/memory/vectorStore.js +111 -2
  144. package/dist/memory/vectorStore.js.map +1 -1
  145. package/dist/persona/personaManager.d.ts +17 -4
  146. package/dist/persona/personaManager.d.ts.map +1 -1
  147. package/dist/persona/personaManager.js +44 -12
  148. package/dist/persona/personaManager.js.map +1 -1
  149. package/dist/security/pathGuard.d.ts +29 -7
  150. package/dist/security/pathGuard.d.ts.map +1 -1
  151. package/dist/security/pathGuard.js +148 -81
  152. package/dist/security/pathGuard.js.map +1 -1
  153. package/dist/skill/skillManager.d.ts +15 -0
  154. package/dist/skill/skillManager.d.ts.map +1 -1
  155. package/dist/skill/skillManager.js +25 -3
  156. package/dist/skill/skillManager.js.map +1 -1
  157. package/dist/skill/types.d.ts +7 -1
  158. package/dist/skill/types.d.ts.map +1 -1
  159. package/dist/utils/errors.d.ts +26 -7
  160. package/dist/utils/errors.d.ts.map +1 -1
  161. package/dist/utils/errors.js +10 -18
  162. package/dist/utils/errors.js.map +1 -1
  163. package/dist/utils/eventEmitter.d.ts +9 -2
  164. package/dist/utils/eventEmitter.d.ts.map +1 -1
  165. package/dist/utils/eventEmitter.js +1 -1
  166. package/dist/utils/eventEmitter.js.map +1 -1
  167. package/dist/utils/frontmatter.d.ts +8 -1
  168. package/dist/utils/frontmatter.d.ts.map +1 -1
  169. package/dist/utils/frontmatter.js +14 -3
  170. package/dist/utils/frontmatter.js.map +1 -1
  171. package/dist/utils/path.d.ts +5 -1
  172. package/dist/utils/path.d.ts.map +1 -1
  173. package/dist/utils/path.js +5 -1
  174. package/dist/utils/path.js.map +1 -1
  175. package/dist/utils/safeTimer.d.ts +19 -0
  176. package/dist/utils/safeTimer.d.ts.map +1 -1
  177. package/dist/utils/safeTimer.js +27 -0
  178. package/dist/utils/safeTimer.js.map +1 -1
  179. package/dist/utils/segmenter.d.ts +0 -12
  180. package/dist/utils/segmenter.d.ts.map +1 -1
  181. package/dist/utils/segmenter.js +8 -3
  182. package/dist/utils/segmenter.js.map +1 -1
  183. package/dist/utils/strings.d.ts +1 -1
  184. package/dist/utils/strings.d.ts.map +1 -1
  185. package/dist/utils/strings.js +4 -2
  186. package/dist/utils/strings.js.map +1 -1
  187. package/package.json +1 -1
  188. package/dist/agent/managers/userFactExtractor.d.ts.map +0 -1
  189. package/dist/agent/managers/userFactExtractor.js.map +0 -1
  190. /package/dist/agent/{managers/userFactExtractor.js → userFactExtractor.js} +0 -0
@@ -2,12 +2,13 @@ import { LOOP_CONSTANTS } from '../agent/constants.js';
2
2
  import { ContextManager } from '../agent/contextManager.js';
3
3
  import { NOOP_TRACER, TRACE_SPANS } from '../agent/tracer.js';
4
4
  import { MemoraError, isRetryableErrorCode, toError } from '../utils/errors.js';
5
+ import { safeSetTimeout } from '../utils/safeTimer.js';
5
6
  import { logger } from '../logging/logger.js';
6
7
  export class AgentLoop {
7
8
  opts;
8
9
  messages = [];
9
10
  maxIterations;
10
- /** 上下文窗口 token 上限(默认 8000,约 32K 中文字符) */
11
+ /** 上下文窗口 token 上限(默认 32000,约 96K 中文字符) */
11
12
  maxContextTokens;
12
13
  /** 可观测性 Tracer(默认 NOOP_TRACER 零开销) */
13
14
  tracer;
@@ -19,9 +20,9 @@ export class AgentLoop {
19
20
  ui;
20
21
  /** 上下文超限时是否自动生成摘要 */
21
22
  enableContextSummary;
22
- /** 上下文管理器(QC-R2-08:从 loop 提取的 token 估算 + 截断 + 摘要职责) */
23
+ /** 上下文管理器(从 loop 提取的 token 估算 + 截断 + 摘要职责) */
23
24
  contextManager;
24
- // ─── R-103 运行时指标统计字段 ──────────────────────────
25
+ // ─── 运行时指标统计字段 ──────────────────────────
25
26
  // 累计值,从 AgentLoop 构造起累加,供 getMetrics() 返回快照。
26
27
  // 设计为私有字段而非外部注入,保持 AgentLoop 自洽。
27
28
  /** LLM 调用总次数(含重试,每次 provider.chat 调用 +1) */
@@ -38,7 +39,7 @@ export class AgentLoop {
38
39
  metricToolCallCount = 0;
39
40
  /** 工具调用失败次数(结果以 [ERR 开头) */
40
41
  metricToolFailureCount = 0;
41
- // metricTruncationCount 已移至 ContextManager.truncationCount(QC-R2-08)
42
+ // metricTruncationCount 已移至 ContextManager.truncationCount
42
43
  constructor(opts) {
43
44
  this.opts = opts;
44
45
  this.maxIterations = opts.maxIterations ?? 20;
@@ -49,6 +50,8 @@ export class AgentLoop {
49
50
  this.ui = {
50
51
  abortedByUser: opts.messages?.abortedByUser ?? 'User cancelled the conversation',
51
52
  maxIterationsReached: opts.messages?.maxIterationsReached ?? '\n\n[Max iterations reached]',
53
+ // 流式中断标记,追加到中断时已生成的部分文本末尾
54
+ interrupted: opts.messages?.interrupted ?? '\n\n[已中断]',
52
55
  contextTruncated: opts.messages?.contextTruncated ??
53
56
  ((skipped, kept) => `[Context window management] ${skipped} earlier messages have been trimmed to maintain conversation flow. ${kept} recent messages are preserved along with the full system prompt. Ask the user if you need to review earlier content.`),
54
57
  recentConversationLabel: opts.messages?.recentConversationLabel ?? '[Recent conversation]',
@@ -61,11 +64,13 @@ export class AgentLoop {
61
64
  ((rule) => `Output blocked by guardrail rule "${rule}"`),
62
65
  };
63
66
  this.enableContextSummary = opts.enableContextSummary ?? true;
64
- // QC-R2-08:上下文管理器(token 估算 + 截断 + 摘要)
67
+ // 上下文管理器(token 估算 + 截断 + 摘要)
68
+ // 注入 tracer,让 generateContextSummary 有 span 埋点
65
69
  this.contextManager = new ContextManager({
66
70
  maxContextTokens: this.maxContextTokens,
67
71
  provider: opts.provider,
68
72
  contextTruncatedFn: this.ui.contextTruncated,
73
+ tracer: this.tracer,
69
74
  });
70
75
  // 初始化 system prompt(基于永驻记忆,加前缀)
71
76
  const prefix = opts.systemPromptPrefix ?? '';
@@ -80,7 +85,7 @@ export class AgentLoop {
80
85
  * @param userInput - 用户原始输入
81
86
  * @param recalledMemories - 记忆召回结果(Agent.memory.search() 产出),
82
87
  * 可选。传入时自动注入到上下文,实现"Agent 记忆召回结果"层
83
- * @param signal - 可选的 AbortSignal,用于取消正在进行的对话(V-105)
88
+ * @param signal - 可选的 AbortSignal,用于取消正在进行的对话
84
89
  * 泊文等宿主 UI 传入 AbortController.signal,用户点击"取消"时触发 abort
85
90
  */
86
91
  async *processUserInput(userInput, recalledMemories, signal) {
@@ -98,21 +103,21 @@ export class AgentLoop {
98
103
  if (recalledMemories?.length) {
99
104
  this.injectRecallAsSystem(recalledMemories);
100
105
  }
101
- const userInputClean = userInput;
102
- // R-103 补充 span 属性:让宿主监控面板能按命中/未命中过滤
106
+ // 补充 span 属性:让宿主监控面板能按命中/未命中过滤
103
107
  recallSpan.setAttribute('hit', recalledMemories !== undefined && recalledMemories.length > 0);
104
108
  recallSpan.end();
105
- // R-103 召回命中率统计:每轮对话算一次召回,结果非空算命中
109
+ // 召回命中率统计:每轮对话算一次召回,结果非空算命中
106
110
  this.metricRecallTotalCount++;
107
111
  if (recalledMemories && recalledMemories.length > 0) {
108
112
  this.metricRecallHitCount++;
109
113
  }
110
114
  // 有记忆召回时,通知上层(用于 UI 展示"召回透明度"——记忆名称 + 相似度)
111
- // 仅暴露 name/score/source 摘要,不泄露完整 content
115
+ // 暴露 id/name/score/source 摘要,不泄露完整 content
112
116
  if (recalledMemories?.length) {
113
117
  yield {
114
118
  type: 'recall',
115
119
  memories: recalledMemories.map((m) => ({
120
+ id: m.id,
116
121
  name: m.name,
117
122
  score: m.score,
118
123
  source: m.source,
@@ -140,12 +145,12 @@ export class AgentLoop {
140
145
  };
141
146
  }
142
147
  // 安全规范 §6:用户输入用 <user_input> 标签包裹,增强 LLM 对注入攻击的免疫力
143
- this.messages.push({ role: 'user', content: `<user_input>${userInputClean}</user_input>` });
148
+ this.messages.push({ role: 'user', content: `<user_input>${userInput}</user_input>` });
144
149
  let iteration = 0;
145
150
  while (iteration < this.maxIterations) {
146
151
  iteration++;
147
152
  logger.debug({ iteration, messageCount: this.messages.length }, 'Agent Loop 迭代');
148
- // V-105:每次迭代前检查是否已被取消
153
+ // 每次迭代前检查是否已被取消
149
154
  if (signal?.aborted) {
150
155
  yield { type: 'aborted', reason: this.ui.abortedByUser };
151
156
  return;
@@ -156,17 +161,28 @@ export class AgentLoop {
156
161
  let contextSummary;
157
162
  if (this.enableContextSummary &&
158
163
  this.contextManager.shouldTruncate(this.messages)) {
159
- // QC-R2-08:摘要缓存管理已移至 ContextManager.getOrCreateSummary
160
- contextSummary = await this.contextManager.getOrCreateSummary(this.messages);
164
+ // 摘要缓存管理已移至 ContextManager.getOrCreateSummary
165
+ // 传入 signal,让摘要生成可被用户取消中断(避免 generator 挂起)
166
+ contextSummary = await this.contextManager.getOrCreateSummary(this.messages, signal);
161
167
  }
162
168
  const safeMessages = this.contextManager.truncateMessages(this.messages, contextSummary);
163
- // SEC-01: 截断后同步替换工作记忆,防止 messages 数组无限增长
169
+ // 截断后同步替换工作记忆,防止 messages 数组无限增长
164
170
  // 持久化由 MessageHistory 负责,工作记忆只需保留当前上下文窗口内的消息
165
171
  if (safeMessages !== this.messages) {
166
172
  this.messages = [...safeMessages];
167
173
  }
168
174
  const llmResult = yield* this.callLlmWithRetry(safeMessages, chatOpts, signal, iteration);
169
175
  if (llmResult.aborted) {
176
+ // LLM 调用中断时仍保留已生成的部分文本到上下文消息列表
177
+ // 让下一轮 LLM 能看到中断响应(追加 interrupted 标记让 LLM 识别非完整回复)
178
+ // 注意:工具调用中断(execResult.aborted)不在此处理,因 executeToolCalls
179
+ // 已 push assistant(含 toolCalls),追加文本标记会破坏工具调用结构
180
+ if (llmResult.fullContent.trim()) {
181
+ this.messages.push({
182
+ role: 'assistant',
183
+ content: llmResult.fullContent + this.ui.interrupted,
184
+ });
185
+ }
170
186
  yield { type: 'aborted', reason: this.ui.abortedByUser };
171
187
  return;
172
188
  }
@@ -270,19 +286,52 @@ export class AgentLoop {
270
286
  messageCount: safeMessages.length,
271
287
  iteration,
272
288
  });
273
- // R-103 补充 span 属性:让宿主监控面板能按 token 消耗过滤
289
+ // 补充 span 属性:让宿主监控面板能按 token 消耗过滤
274
290
  llmSpan.setAttribute('inputTokens', this.contextManager.estimateTokens(safeMessages));
275
291
  for (let attempt = 0; attempt <= LOOP_CONSTANTS.MAX_LLM_RETRIES; attempt++) {
292
+ // 每次重试前检查是否已被取消(用户点击停止)
293
+ if (signal?.aborted) {
294
+ aborted = true;
295
+ break;
296
+ }
276
297
  if (attempt > 0) {
277
298
  // 仅在流式输出前失败时重试(streamStarted = false)
278
299
  const delay = LOOP_CONSTANTS.RETRY_BASE_DELAY_MS * Math.pow(2, attempt - 1);
279
300
  logger.warn({ attempt, delay, error: lastError?.message }, 'LLM 调用失败,重试中');
280
- await new Promise((r) => setTimeout(r, delay));
301
+ // 发射 retry chunk:让宿主 UI 显示"网络波动,重试中 N/M...",消除 3 秒静默
302
+ yield {
303
+ type: 'retry',
304
+ attempt,
305
+ maxRetries: LOOP_CONSTANTS.MAX_LLM_RETRIES,
306
+ delayMs: delay,
307
+ error: lastError?.message ?? 'unknown error',
308
+ };
309
+ // 重试延迟期间支持 abort:用 Promise.race 替代单纯的 setTimeout
310
+ await new Promise((resolve) => {
311
+ if (signal?.aborted) {
312
+ resolve();
313
+ return;
314
+ }
315
+ const timeoutId = safeSetTimeout(() => {
316
+ signal?.removeEventListener('abort', onAbort);
317
+ resolve();
318
+ }, delay);
319
+ const onAbort = () => {
320
+ clearTimeout(timeoutId);
321
+ resolve();
322
+ };
323
+ signal?.addEventListener('abort', onAbort, { once: true });
324
+ });
281
325
  fullContent = '';
282
326
  toolCalls = undefined;
327
+ // 延迟后再次检查 abort
328
+ if (signal?.aborted) {
329
+ aborted = true;
330
+ break;
331
+ }
283
332
  }
284
333
  try {
285
- // R-103 LLM 指标统计:每次 provider.chat 调用 +1,输入 token 累计
334
+ // LLM 指标统计:每次 provider.chat 调用 +1,输入 token 累计
286
335
  this.metricLlmCallCount++;
287
336
  this.metricTotalInputTokens += this.contextManager.estimateTokens(safeMessages);
288
337
  // safeMessages 为 readonly Message[],provider.chat 期望 Message[];
@@ -301,7 +350,7 @@ export class AgentLoop {
301
350
  toolCalls = [...(toolCalls ?? []), ...chunk.toolCalls];
302
351
  }
303
352
  }
304
- // R-103 输出 token 统计:成功时累计输出 token
353
+ // 输出 token 统计:成功时累计输出 token
305
354
  this.metricTotalOutputTokens += this.contextManager.estimateTokens([
306
355
  { role: 'assistant', content: fullContent },
307
356
  ]);
@@ -310,6 +359,12 @@ export class AgentLoop {
310
359
  catch (err) {
311
360
  const e = toError(err);
312
361
  lastError = e;
362
+ // AbortError 表示用户主动取消或超时中断,不重试,直接标记 aborted 退出
363
+ // 避免用户点击停止后仍继续发起 LLM 请求,防止 UI 卡在"停止生成"状态
364
+ if (e.name === 'AbortError' || (err instanceof DOMException && err.name === 'AbortError')) {
365
+ aborted = true;
366
+ break;
367
+ }
313
368
  if (streamStarted) {
314
369
  // 流式已开始输出,不能重试(用户已看到部分结果),向上抛出
315
370
  llmSpan.recordException(e);
@@ -354,11 +409,11 @@ export class AgentLoop {
354
409
  });
355
410
  // 执行工具
356
411
  for (const tc of toolCalls) {
357
- // V-105:工具执行前检查取消
412
+ // 工具执行前检查取消
358
413
  if (signal?.aborted) {
359
414
  return { aborted: true };
360
415
  }
361
- // R-103 工具调用统计:每次工具执行 +1
416
+ // 工具调用统计:每次工具执行 +1
362
417
  this.metricToolCallCount++;
363
418
  yield { type: 'tool_start', toolCallId: tc.id, name: tc.function.name, args: tc.function.arguments };
364
419
  // 工具执行 Span
@@ -371,7 +426,9 @@ export class AgentLoop {
371
426
  // 错误结果包含 [ERR:TOOL:code] 前缀,供 Reflection 逻辑解析
372
427
  let result;
373
428
  try {
374
- result = await this.opts.toolExecutor(tc.function.name, tc.function.arguments);
429
+ // 工具执行包裹 signal 中断,避免 abort 无法中断卡住的 generator
430
+ // 原 await toolExecutor 不响应 signal,工具卡住时 generator 挂起、_chatBusy 泄漏
431
+ result = await this.raceToolWithSignal(tc.function.name, tc.function.arguments, signal);
375
432
  }
376
433
  catch (err) {
377
434
  const e = toError(err);
@@ -392,7 +449,7 @@ export class AgentLoop {
392
449
  content: result,
393
450
  toolCallId: tc.id,
394
451
  });
395
- // R-103 工具失败统计:结果以 [ERR 开头算失败
452
+ // 工具失败统计:结果以 [ERR 开头算失败
396
453
  if (result.startsWith('[ERR')) {
397
454
  this.metricToolFailureCount++;
398
455
  }
@@ -404,8 +461,59 @@ export class AgentLoop {
404
461
  summary: result.slice(0, 100),
405
462
  };
406
463
  }
464
+ // 循环结束后再次检查 abort 状态
465
+ // 场景:最后一个工具执行期间 signal 被 abort,raceToolWithSignal 返回 [ERR:TOOL:ABORTED],
466
+ // 循环自然结束,但若不检查则会返回 aborted:false,导致 processUserInput 进入下一轮 LLM 调用(浪费资源)
467
+ if (signal?.aborted) {
468
+ return { aborted: true };
469
+ }
407
470
  return { aborted: false };
408
471
  }
472
+ /**
473
+ * 工具执行与 signal abort 的竞争包裹
474
+ *
475
+ * 背景:toolExecutor 签名 (name, args) => Promise<string> 不接受 signal 参数,
476
+ * 无法真正中断正在执行的工具。原代码直接 await toolExecutor(...),
477
+ * 工具卡住时 generator 永久挂起,导致 _chatBusy 锁泄漏、UI 全阻塞。
478
+ *
479
+ * 方案:用 Promise.race 让 toolExecutor 与 signal abort 监听竞争
480
+ * - 工具先完成:返回工具结果字符串(原行为)
481
+ * - signal 先 abort:返回 [ERR:TOOL:ABORTED] 错误字符串,
482
+ * 让 executeToolCalls 不再 await 工具(工具仍在后台运行,但 generator 解除阻塞)
483
+ *
484
+ * 设计权衡:
485
+ * - 不改 toolExecutor 签名(82 处测试用例依赖此签名,保持向后兼容)
486
+ * - 不抛 AbortError(避免破坏 executeToolCalls 的 try/catch 错误回传 LLM 契约)
487
+ * - 返回错误字符串符合现有"工具失败回传 LLM"契约([ERR:TOOL:code] 前缀)
488
+ * - ABORTED 不进入 ToolErrorCode 体系(用户主动取消非工具失败,不触发 Reflection)
489
+ *
490
+ * @param name 工具名称
491
+ * @param args 工具参数 JSON 字符串
492
+ * @param signal 可选的 AbortSignal
493
+ * @returns 工具结果字符串,或 [ERR:TOOL:ABORTED] 表示被中断
494
+ */
495
+ async raceToolWithSignal(name, args, signal) {
496
+ // 无 signal 时直接执行工具(保持原行为,测试场景常用)
497
+ if (!signal) {
498
+ return this.opts.toolExecutor(name, args);
499
+ }
500
+ // signal 已 abort:直接返回中断错误,不发起工具调用
501
+ if (signal.aborted) {
502
+ return '[ERR:TOOL:ABORTED] 错误:工具执行被中断';
503
+ }
504
+ // 创建 abort 监听 Promise(signal abort 时 resolve 错误字符串)
505
+ // 注意:工具先完成时,abort 监听器会残留在 signal 上直到 signal 触发或被 GC,
506
+ // 但 { once: true } 保证只触发一次,且无副作用,可接受。
507
+ const abortPromise = new Promise((resolve) => {
508
+ const onAbort = () => resolve('[ERR:TOOL:ABORTED] 错误:工具执行被中断');
509
+ signal.addEventListener('abort', onAbort, { once: true });
510
+ });
511
+ // Promise.race 竞争:工具先完成返回结果,signal 先 abort 返回错误字符串
512
+ return Promise.race([
513
+ this.opts.toolExecutor(name, args),
514
+ abortPromise,
515
+ ]);
516
+ }
409
517
  /**
410
518
  * 构建 system prompt(注入人格 + 规则 + 领域 + 工具描述)
411
519
  */
@@ -454,20 +562,26 @@ export class AgentLoop {
454
562
  logger.debug({ recallCount: memories.length }, '召回记忆已以 system 消息注入');
455
563
  }
456
564
  /**
457
- * 构建 LLM 调用选项(包含工具定义 + 结构化输出约束)
565
+ * 构建 LLM 调用选项(包含工具定义)
458
566
  *
459
567
  * 将 toolDefinitions 转换为 OpenAI Function Calling 格式,
460
568
  * 让 LLM 能通过标准协议发起 tool_call,而非文本模拟。
461
569
  *
462
- * 当 Provider 支持 structured output 时,自动生成 json_schema
463
- * 约束,强制 LLM 输出合法的 tool_call 格式,减少参数类型错误。
464
- * 不支持的 Provider 静默降级为纯文本 tool_call 模式。
570
+ * 设计说明:
571
+ * `response_format` 约束的是最终响应体,而 `tool_calls` 是通过
572
+ * `tools` 参数触发的独立流式协议(SSE delta),两者不能并存
573
+ * (同时传入会导致 API 报错或行为未定义)。因此本方法只透传 tools
574
+ * 参数,不生成 `response_format: json_schema`。
575
+ *
576
+ * `supportsStructuredOutput` 字段 + `ChatOptions.response_format`
577
+ * 类型保留,供未来非 tool_call 场景的结构化输出使用(如归档摘要
578
+ * 强制 JSON、配置建议提取等),由调用方显式传入 response_format。
465
579
  */
466
580
  buildChatOptions() {
467
581
  const tools = this.opts.toolDefinitions;
468
582
  if (!tools || tools.length === 0)
469
583
  return {};
470
- const opts = {
584
+ return {
471
585
  tools: tools.map((t) => ({
472
586
  type: 'function',
473
587
  function: {
@@ -477,38 +591,6 @@ export class AgentLoop {
477
591
  },
478
592
  })),
479
593
  };
480
- // 如果 Provider 支持 structured output,生成 json_schema 约束
481
- // 让 LLM 强制输出合法的 tool_call,从源头减少参数类型错误
482
- if (this.opts.provider.supportsStructuredOutput) {
483
- opts.response_format = {
484
- type: 'json_schema',
485
- json_schema: {
486
- name: 'tool_call_response',
487
- strict: true,
488
- schema: {
489
- type: 'object',
490
- properties: {
491
- content: {
492
- type: 'string',
493
- description: 'Assistant response text (may be empty if tool calls are needed)',
494
- },
495
- tool_calls: {
496
- type: 'array',
497
- items: {
498
- type: 'object',
499
- properties: {
500
- name: { type: 'string' },
501
- arguments: { type: 'object' },
502
- },
503
- required: ['name', 'arguments'],
504
- },
505
- },
506
- },
507
- },
508
- },
509
- };
510
- }
511
- return opts;
512
594
  }
513
595
  /**
514
596
  * 刷新工具定义(registerTool 后调用)
@@ -585,7 +667,7 @@ export class AgentLoop {
585
667
  return this.messages;
586
668
  }
587
669
  /**
588
- * 获取 AgentLoop 运行时指标快照(R-103 可观测性增强)
670
+ * 获取 AgentLoop 运行时指标快照(可观测性增强)
589
671
  *
590
672
  * 返回 LLM 调用、记忆召回、工具调用、上下文管理四个维度的累计指标。
591
673
  * 衰减指标(decay)由 Agent 层填充,此处返回 null。
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * 归档协调器(从 agent.ts 拆分)
3
+ *
4
+ * 职责:
5
+ * 1. 手动归档用户画像事实(archiveProfileFacts)
6
+ * 2. 手动归档洞察记忆(archiveInsight)
7
+ * 3. 手动归档会话内容(archiveSessionContent)
8
+ * 4. 归档完成事件发射(memoryAdded / insightExtracted)
9
+ *
10
+ * 设计理由:
11
+ * agent.ts 原承担 15+ 职责,归档操作是独立的领域职责,
12
+ * 拆分后 Agent 聚焦对话编排,ArchiveCoordinator 聚焦手动归档操作。
13
+ *
14
+ * 与 setArchiveMode 的关系:
15
+ * setArchiveMode / getArchiveMode 保留在 Agent 中(涉及 _chatBusy 和 #config 私有字段)。
16
+ * ArchiveCoordinator 只负责归档操作执行,不管理模式状态。
17
+ *
18
+ * 自然生长原则:
19
+ * - 使用 getter 回调注入依赖(getUserProfile / getInsightExtractor / getSessionArchiver)
20
+ * 避免 close 时额外清理,Agent null 化字段后 getter 自然返回 null
21
+ * - 通过回调发射事件(不继承 TypedEventEmitter)
22
+ * - 不做 assertInitialized 检查(由 Agent 在调用前保证)
23
+ */
24
+ import type { Memory } from '../../memory/types.js';
25
+ import type { UserProfile, UserProfileEntry } from '../../memory/userProfile.js';
26
+ import type { InsightExtractor } from '../../agent/managers/insightExtractor.js';
27
+ import type { SessionArchiver, SessionArchiveResult } from '../../agent/managers/sessionArchiver.js';
28
+ import type { AgentEventMap } from '../../utils/eventEmitter.js';
29
+ /** 事件发射回调类型(Agent 注入 this.emit) */
30
+ type EmitCallback = <K extends keyof AgentEventMap>(event: K, payload: AgentEventMap[K]) => void;
31
+ /** ArchiveCoordinator 构造选项 */
32
+ export interface ArchiveCoordinatorOptions {
33
+ /** 获取 UserProfile(可能为 null,Agent 未初始化或未加载时) */
34
+ readonly getUserProfile: () => UserProfile | null;
35
+ /** 获取 InsightExtractor(可能为 null) */
36
+ readonly getInsightExtractor: () => InsightExtractor | null;
37
+ /** 获取 SessionArchiver(可能为 null) */
38
+ readonly getSessionArchiver: () => SessionArchiver | null;
39
+ /** 事件发射回调(Agent 注入 this.emit) */
40
+ readonly emit: EmitCallback;
41
+ }
42
+ /**
43
+ * 归档协调器
44
+ *
45
+ * 使用方式:
46
+ * const coordinator = new ArchiveCoordinator({
47
+ * getUserProfile: () => this.#userProfile,
48
+ * getInsightExtractor: () => this.insightExtractor,
49
+ * getSessionArchiver: () => this.sessionArchiver,
50
+ * emit: this.emit.bind(this),
51
+ * });
52
+ * await coordinator.archiveProfileFacts(input);
53
+ * await coordinator.archiveInsight(input, assistantContent);
54
+ * await coordinator.archiveSessionContent(date, session);
55
+ */
56
+ export declare class ArchiveCoordinator {
57
+ /** 获取 UserProfile 的回调 */
58
+ private readonly getUserProfile;
59
+ /** 获取 InsightExtractor 的回调 */
60
+ private readonly getInsightExtractor;
61
+ /** 获取 SessionArchiver 的回调 */
62
+ private readonly getSessionArchiver;
63
+ /** 事件发射回调 */
64
+ private readonly emit;
65
+ constructor(opts: ArchiveCoordinatorOptions);
66
+ /**
67
+ * 手动触发 profile facts 归档(manual 模式下使用)
68
+ *
69
+ * manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
70
+ * full / insights-only 模式下也可调用(会重复归档,但不推荐)。
71
+ *
72
+ * @param input 本轮用户输入
73
+ * @returns 写入/更新的 UserProfileEntry 列表
74
+ */
75
+ archiveProfileFacts(input: string): Promise<UserProfileEntry[]>;
76
+ /**
77
+ * 手动触发 insight 提取(manual 模式下使用)
78
+ *
79
+ * manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
80
+ * 内部仍走 classify 判断(避免无价值输入浪费 LLM 调用)。
81
+ *
82
+ * @param input 本轮用户输入
83
+ * @param assistantContent 本轮助手回复内容
84
+ * @returns 写入/更新的 Memory 列表
85
+ */
86
+ archiveInsight(input: string, assistantContent: string): Promise<Memory[]>;
87
+ /**
88
+ * 手动归档会话内容(content 类记忆)
89
+ *
90
+ * 适用于 `insights-only` / `manual` 模式下用户手动触发会话内容归档。
91
+ * `full` 模式下由宿主在会话切换前自动调用,无需用户干预。
92
+ *
93
+ * @param date 会话日期 YYYY-MM-DD
94
+ * @param session 会话标识(不含日期前缀)
95
+ * @returns 归档结果(memories 可能为空,表示无归档价值或 LLM 失败)
96
+ */
97
+ archiveSessionContent(date: string, session: string): Promise<SessionArchiveResult>;
98
+ }
99
+ export {};
100
+ //# sourceMappingURL=archiveCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveCoordinator.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/archiveCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,mCAAmC;AACnC,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAChD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,KACtB,IAAI,CAAC;AAEV,8BAA8B;AAC9B,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAClD,oCAAoC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC5D,mCAAmC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAC1D,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;IAC7B,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgC;IACpE,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+B;IAClE,aAAa;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;gBAExB,IAAI,EAAE,yBAAyB;IAO3C;;;;;;;;OAQG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAerE;;;;;;;;;OASG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAehF;;;;;;;;;OASG;IACG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAY1F"}