@zooique/memora 0.3.0 → 1.0.1

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 (104) hide show
  1. package/README.md +5 -5
  2. package/dist/agent/agent.d.ts +13 -3
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +15 -0
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/assembler.d.ts +3 -0
  7. package/dist/agent/assembler.d.ts.map +1 -1
  8. package/dist/agent/assembler.js +11 -2
  9. package/dist/agent/assembler.js.map +1 -1
  10. package/dist/agent/guardrail.d.ts +47 -0
  11. package/dist/agent/guardrail.d.ts.map +1 -0
  12. package/dist/agent/guardrail.js +51 -0
  13. package/dist/agent/guardrail.js.map +1 -0
  14. package/dist/agent/loop.d.ts +0 -17
  15. package/dist/agent/loop.d.ts.map +1 -1
  16. package/dist/agent/loop.js +16 -56
  17. package/dist/agent/loop.js.map +1 -1
  18. package/dist/agent/managers/insightExtractor.d.ts +10 -73
  19. package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
  20. package/dist/agent/managers/insightExtractor.js +27 -154
  21. package/dist/agent/managers/insightExtractor.js.map +1 -1
  22. package/dist/agent/managers/memoryInspector.d.ts +14 -56
  23. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  24. package/dist/agent/managers/memoryInspector.js +7 -75
  25. package/dist/agent/managers/memoryInspector.js.map +1 -1
  26. package/dist/agent/managers/memoryMutator.d.ts +92 -0
  27. package/dist/agent/managers/memoryMutator.d.ts.map +1 -0
  28. package/dist/agent/managers/memoryMutator.js +94 -0
  29. package/dist/agent/managers/memoryMutator.js.map +1 -0
  30. package/dist/agent/managers/relationBuilder.d.ts +131 -0
  31. package/dist/agent/managers/relationBuilder.d.ts.map +1 -0
  32. package/dist/agent/managers/relationBuilder.js +191 -0
  33. package/dist/agent/managers/relationBuilder.js.map +1 -0
  34. package/dist/agent/types.d.ts +8 -0
  35. package/dist/agent/types.d.ts.map +1 -1
  36. package/dist/config/loader.d.ts +48 -36
  37. package/dist/config/loader.d.ts.map +1 -1
  38. package/dist/config/loader.js +29 -31
  39. package/dist/config/loader.js.map +1 -1
  40. package/dist/eval/evalTypes.d.ts +15 -6
  41. package/dist/eval/evalTypes.d.ts.map +1 -1
  42. package/dist/eval/evalTypes.js +3 -2
  43. package/dist/eval/evalTypes.js.map +1 -1
  44. package/dist/index.d.ts +14 -6
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +12 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/llm/embedding.d.ts +18 -2
  49. package/dist/llm/embedding.d.ts.map +1 -1
  50. package/dist/llm/embedding.js +78 -46
  51. package/dist/llm/embedding.js.map +1 -1
  52. package/dist/llm/factory.js +1 -1
  53. package/dist/llm/factory.js.map +1 -1
  54. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  55. package/dist/llm/openaiCompatible.js +11 -2
  56. package/dist/llm/openaiCompatible.js.map +1 -1
  57. package/dist/llm/provider.d.ts +0 -14
  58. package/dist/llm/provider.d.ts.map +1 -1
  59. package/dist/llm/provider.js.map +1 -1
  60. package/dist/logging/logger.d.ts +1 -0
  61. package/dist/logging/logger.d.ts.map +1 -1
  62. package/dist/logging/logger.js +43 -37
  63. package/dist/logging/logger.js.map +1 -1
  64. package/dist/memory/inMemoryStorage.js +1 -1
  65. package/dist/memory/inMemoryStorage.js.map +1 -1
  66. package/dist/memory/lockManager.d.ts +48 -0
  67. package/dist/memory/lockManager.d.ts.map +1 -0
  68. package/dist/memory/lockManager.js +167 -0
  69. package/dist/memory/lockManager.js.map +1 -0
  70. package/dist/memory/projectManager.d.ts +23 -53
  71. package/dist/memory/projectManager.d.ts.map +1 -1
  72. package/dist/memory/projectManager.js +47 -228
  73. package/dist/memory/projectManager.js.map +1 -1
  74. package/dist/memory/projectRegistry.d.ts +62 -0
  75. package/dist/memory/projectRegistry.d.ts.map +1 -0
  76. package/dist/memory/projectRegistry.js +166 -0
  77. package/dist/memory/projectRegistry.js.map +1 -0
  78. package/dist/memory/recall.d.ts +3 -3
  79. package/dist/memory/recall.d.ts.map +1 -1
  80. package/dist/memory/recall.js +2 -2
  81. package/dist/memory/recall.js.map +1 -1
  82. package/dist/memory/sourceValidation.d.ts +43 -0
  83. package/dist/memory/sourceValidation.d.ts.map +1 -0
  84. package/dist/memory/sourceValidation.js +139 -0
  85. package/dist/memory/sourceValidation.js.map +1 -0
  86. package/dist/memory/store.d.ts.map +1 -1
  87. package/dist/memory/store.js +2 -1
  88. package/dist/memory/store.js.map +1 -1
  89. package/dist/memory/types.d.ts +0 -47
  90. package/dist/memory/types.d.ts.map +1 -1
  91. package/dist/memory/types.js +0 -138
  92. package/dist/memory/types.js.map +1 -1
  93. package/dist/memory/vectorStore.d.ts +68 -7
  94. package/dist/memory/vectorStore.d.ts.map +1 -1
  95. package/dist/memory/vectorStore.js +12 -8
  96. package/dist/memory/vectorStore.js.map +1 -1
  97. package/dist/security/pathGuard.d.ts.map +1 -1
  98. package/dist/security/pathGuard.js +3 -1
  99. package/dist/security/pathGuard.js.map +1 -1
  100. package/dist/utils/segmenter.d.ts +6 -0
  101. package/dist/utils/segmenter.d.ts.map +1 -1
  102. package/dist/utils/segmenter.js +13 -0
  103. package/dist/utils/segmenter.js.map +1 -1
  104. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { LOOP_CONSTANTS } from '../agent/constants.js';
2
2
  import { ContextManager } from '../agent/contextManager.js';
3
+ import { runGuardrails } from '../agent/guardrail.js';
3
4
  import { NOOP_TRACER, TRACE_SPANS } from '../agent/tracer.js';
4
5
  import { MemoraError, isRetryableErrorCode, toError } from '../utils/errors.js';
5
6
  import { safeSetTimeout } from '../utils/safeTimer.js';
@@ -126,11 +127,16 @@ export class AgentLoop {
126
127
  }
127
128
  // 输入护栏检查:在用户输入注入上下文之前,检查是否命中护栏规则
128
129
  // 护栏自身异常时降级为"放行 + 记日志",不阻断用户对话
129
- const inputGuardResult = this.runInputGuardrails(userInput);
130
+ const inputGuardResult = runGuardrails(this.guardrailRules, userInput, this.ui);
130
131
  if (inputGuardResult.blocked) {
131
132
  // P3: try/finally 确保 done 一定送达,即使 text yield 异常
133
+ // guardrailBlocked: true 让 eval 框架和宿主 UI 通过结构化字段判断护栏触发
132
134
  try {
133
- yield { type: 'text', content: inputGuardResult.message ?? 'Input blocked by guardrail' };
135
+ yield {
136
+ type: 'text',
137
+ content: inputGuardResult.message ?? 'Input blocked by guardrail',
138
+ guardrailBlocked: true,
139
+ };
134
140
  }
135
141
  finally {
136
142
  yield { type: 'done' };
@@ -226,11 +232,16 @@ export class AgentLoop {
226
232
  yield { type: 'text', content: fallbackText };
227
233
  }
228
234
  // 输出护栏检查:在响应返回给用户之前,检查是否命中护栏规则
229
- const outputGuardResult = this.runOutputGuardrails(llmResult.fullContent);
235
+ const outputGuardResult = runGuardrails(this.guardrailRules, llmResult.fullContent, this.ui);
230
236
  if (outputGuardResult.blocked) {
231
237
  // P3: try/finally 确保 done 一定送达,即使 text yield 异常
238
+ // guardrailBlocked: true 让 eval 框架和宿主 UI 通过结构化字段判断护栏触发
232
239
  try {
233
- yield { type: 'text', content: outputGuardResult.message ?? 'Output blocked by guardrail' };
240
+ yield {
241
+ type: 'text',
242
+ content: outputGuardResult.message ?? 'Output blocked by guardrail',
243
+ guardrailBlocked: true,
244
+ };
234
245
  }
235
246
  finally {
236
247
  yield { type: 'done' };
@@ -765,58 +776,7 @@ export class AgentLoop {
765
776
  logger.debug({ removedCount, remainingMessages: this.messages.length }, '临时 system 消息已清理');
766
777
  }
767
778
  }
768
- // ─── 护栏与 Reflection 辅助方法 ──────────────────────────
769
- /**
770
- * 输入护栏检查
771
- *
772
- * 在用户输入注入上下文之前运行,遍历所有 guardrail 规则,
773
- * 用正则匹配用户输入。命中 block action 时返回 blocked=true。
774
- *
775
- * 护栏自身异常(正则编译失败等)降级为"放行 + 记日志",
776
- * 永远不阻断用户对话(降级优先原则)。
777
- */
778
- runInputGuardrails(input) {
779
- if (this.guardrailRules.length === 0)
780
- return { blocked: false };
781
- for (const rule of this.guardrailRules) {
782
- try {
783
- // 从记忆内容中提取 pattern(格式:pattern: /regex/ action: block|warn)
784
- const patternMatch = rule.content.match(/pattern:\s*(.+)/);
785
- const actionMatch = rule.content.match(/action:\s*(block|warn)/);
786
- if (!patternMatch || !actionMatch)
787
- continue;
788
- const pattern = patternMatch[1]?.trim();
789
- const action = actionMatch[1]?.trim();
790
- if (!pattern || !action)
791
- continue;
792
- // 去掉正则定界符 //
793
- const regexStr = pattern.startsWith('/') && pattern.endsWith('/') ? pattern.slice(1, -1) : pattern;
794
- const regex = new RegExp(regexStr, 'i');
795
- if (regex.test(input)) {
796
- if (action === 'block') {
797
- logger.warn({ rule: rule.name, pattern: regexStr }, '输入护栏阻断');
798
- return { blocked: true, message: this.ui.inputBlockedByGuard(rule.name) };
799
- }
800
- logger.warn({ rule: rule.name, pattern: regexStr }, '输入护栏警告');
801
- return { blocked: false, warning: this.ui.inputBlockedByGuard(rule.name) };
802
- }
803
- }
804
- catch (err) {
805
- // 护栏自身异常降级:放行 + 记日志
806
- logger.error({ rule: rule.name, err }, '护栏规则执行异常,已降级放行');
807
- }
808
- }
809
- return { blocked: false };
810
- }
811
- /**
812
- * 输出护栏检查
813
- *
814
- * 在 LLM 响应返回给用户之前运行,防止敏感信息泄露。
815
- * 输入/输出共享同一护栏规则集。
816
- */
817
- runOutputGuardrails(output) {
818
- return this.runInputGuardrails(output);
819
- }
779
+ // ─── Reflection 辅助方法 ────────────────────────────────
820
780
  /**
821
781
  * 判断工具错误结果是否可重试(Reflection 用)
822
782
  *
@@ -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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"}
@@ -1,24 +1,8 @@
1
1
  import type { LlmProvider } from '../../llm/provider.js';
2
2
  import type { Memory } from '../../memory/types.js';
3
3
  import type { IMemoryStorage } from '../../memory/storageInterface.js';
4
- import type { IMemoryRelationStore } from '../../memory/relationStore.js';
5
4
  import type { WriteExtensions } from '../../agent/toolExecutor.js';
6
- /**
7
- * 冲突信息(contradicts 关系检测到时传递给宿主)
8
- *
9
- * 由 InsightExtractor 在 buildRelations 中检测到 contradicts 关系时构造,
10
- * 通过 onConflict 回调传递给 Agent,Agent emit('conflictDetected') 通知宿主。
11
- */
12
- export interface ConflictInfo {
13
- /** 新写入的 insight 记忆 ID */
14
- newMemoryId: string;
15
- /** 新洞察内容(用于 UI 展示) */
16
- newInsight: string;
17
- /** 被矛盾的已有记忆 ID */
18
- targetId: string;
19
- /** 被矛盾的已有记忆内容(用于 UI 展示) */
20
- targetContent: string;
21
- }
5
+ import type { RelationBuilder, ConflictInfo } from '../../agent/managers/relationBuilder.js';
22
6
  /**
23
7
  * 记忆关键词(宿主提供,用于输入分类 Layer 2)
24
8
  *
@@ -34,20 +18,22 @@ export interface MemoryKeywords {
34
18
  export declare class InsightExtractor {
35
19
  private readonly provider;
36
20
  private readonly index;
37
- private readonly relationStore;
38
21
  /** 宿主提供的记忆关键词(用于输入分类 Layer 2) */
39
22
  private hostKeywords;
40
23
  /** 写入扩展回调(宿主注入 diff 对比确认逻辑) */
41
24
  writeExtensions: WriteExtensions | null;
42
- /** 冲突检测回调(由 Agent 通过 bindOnConflict 注入,检测到 contradicts 时触发) */
43
- private onConflict;
25
+ /**
26
+ * 关系构建器(P1-3 拆分,ADR-014 关系构建委托给 RelationBuilder)
27
+ * 未注入时跳过所有关系构建(保持向后兼容)
28
+ */
29
+ private readonly relationBuilder;
44
30
  /**
45
31
  * @param provider - LLM Provider(用于 insight 提取)
46
32
  * @param index - 记忆存储(用于去重搜索 + 写入)
47
- * @param relationStore - 记忆关系存储(可选,用于冲突检测和关系构建)
33
+ * @param relationBuilder - 关系构建器(可选,P1-3 拆分后替代直接 relationStore 注入)
48
34
  * 未注入时跳过关系构建(保持向后兼容,ADR-014 侧车模型)
49
35
  */
50
- constructor(provider: LlmProvider, index: IMemoryStorage, relationStore?: IMemoryRelationStore | null);
36
+ constructor(provider: LlmProvider, index: IMemoryStorage, relationBuilder?: RelationBuilder | null);
51
37
  /** 获取最近 N 轮对话历史的回调(由 AgentLoop 通过 bindGetRecentHistory 注入) */
52
38
  private _getRecentHistory;
53
39
  /**
@@ -58,11 +44,11 @@ export declare class InsightExtractor {
58
44
  content: string;
59
45
  }>): void;
60
46
  /**
61
- * 绑定冲突检测回调
47
+ * 绑定冲突检测回调(P1-3 拆分后委托给 RelationBuilder)
62
48
  *
63
49
  * 由 Agent.init() 在创建 InsightExtractor 后调用(与 bindGetRecentHistory 同模式),
64
50
  * 解决 Agent 实例晚于 InsightExtractor 创建的时序循环依赖。
65
- * buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
51
+ * RelationBuilder.buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
66
52
  *
67
53
  * @param fn 冲突检测回调(传入 null 可解除绑定)
68
54
  */
@@ -109,55 +95,6 @@ export declare class InsightExtractor {
109
95
  * low → 0.2(快速衰减)
110
96
  */
111
97
  private scoreByQuality;
112
- /**
113
- * 根据关系类型推断 weight(ADR-014 §4)
114
- *
115
- * LLM 只输出 type,weight 由代码层推断:
116
- * - contradicts → 1.0(确定关系,矛盾是强关系)
117
- * - supports/follows/refines/caused → 0.7(强相关)
118
- * - related → 0.3(弱相关)
119
- * - 未知类型 → 0.5(未判断兜底)
120
- *
121
- * 设计理由:降低 LLM 认知负担,离散值比连续浮点稳定
122
- */
123
- private weightByType;
124
- /**
125
- * 召回关系判断候选记忆(top-5)
126
- *
127
- * 用用户输入关键词搜索已有记忆,作为 LLM 关系判断的参考。
128
- * 用户输入与提取出的 insight 通常相关,候选记忆也相关。
129
- *
130
- * @param userInput 用户输入(用于关键词搜索)
131
- * @returns 候选记忆列表(id + content 截断)
132
- */
133
- private recallRelationCandidates;
134
- /**
135
- * 构建候选记忆列表的 prompt 片段
136
- *
137
- * 格式:
138
- * 已有记忆(供关系判断参考):
139
- * [1] id: xxx, content: xxx
140
- * [2] id: xxx, content: xxx
141
- *
142
- * @param candidates 候选记忆列表
143
- * @returns prompt 片段(空候选时返回空字符串)
144
- */
145
- private buildCandidatesPrompt;
146
- /**
147
- * 构建关系(写入 IMemoryRelationStore)
148
- *
149
- * 解析 LLM 输出的 relations 字段,验证 targetId 在候选列表中,写入关系存储。
150
- * 降级策略:relationStore 未注入/relations 为空/targetId 无效 → 跳过,不阻塞主流程。
151
- *
152
- * 检测到 contradicts 关系时,通过 onConflict 回调通知 Agent,
153
- * Agent emit('conflictDetected') 触发宿主消费链路(ProactiveBanner 通知用户)。
154
- *
155
- * @param insightId 新写入的 insight ID
156
- * @param insightContent 新写入的 insight 内容(用于冲突通知 UI 展示)
157
- * @param relations LLM 输出的关系列表
158
- * @param candidates 候选记忆列表(用于验证 targetId + 查找 targetContent)
159
- */
160
- private buildRelations;
161
98
  /**
162
99
  * Layer 1: 通用规则过滤
163
100
  *
@@ -1 +1 @@
1
- {"version":3,"file":"insightExtractor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/insightExtractor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAItE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAwC/D;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,qBAAa,gBAAgB;IAiBzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlBhC,iCAAiC;IACjC,OAAO,CAAC,YAAY,CAA+B;IAEnD,+BAA+B;IACxB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEtD,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAA+C;IAEjE;;;;;OAKG;gBAEgB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,cAAc,EACrB,aAAa,GAAE,oBAAoB,GAAG,IAAW;IAMpE,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAA6E;IAEtG;;OAEG;IACH,oBAAoB,CAClB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7E,IAAI;IAIP;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAQ3C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAOrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3C;;;;;;;OAOG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuK7E;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc;IAiDtB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}
1
+ {"version":3,"file":"insightExtractor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/insightExtractor.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAiCzF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,qBAAa,gBAAgB;IAoBzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IApBxB,iCAAiC;IACjC,OAAO,CAAC,YAAY,CAA+B;IAEnD,+BAA+B;IACxB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEtD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD;;;;;OAKG;gBAEgB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,cAAc,EACtC,eAAe,GAAE,eAAe,GAAG,IAAW;IAOhD,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAA6E;IAEtG;;OAEG;IACH,oBAAoB,CAClB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7E,IAAI;IAIP;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAQ3C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAOrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAe3C;;;;;;;OAOG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuJ7E;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAU/B"}
@@ -6,12 +6,15 @@
6
6
  * - 异步 insight 提取(LLM 判断 + 去重 + 写入 SQLite)
7
7
  * - 宿主记忆关键词管理
8
8
  *
9
+ * 关系构建逻辑(ADR-014)已拆分至 RelationBuilder(P1-3),本类通过 relationBuilder 委托调用。
10
+ *
9
11
  * 设计原则:
10
12
  * - 独立于 Agent 生命周期,仅依赖 Provider/Storage/Loop
11
13
  * - 提取失败不影响主对话流程(fire-and-forget)
12
14
  */
13
15
  import { randomUUID } from 'node:crypto';
14
- import { SOURCE_LABELS, escapeLike, RELATION_WEIGHTS } from '../../memory/types.js';
16
+ import { SOURCE_LABELS } from '../../memory/types.js';
17
+ import { escapeLike } from '../../memory/sourceValidation.js';
15
18
  import { logger } from '../../logging/logger.js';
16
19
  import { parseLlmJson } from '../../utils/json.js';
17
20
  import { segmentText } from '../../utils/segmenter.js';
@@ -35,31 +38,29 @@ const INSIGHT_USER_INPUT_LIMIT = 500;
35
38
  const INSIGHT_ASSISTANT_CONTENT_LIMIT = 2000;
36
39
  /** insight 提取:单条历史消息截断上限(字符) */
37
40
  const INSIGHT_HISTORY_MSG_LIMIT = 300;
38
- /** 关系判断:召回候选记忆数量上限(top-5) */
39
- const RELATION_CANDIDATE_LIMIT = 5;
40
- /** 关系判断:候选记忆 content 注入 prompt 的截断上限(字符) */
41
- const RELATION_CANDIDATE_CONTENT_LIMIT = 100;
42
41
  // ─── 类 ──────────────────────────────────────────────────
43
42
  export class InsightExtractor {
44
43
  provider;
45
44
  index;
46
- relationStore;
47
45
  /** 宿主提供的记忆关键词(用于输入分类 Layer 2) */
48
46
  hostKeywords = null;
49
47
  /** 写入扩展回调(宿主注入 diff 对比确认逻辑) */
50
48
  writeExtensions = null;
51
- /** 冲突检测回调(由 Agent 通过 bindOnConflict 注入,检测到 contradicts 时触发) */
52
- onConflict = null;
49
+ /**
50
+ * 关系构建器(P1-3 拆分,ADR-014 关系构建委托给 RelationBuilder)
51
+ * 未注入时跳过所有关系构建(保持向后兼容)
52
+ */
53
+ relationBuilder;
53
54
  /**
54
55
  * @param provider - LLM Provider(用于 insight 提取)
55
56
  * @param index - 记忆存储(用于去重搜索 + 写入)
56
- * @param relationStore - 记忆关系存储(可选,用于冲突检测和关系构建)
57
+ * @param relationBuilder - 关系构建器(可选,P1-3 拆分后替代直接 relationStore 注入)
57
58
  * 未注入时跳过关系构建(保持向后兼容,ADR-014 侧车模型)
58
59
  */
59
- constructor(provider, index, relationStore = null) {
60
+ constructor(provider, index, relationBuilder = null) {
60
61
  this.provider = provider;
61
62
  this.index = index;
62
- this.relationStore = relationStore;
63
+ this.relationBuilder = relationBuilder;
63
64
  // bindGetRecentHistory 必须在 extract() 调用前执行
64
65
  this._getRecentHistory = () => [];
65
66
  }
@@ -72,16 +73,16 @@ export class InsightExtractor {
72
73
  this._getRecentHistory = fn;
73
74
  }
74
75
  /**
75
- * 绑定冲突检测回调
76
+ * 绑定冲突检测回调(P1-3 拆分后委托给 RelationBuilder)
76
77
  *
77
78
  * 由 Agent.init() 在创建 InsightExtractor 后调用(与 bindGetRecentHistory 同模式),
78
79
  * 解决 Agent 实例晚于 InsightExtractor 创建的时序循环依赖。
79
- * buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
80
+ * RelationBuilder.buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
80
81
  *
81
82
  * @param fn 冲突检测回调(传入 null 可解除绑定)
82
83
  */
83
84
  bindOnConflict(fn) {
84
- this.onConflict = fn;
85
+ this.relationBuilder?.bindOnConflict(fn);
85
86
  }
86
87
  // ─── 配置 ─────────────────────────────────────────────
87
88
  /**
@@ -160,29 +161,11 @@ export class InsightExtractor {
160
161
  return `${m.role === 'user' ? '用户' : '助手'}:${safeContent}`;
161
162
  }).join('\n')
162
163
  : '';
163
- // ADR-014 关系判断:召回候选记忆(仅当 relationStore 已注入时)
164
- // 用用户输入关键词搜索 top-5 已有记忆,作为 LLM 关系判断的参考
165
- const relationCandidates = this.relationStore
166
- ? this.recallRelationCandidates(safeUserInput)
167
- : [];
168
- const candidatesSection = this.buildCandidatesPrompt(relationCandidates);
169
- const relationsPrompt = this.relationStore
170
- ? `\n\n如果提取了 insight,还需判断它与已有记忆的关系,输出 relations 字段:
171
- relations: [{"targetId": "已有记忆ID", "type": "contradicts|supports|follows|refines|caused|related"}]
172
-
173
- 关系类型说明:
174
- - contradicts:矛盾(新信息与已有记忆冲突)
175
- - supports:支持(新信息佐证已有记忆)
176
- - follows:时间先后(新信息在已有记忆之后发生)
177
- - refines:细化/演化(新信息细化已有记忆)
178
- - caused:因果(新信息由已有记忆导致)
179
- - related:泛相关(有关但非上述类型)
180
-
181
- 注意:
182
- - targetId 必须是上方"已有记忆"列表中的 ID
183
- - 无关系时输出空数组 []
184
- - 不增加额外 LLM 调用,在本次提取中一并完成`
185
- : '';
164
+ // ADR-014 关系判断:召回候选记忆(P1-3 拆分后委托给 RelationBuilder)
165
+ // relationBuilder 未注入时返回空数组 + 空 prompt(静默降级)
166
+ const relationCandidates = this.relationBuilder?.recallRelationCandidates(safeUserInput) ?? [];
167
+ const candidatesSection = this.relationBuilder?.buildCandidatesPrompt(relationCandidates) ?? '';
168
+ const relationsPrompt = this.relationBuilder?.buildRelationsPrompt() ?? '';
186
169
  const extractionPrompt = `你是一个记忆提取助手。判断以下对话是否包含值得长期记忆的信息。
187
170
 
188
171
  如果有,输出 JSON:
@@ -242,8 +225,9 @@ ${contextSection}${candidatesSection}${relationsPrompt}
242
225
  this.index.upsert(existingMemory);
243
226
  logger.debug({ id: existingMemory.id }, 'extractInsight: 更新已有记忆');
244
227
  // ADR-014:即使命中去重,也尝试构建关系(新 insight 与已有记忆可能存在关系)
245
- if (this.relationStore && Array.isArray(parsed?.relations)) {
246
- this.buildRelations(existingMemory.id, insight, parsed.relations, relationCandidates);
228
+ // P1-3 拆分后委托给 RelationBuilder
229
+ if (this.relationBuilder && Array.isArray(parsed?.relations)) {
230
+ this.relationBuilder.buildRelations(existingMemory.id, insight, parsed.relations, relationCandidates);
247
231
  }
248
232
  written.push(existingMemory);
249
233
  return written;
@@ -264,10 +248,11 @@ ${contextSection}${candidatesSection}${relationsPrompt}
264
248
  logger.info({ id: memory.id, insight, quality, score }, 'extractInsight: 写入新记忆');
265
249
  written.push(memory);
266
250
  // ADR-014 关系构建:写入 insight 后,构建与已有记忆的关系
267
- // 降级策略:relationStore 未注入/relations 为空/构建失败 → 跳过,不阻塞主流程
268
- if (this.relationStore && Array.isArray(parsed?.relations)) {
251
+ // 降级策略:relationBuilder 未注入/relations 为空/构建失败 → 跳过,不阻塞主流程
252
+ // P1-3 拆分后委托给 RelationBuilder
253
+ if (this.relationBuilder && Array.isArray(parsed?.relations)) {
269
254
  try {
270
- this.buildRelations(memory.id, memory.content, parsed.relations, relationCandidates);
255
+ this.relationBuilder.buildRelations(memory.id, memory.content, parsed.relations, relationCandidates);
271
256
  }
272
257
  catch (relErr) {
273
258
  logger.warn({ err: relErr, insightId: memory.id }, 'extractInsight: 关系构建失败');
@@ -308,118 +293,6 @@ ${contextSection}${candidatesSection}${relationsPrompt}
308
293
  default: return DEFAULT_INSIGHT_SCORE;
309
294
  }
310
295
  }
311
- // ─── 私有:关系构建(ADR-014 侧车模型) ───────────────
312
- /**
313
- * 根据关系类型推断 weight(ADR-014 §4)
314
- *
315
- * LLM 只输出 type,weight 由代码层推断:
316
- * - contradicts → 1.0(确定关系,矛盾是强关系)
317
- * - supports/follows/refines/caused → 0.7(强相关)
318
- * - related → 0.3(弱相关)
319
- * - 未知类型 → 0.5(未判断兜底)
320
- *
321
- * 设计理由:降低 LLM 认知负担,离散值比连续浮点稳定
322
- */
323
- weightByType(type) {
324
- switch (type) {
325
- case 'contradicts': return RELATION_WEIGHTS.CERTAIN;
326
- case 'supports':
327
- case 'follows':
328
- case 'refines':
329
- case 'caused':
330
- return RELATION_WEIGHTS.STRONG;
331
- case 'related': return RELATION_WEIGHTS.WEAK;
332
- default: return RELATION_WEIGHTS.UNDEFINED;
333
- }
334
- }
335
- /**
336
- * 召回关系判断候选记忆(top-5)
337
- *
338
- * 用用户输入关键词搜索已有记忆,作为 LLM 关系判断的参考。
339
- * 用户输入与提取出的 insight 通常相关,候选记忆也相关。
340
- *
341
- * @param userInput 用户输入(用于关键词搜索)
342
- * @returns 候选记忆列表(id + content 截断)
343
- */
344
- recallRelationCandidates(userInput) {
345
- const snippet = escapeLike(userInput.slice(0, 50));
346
- return this.index.search(snippet, RELATION_CANDIDATE_LIMIT);
347
- }
348
- /**
349
- * 构建候选记忆列表的 prompt 片段
350
- *
351
- * 格式:
352
- * 已有记忆(供关系判断参考):
353
- * [1] id: xxx, content: xxx
354
- * [2] id: xxx, content: xxx
355
- *
356
- * @param candidates 候选记忆列表
357
- * @returns prompt 片段(空候选时返回空字符串)
358
- */
359
- buildCandidatesPrompt(candidates) {
360
- if (candidates.length === 0)
361
- return '';
362
- const lines = candidates.map((m, i) => {
363
- const safeContent = m.content.length > RELATION_CANDIDATE_CONTENT_LIMIT
364
- ? m.content.slice(0, RELATION_CANDIDATE_CONTENT_LIMIT) + '…'
365
- : m.content;
366
- return `[${i + 1}] id: ${m.id}, content: ${safeContent}`;
367
- });
368
- return '\n\n已有记忆(供关系判断参考):\n' + lines.join('\n');
369
- }
370
- /**
371
- * 构建关系(写入 IMemoryRelationStore)
372
- *
373
- * 解析 LLM 输出的 relations 字段,验证 targetId 在候选列表中,写入关系存储。
374
- * 降级策略:relationStore 未注入/relations 为空/targetId 无效 → 跳过,不阻塞主流程。
375
- *
376
- * 检测到 contradicts 关系时,通过 onConflict 回调通知 Agent,
377
- * Agent emit('conflictDetected') 触发宿主消费链路(ProactiveBanner 通知用户)。
378
- *
379
- * @param insightId 新写入的 insight ID
380
- * @param insightContent 新写入的 insight 内容(用于冲突通知 UI 展示)
381
- * @param relations LLM 输出的关系列表
382
- * @param candidates 候选记忆列表(用于验证 targetId + 查找 targetContent)
383
- */
384
- buildRelations(insightId, insightContent, relations, candidates) {
385
- if (!this.relationStore || relations.length === 0)
386
- return;
387
- const candidateIds = new Set(candidates.map((m) => m.id));
388
- const candidateMap = new Map(candidates.map((m) => [m.id, m]));
389
- const now = nowIso();
390
- let built = 0;
391
- for (const rel of relations) {
392
- // 运行时类型校验(不可信的 LLM 输出)
393
- if (typeof rel.targetId !== 'string' || typeof rel.type !== 'string')
394
- continue;
395
- // targetId 必须在候选列表中(LLM 可能输出不存在的 ID)
396
- if (!candidateIds.has(rel.targetId))
397
- continue;
398
- this.relationStore.addRelation({
399
- sourceId: insightId,
400
- targetId: rel.targetId,
401
- type: rel.type,
402
- weight: this.weightByType(rel.type),
403
- createdAt: now,
404
- });
405
- built++;
406
- // contradicts 关系写入时,通过 onConflict 回调通知宿主
407
- if (rel.type === 'contradicts' && this.onConflict) {
408
- const targetMemory = candidateMap.get(rel.targetId);
409
- if (targetMemory) {
410
- this.onConflict({
411
- newMemoryId: insightId,
412
- newInsight: insightContent,
413
- targetId: rel.targetId,
414
- targetContent: targetMemory.content,
415
- });
416
- }
417
- }
418
- }
419
- if (built > 0) {
420
- logger.info({ insightId, built }, 'extractInsight: 关系构建完成');
421
- }
422
- }
423
296
  // ─── 私有:分类规则 ───────────────────────────────────
424
297
  /**
425
298
  * Layer 1: 通用规则过滤