@zooique/memora 1.0.1 → 2.0.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.
- package/README.md +4 -4
- package/dist/agent/agent.d.ts +66 -99
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +263 -208
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +3 -3
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +10 -9
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +1 -1
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +5 -4
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/loop.d.ts +79 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +315 -189
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +116 -0
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -0
- package/dist/agent/managers/chatLockManager.js +191 -0
- package/dist/agent/managers/chatLockManager.js.map +1 -0
- package/dist/agent/managers/insightExtractor.d.ts +31 -3
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
- package/dist/agent/managers/insightExtractor.js +122 -51
- package/dist/agent/managers/insightExtractor.js.map +1 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +102 -2
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +262 -4
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +85 -0
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.js +215 -0
- package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +222 -14
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +436 -10
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/relationBuilder.d.ts +4 -4
- package/dist/agent/managers/relationBuilder.d.ts.map +1 -1
- package/dist/agent/managers/relationBuilder.js +3 -2
- package/dist/agent/managers/relationBuilder.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +6 -0
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +68 -8
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +9 -17
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/textPolishManager.d.ts +62 -0
- package/dist/agent/managers/textPolishManager.d.ts.map +1 -0
- package/dist/agent/managers/textPolishManager.js +99 -0
- package/dist/agent/managers/textPolishManager.js.map +1 -0
- package/dist/agent/personaMatcher.d.ts +29 -0
- package/dist/agent/personaMatcher.d.ts.map +1 -0
- package/dist/agent/personaMatcher.js +60 -0
- package/dist/agent/personaMatcher.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +2 -2
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +2 -1
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/tracer.d.ts +31 -0
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/tracer.js +31 -0
- package/dist/agent/tracer.js.map +1 -1
- package/dist/agent/types.d.ts +124 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +38 -0
- package/dist/agent/types.js.map +1 -1
- package/dist/config/loader.d.ts +4 -4
- package/dist/config/loader.js +23 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/eval/evalRunner.d.ts +94 -0
- package/dist/eval/evalRunner.d.ts.map +1 -0
- package/dist/eval/evalRunner.js +141 -0
- package/dist/eval/evalRunner.js.map +1 -0
- package/dist/eval/evalTypes.d.ts +21 -0
- package/dist/eval/evalTypes.d.ts.map +1 -1
- package/dist/eval/evalTypes.js +15 -0
- package/dist/eval/evalTypes.js.map +1 -1
- package/dist/eval/scenarios.d.ts +33 -0
- package/dist/eval/scenarios.d.ts.map +1 -0
- package/dist/eval/scenarios.js +109 -0
- package/dist/eval/scenarios.js.map +1 -0
- package/dist/index.d.ts +41 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -5
- package/dist/index.js.map +1 -1
- package/dist/llm/abortSignal.d.ts +27 -0
- package/dist/llm/abortSignal.d.ts.map +1 -0
- package/dist/llm/abortSignal.js +44 -0
- package/dist/llm/abortSignal.js.map +1 -0
- package/dist/llm/embedding.d.ts +1 -12
- package/dist/llm/embedding.d.ts.map +1 -1
- package/dist/llm/embedding.js +5 -17
- package/dist/llm/embedding.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +15 -25
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +7 -6
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/lockManager.d.ts.map +1 -1
- package/dist/memory/lockManager.js +4 -12
- package/dist/memory/lockManager.js.map +1 -1
- package/dist/memory/projectManager.d.ts +6 -6
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +12 -12
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts.map +1 -1
- package/dist/memory/projectRegistry.js +4 -12
- package/dist/memory/projectRegistry.js.map +1 -1
- package/dist/memory/recall.js +2 -2
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/sourceValidation.d.ts +6 -0
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +3 -1
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/vectorStore.d.ts +16 -2
- package/dist/memory/vectorStore.d.ts.map +1 -1
- package/dist/memory/vectorStore.js.map +1 -1
- package/dist/persona/personaManager.d.ts +30 -4
- package/dist/persona/personaManager.d.ts.map +1 -1
- package/dist/persona/personaManager.js +47 -14
- package/dist/persona/personaManager.js.map +1 -1
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +2 -1
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/utils/array.d.ts +24 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +24 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/errors.d.ts +10 -8
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +12 -9
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +7 -0
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/objects.d.ts +17 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +19 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/segmenter.d.ts +11 -0
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +13 -0
- package/dist/utils/segmenter.js.map +1 -1
- package/dist/utils/strings.d.ts +22 -1
- package/dist/utils/strings.d.ts.map +1 -1
- package/dist/utils/strings.js +29 -1
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/time.d.ts +18 -3
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +24 -8
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +8 -4
- package/dist/utils/toError.d.ts.map +1 -1
- package/dist/utils/toError.js +25 -5
- package/dist/utils/toError.js.map +1 -1
- package/package.json +11 -1
- package/dist/agent/managers/memoryMutator.d.ts +0 -92
- package/dist/agent/managers/memoryMutator.d.ts.map +0 -1
- package/dist/agent/managers/memoryMutator.js +0 -94
- package/dist/agent/managers/memoryMutator.js.map +0 -1
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { SOURCE_LABELS } from '../../memory/types.js';
|
|
2
|
+
import { byScoreDesc } from '../../utils/array.js';
|
|
2
3
|
import { configError } from '../../utils/errors.js';
|
|
4
|
+
import { nowIso } from '../../utils/time.js';
|
|
5
|
+
import { truncate } from '../../utils/strings.js';
|
|
3
6
|
import { logger } from '../../logging/logger.js';
|
|
4
7
|
// 双通道融合排序算法 + 常量从 hybridMerge 导入(不再绕道 recall.ts)
|
|
5
8
|
// 消除"agent 模块依赖 memory/recall.ts 内部常量"的分层违规
|
|
6
9
|
import { hybridMerge, RECALL_LIMIT_MULTIPLIER, } from '../../memory/hybridMerge.js';
|
|
10
|
+
// parseLlmJson 用于解析 LLM 去重判断结果(与 SessionArchiver 同模式)
|
|
11
|
+
import { parseLlmJson } from '../../utils/json.js';
|
|
12
|
+
// levenshtein 用于名称相似度计算(复用 sourceValidation 中的实现,避免重复造轮子)
|
|
13
|
+
import { levenshtein } from '../../memory/sourceValidation.js';
|
|
7
14
|
// ─── 常量 ────────────────────────────────────────────────
|
|
8
15
|
/** 工作记忆预览条数(最近 N 条) */
|
|
9
16
|
const WORKING_PREVIEW = 5;
|
|
@@ -11,6 +18,26 @@ const WORKING_PREVIEW = 5;
|
|
|
11
18
|
const CONTENT_PREVIEW_LEN = 80;
|
|
12
19
|
/** 搜索结果内容预览字符数(比快照层略长,便于用户判断相关性) */
|
|
13
20
|
const SEARCH_PREVIEW_LEN = 120;
|
|
21
|
+
// ─── L2 采纳反哺常量 ────────────────────────────────────
|
|
22
|
+
/** 采纳反哺的 score 提升量(与 recall.ts 的 BOOST_INCREMENT 一致,保持"越常用越重要"语义统一) */
|
|
23
|
+
const ADOPTION_BOOST_INCREMENT = 0.05;
|
|
24
|
+
/** score 上限(与 recall.ts 的 SCORE_CEILING 一致,防止 boost 超过 1.0) */
|
|
25
|
+
const SCORE_CEILING = 1.0;
|
|
26
|
+
// ─── L1 语义去重常量 ────────────────────────────────────
|
|
27
|
+
/** 参与去重扫描的 source 标签(与衰减范围一致,不扫描配置型记忆) */
|
|
28
|
+
const DEDUP_SOURCES = [SOURCE_LABELS.INSIGHT, SOURCE_LABELS.PROFILE, SOURCE_LABELS.WORK_PROJECTION];
|
|
29
|
+
/** 单次去重扫描的候选记忆条数上限(控制内存和 LLM 调用量) */
|
|
30
|
+
const DEDUP_CANDIDATE_LIMIT = 50;
|
|
31
|
+
/** 单次 LLM 判断的候选对数上限(每对约 200 tokens,10 对 ≈ 2000 tokens) */
|
|
32
|
+
const DEDUP_PAIR_LIMIT = 10;
|
|
33
|
+
/** 名称相似度阈值(归一化 Levenshtein 距离 ≤ 此值视为名称高度相似,进入 LLM 判断) */
|
|
34
|
+
const DEDUP_NAME_SIMILARITY_THRESHOLD = 0.3;
|
|
35
|
+
/** LLM 去重判断超时(ms),与 TextPolishManager 一致 */
|
|
36
|
+
const DEDUP_TIMEOUT_MS = 15_000;
|
|
37
|
+
/** 被判定为重复的记忆降级到此 score(接近 0 但保留可恢复性,不物理删除) */
|
|
38
|
+
const DEDUP_LOW_SCORE = 0.1;
|
|
39
|
+
/** 候选记忆内容预览长度(截断后送入 LLM,控制 token 消耗) */
|
|
40
|
+
const DEDUP_CONTENT_PREVIEW_LEN = 200;
|
|
14
41
|
// ─── 类 ──────────────────────────────────────────────────
|
|
15
42
|
export class MemoryInspector {
|
|
16
43
|
index;
|
|
@@ -18,24 +45,28 @@ export class MemoryInspector {
|
|
|
18
45
|
history;
|
|
19
46
|
/** 向量存储(可选,提供时 searchHybrid 启用语义搜索) */
|
|
20
47
|
vectorStore = null;
|
|
21
|
-
/** 关系存储(可选,ADR-014
|
|
48
|
+
/** 关系存储(可选,ADR-014 侧车,未注入时关系方法静默降级) */
|
|
22
49
|
relationStore;
|
|
23
50
|
/** 记忆顾问(sourceHealth + suggest 委托) */
|
|
24
51
|
advisor;
|
|
52
|
+
/** 后台 LLM Provider(可选,用于语义去重等异步治理任务,未注入时降级跳过) */
|
|
53
|
+
backgroundProvider;
|
|
25
54
|
/**
|
|
26
|
-
* @param index -
|
|
55
|
+
* @param index - 记忆存储(用于读写操作)
|
|
27
56
|
* @param loop - AgentLoop(用于获取工作记忆)
|
|
28
57
|
* @param history - MessageHistory(用于获取当前会话信息)
|
|
29
58
|
* @param advisor - 记忆顾问(组合根一致性,由 assembler.ts 显式注入,必填)
|
|
30
|
-
* @param relationStore - 关系存储侧车(可选,ADR-014
|
|
59
|
+
* @param relationStore - 关系存储侧车(可选,ADR-014,未注入时关系方法降级返回空/no-op)
|
|
60
|
+
* @param backgroundProvider - 后台 LLM Provider(可选,用于语义去重,未注入时降级跳过)
|
|
31
61
|
*/
|
|
32
|
-
constructor(index, loop, history, advisor, relationStore = null) {
|
|
62
|
+
constructor(index, loop, history, advisor, relationStore = null, backgroundProvider = null) {
|
|
33
63
|
this.index = index;
|
|
34
64
|
this.loop = loop;
|
|
35
65
|
this.history = history;
|
|
36
66
|
// 组合根一致性——advisor 由 assembler.ts 显式注入(必填,不再内部创建)
|
|
37
67
|
this.advisor = advisor;
|
|
38
68
|
this.relationStore = relationStore;
|
|
69
|
+
this.backgroundProvider = backgroundProvider;
|
|
39
70
|
}
|
|
40
71
|
/**
|
|
41
72
|
* 注入向量存储(由 Agent 在初始化后调用,解决构造时序)
|
|
@@ -44,8 +75,7 @@ export class MemoryInspector {
|
|
|
44
75
|
this.vectorStore = vs;
|
|
45
76
|
}
|
|
46
77
|
// ─── 只读查询(IMemoryStorage 透传) ───────────────────
|
|
47
|
-
//
|
|
48
|
-
// 本节仅保留查询方法:getById / getBySource / list / listDeleted / getDeletedById。
|
|
78
|
+
// 写操作以 writeXxx 前缀命名,集中在本类末尾的"写操作"section。
|
|
49
79
|
/**
|
|
50
80
|
* 列出回收站中的软删除记忆(只读查询)
|
|
51
81
|
*
|
|
@@ -185,7 +215,7 @@ export class MemoryInspector {
|
|
|
185
215
|
source: m.source,
|
|
186
216
|
score: m.score,
|
|
187
217
|
// 截断长内容到搜索预览长度
|
|
188
|
-
contentPreview: m.content
|
|
218
|
+
contentPreview: truncate(m.content, SEARCH_PREVIEW_LEN),
|
|
189
219
|
createdAt: m.createdAt,
|
|
190
220
|
}));
|
|
191
221
|
}
|
|
@@ -242,7 +272,7 @@ export class MemoryInspector {
|
|
|
242
272
|
source: memory.source,
|
|
243
273
|
score: memory.score,
|
|
244
274
|
similarity: vectorScore,
|
|
245
|
-
contentPreview: memory.content
|
|
275
|
+
contentPreview: truncate(memory.content, SEARCH_PREVIEW_LEN),
|
|
246
276
|
createdAt: memory.createdAt,
|
|
247
277
|
}));
|
|
248
278
|
}
|
|
@@ -294,8 +324,7 @@ export class MemoryInspector {
|
|
|
294
324
|
return [];
|
|
295
325
|
return this.relationStore.getAllRelations();
|
|
296
326
|
}
|
|
297
|
-
//
|
|
298
|
-
// 本类仅保留关系查询:getRelations / getAllRelations / getRelationPath / getRelationNeighbors。
|
|
327
|
+
// 关系写操作以 writeAddRelation / writeRemoveRelation 命名,见本类末尾"写操作"section。
|
|
299
328
|
/**
|
|
300
329
|
* 记忆关系路径追溯(ADR-014 扩展,Phase 5.1)
|
|
301
330
|
*
|
|
@@ -450,5 +479,402 @@ export class MemoryInspector {
|
|
|
450
479
|
suggest(query, options) {
|
|
451
480
|
return this.advisor.suggest(query, options);
|
|
452
481
|
}
|
|
482
|
+
/**
|
|
483
|
+
* L3 冲突检测(委托给 MemoryAdvisor.detectConflicts)
|
|
484
|
+
*
|
|
485
|
+
* 同 source 内配对,调用 LLM 判断语义冲突,仅检测不修复(需用户决策)。
|
|
486
|
+
* backgroundProvider 未注入时由 advisor 内部静默跳过(返回 skippedReason 报告)。
|
|
487
|
+
*
|
|
488
|
+
* 委托方法存在理由:agent.ts 仅持有 memoryInspector 引用,不直接持有 memoryAdvisor,
|
|
489
|
+
* 通过此转发保持"inspector 是读写 + 治理统一入口"语义。
|
|
490
|
+
*
|
|
491
|
+
* @param signal 可选的 AbortSignal
|
|
492
|
+
* @returns 冲突报告(扫描数 / 冲突数 / 冲突详情列表 / 跳过原因)
|
|
493
|
+
*/
|
|
494
|
+
async detectConflicts(signal) {
|
|
495
|
+
return this.advisor.detectConflicts(signal);
|
|
496
|
+
}
|
|
497
|
+
// ─── 写操作(writeXxx 前缀,IMemoryStorage / IMemoryRelationStore 透传) ───
|
|
498
|
+
/**
|
|
499
|
+
* 插入或更新记忆
|
|
500
|
+
*
|
|
501
|
+
* @param memory 完整记忆对象
|
|
502
|
+
*/
|
|
503
|
+
writeUpsert(memory) {
|
|
504
|
+
this.index.upsert(memory);
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* 提升记忆的 score(L2 采纳反哺内核)
|
|
508
|
+
*
|
|
509
|
+
* 用户在补全模块采纳某条候选后,通过 IPC 调用此方法反哺到内核 Memory.score。
|
|
510
|
+
* 与 recall.ts 的 boostScore 路径语义一致("越常用越重要"),但触发源不同:
|
|
511
|
+
* - recall.ts boostScore:召回时触发(被动)
|
|
512
|
+
* - writeBoost:用户主动采纳时触发(主动)
|
|
513
|
+
*
|
|
514
|
+
* 设计原则:
|
|
515
|
+
* - 复用现有 upsert 路径,不新增存储层接口
|
|
516
|
+
* - score 上限 1.0(与 recall.ts SCORE_CEILING 一致)
|
|
517
|
+
* - 同步更新 accessedAt,避免被衰减机制误降级
|
|
518
|
+
* - 记忆不存在时静默返回 false(补全候选可能来自对话历史,无对应记忆)
|
|
519
|
+
*
|
|
520
|
+
* @param id 记忆唯一标识(${source}:${name} 格式)
|
|
521
|
+
* @param increment score 提升量(默认 0.05,与 recall.ts BOOST_INCREMENT 一致)
|
|
522
|
+
* @returns 是否成功提升(记忆不存在时返回 false)
|
|
523
|
+
*/
|
|
524
|
+
writeBoost(id, increment = ADOPTION_BOOST_INCREMENT) {
|
|
525
|
+
const memory = this.index.getById(id);
|
|
526
|
+
if (!memory)
|
|
527
|
+
return false;
|
|
528
|
+
const boosted = {
|
|
529
|
+
...memory,
|
|
530
|
+
score: Math.min(SCORE_CEILING, memory.score + increment),
|
|
531
|
+
accessedAt: nowIso(),
|
|
532
|
+
};
|
|
533
|
+
this.index.upsert(boosted);
|
|
534
|
+
return true;
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* 软删除记忆(写入 deletedAt)
|
|
538
|
+
*
|
|
539
|
+
* @param id 记忆唯一标识(${source}:${name} 格式)
|
|
540
|
+
*/
|
|
541
|
+
writeDelete(id) {
|
|
542
|
+
this.index.delete(id);
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* 恢复软删除的记忆(清除 deletedAt)
|
|
546
|
+
*
|
|
547
|
+
* @param id 记忆唯一标识
|
|
548
|
+
*/
|
|
549
|
+
writeRestore(id) {
|
|
550
|
+
this.index.restore(id);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* 物理删除记忆(不可恢复,用于回收站彻底删除)
|
|
554
|
+
*
|
|
555
|
+
* @param id 记忆唯一标识
|
|
556
|
+
*/
|
|
557
|
+
writePurge(id) {
|
|
558
|
+
this.index.purge(id);
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* 清理过期的软删除记忆
|
|
562
|
+
*
|
|
563
|
+
* 物理删除所有 deletedAt 早于 before 的记忆。
|
|
564
|
+
* 由宿主项目的定时器调用(默认 30 天保留期)。
|
|
565
|
+
*
|
|
566
|
+
* @param before 时间阈值,deletedAt 早于此值的记忆将被物理删除
|
|
567
|
+
* @returns 被清理的记忆数量
|
|
568
|
+
*/
|
|
569
|
+
writePurgeExpired(before) {
|
|
570
|
+
return this.index.purgeExpired(before);
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* 添加记忆关系(透传 relationStore)
|
|
574
|
+
*
|
|
575
|
+
* 用于宿主 UI 手动创建关系(关系图右键菜单 → 连线 → 创建关系)。
|
|
576
|
+
* relationStore 未注入时静默降级(不阻塞)。
|
|
577
|
+
*
|
|
578
|
+
* @param relation 关系边数据
|
|
579
|
+
*/
|
|
580
|
+
writeAddRelation(relation) {
|
|
581
|
+
if (!this.relationStore)
|
|
582
|
+
return;
|
|
583
|
+
this.relationStore.addRelation(relation);
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* 删除记忆关系(透传 relationStore)
|
|
587
|
+
*
|
|
588
|
+
* 用于宿主 UI 手动删除关系(关系图右键菜单 → 编辑关系 → 删除)。
|
|
589
|
+
* relationStore 未注入时静默降级(不阻塞)。
|
|
590
|
+
*
|
|
591
|
+
* @param sourceId 关系起点
|
|
592
|
+
* @param targetId 关系终点
|
|
593
|
+
* @param type 关系类型
|
|
594
|
+
*/
|
|
595
|
+
writeRemoveRelation(sourceId, targetId, type) {
|
|
596
|
+
if (!this.relationStore)
|
|
597
|
+
return;
|
|
598
|
+
this.relationStore.removeRelation(sourceId, targetId, type);
|
|
599
|
+
}
|
|
600
|
+
// ─── LLM 记忆治理(异步,backgroundProvider 未注入时静默降级) ───
|
|
601
|
+
/**
|
|
602
|
+
* 语义去重:扫描名称高度相似的记忆对,调用 LLM 判断语义等价性
|
|
603
|
+
*
|
|
604
|
+
* 流程:
|
|
605
|
+
* 1. 从 insight/profile/work-projection 加载候选记忆(上限 50 条)
|
|
606
|
+
* 2. 按名称归一化 Levenshtein 距离筛选相似对(上限 10 对)
|
|
607
|
+
* 3. 对每对调用 LLM 判断语义等价性(结构化 JSON 输出)
|
|
608
|
+
* 4. 等价则降级低分记忆(score → 0.1,不物理删除,保留可恢复性)
|
|
609
|
+
* 5. 返回去重报告
|
|
610
|
+
*
|
|
611
|
+
* 安全设计:
|
|
612
|
+
* - 不物理删除——仅降级 score,用户可通过宿主 UI 手动恢复
|
|
613
|
+
* - LLM 失败降级——返回已处理的报告,不阻塞调用方
|
|
614
|
+
* - 异步执行——不阻塞主对话热路径(由宿主定时任务或用户手动触发)
|
|
615
|
+
* - backgroundProvider 未注入时静默跳过(返回 skippedReason)
|
|
616
|
+
*
|
|
617
|
+
* @param signal 可选的 AbortSignal(取消正在进行的 LLM 判断)
|
|
618
|
+
* @returns 去重报告
|
|
619
|
+
*/
|
|
620
|
+
async deduplicateMemories(signal) {
|
|
621
|
+
// backgroundProvider 未注入时静默降级(向后兼容)
|
|
622
|
+
if (!this.backgroundProvider) {
|
|
623
|
+
return {
|
|
624
|
+
scannedCount: 0,
|
|
625
|
+
pairCount: 0,
|
|
626
|
+
deduplicatedCount: 0,
|
|
627
|
+
demotedIds: [],
|
|
628
|
+
skippedReason: 'backgroundProvider 未注入',
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
// ── 步骤 1:加载候选记忆(按 score 降序,取前 50 条) ──
|
|
632
|
+
const candidates = [];
|
|
633
|
+
for (const source of DEDUP_SOURCES) {
|
|
634
|
+
const memories = this.index.getBySource(source);
|
|
635
|
+
candidates.push(...memories);
|
|
636
|
+
}
|
|
637
|
+
// 按 score 降序排列,优先处理高分记忆(更可能产生重复)
|
|
638
|
+
candidates.sort(byScoreDesc);
|
|
639
|
+
const limited = candidates.slice(0, DEDUP_CANDIDATE_LIMIT);
|
|
640
|
+
// ── 步骤 2:筛选名称高度相似的记忆对 ──
|
|
641
|
+
const pairs = this.findNameOverlapPairs(limited);
|
|
642
|
+
if (pairs.length === 0) {
|
|
643
|
+
return {
|
|
644
|
+
scannedCount: limited.length,
|
|
645
|
+
pairCount: 0,
|
|
646
|
+
deduplicatedCount: 0,
|
|
647
|
+
demotedIds: [],
|
|
648
|
+
skippedReason: '未发现名称相似的记忆对',
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
// ── 步骤 3:逐对调用 LLM 判断语义等价性 ──
|
|
652
|
+
const demotedIds = [];
|
|
653
|
+
const verdicts = [];
|
|
654
|
+
let deduplicatedCount = 0;
|
|
655
|
+
for (const pair of pairs) {
|
|
656
|
+
try {
|
|
657
|
+
const verdict = await this.judgeDuplicate(pair, signal);
|
|
658
|
+
if (verdict.isDuplicate) {
|
|
659
|
+
// 降级低分记忆(b 的 score ≤ a 的 score,因 candidates 已按 score 降序)
|
|
660
|
+
this.demoteMemory(pair.b, verdict.mergedContent);
|
|
661
|
+
demotedIds.push(pair.b.id);
|
|
662
|
+
// 收集审计详情(供 UI 展示"为什么降级"和"合并后保留了什么")
|
|
663
|
+
verdicts.push({
|
|
664
|
+
demotedId: pair.b.id,
|
|
665
|
+
reason: verdict.reason,
|
|
666
|
+
mergedContent: verdict.mergedContent,
|
|
667
|
+
});
|
|
668
|
+
deduplicatedCount++;
|
|
669
|
+
logger.info({ demotedId: pair.b.id, keptId: pair.a.id, reason: verdict.reason }, '语义去重:降级重复记忆');
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
catch (err) {
|
|
673
|
+
// 单对 LLM 判断失败不阻塞后续对,记录警告继续
|
|
674
|
+
logger.warn({ err, pairId: `${pair.a.id}↔${pair.b.id}` }, '语义去重:LLM 判断失败,跳过此对');
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return {
|
|
678
|
+
scannedCount: limited.length,
|
|
679
|
+
pairCount: pairs.length,
|
|
680
|
+
deduplicatedCount,
|
|
681
|
+
demotedIds,
|
|
682
|
+
verdicts,
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* 筛选名称高度相似的候选记忆对
|
|
687
|
+
*
|
|
688
|
+
* 判定规则(满足任一即视为名称相似):
|
|
689
|
+
* 1. 归一化 Levenshtein 距离 ≤ 0.3(如 "用户偏好" vs "用户偏爱")
|
|
690
|
+
* 2. 一个名称包含另一个(如 "用户偏好" vs "用户偏好设置")
|
|
691
|
+
*
|
|
692
|
+
* 去重设计:
|
|
693
|
+
* - 已配对的记忆不再参与后续配对(避免 A-B-C 三元组产生 A-B + A-C + B-C 三对)
|
|
694
|
+
* - 候选对按相似度升序排列(越相似越优先),取前 10 对
|
|
695
|
+
*
|
|
696
|
+
* @param candidates 候选记忆列表(已按 score 降序)
|
|
697
|
+
* @returns 名称相似的记忆对列表(a.score ≥ b.score)
|
|
698
|
+
*/
|
|
699
|
+
findNameOverlapPairs(candidates) {
|
|
700
|
+
const pairs = [];
|
|
701
|
+
const usedIds = new Set();
|
|
702
|
+
// 双重循环生成所有可能的对,按相似度排序后贪心选取
|
|
703
|
+
const allPairs = [];
|
|
704
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
705
|
+
for (let j = i + 1; j < candidates.length; j++) {
|
|
706
|
+
const a = candidates[i]; // i 循环内,score 较高
|
|
707
|
+
const b = candidates[j]; // j > i,score 较低或相等
|
|
708
|
+
const similarity = MemoryInspector.computeNameSimilarity(a.name, b.name);
|
|
709
|
+
if (similarity <= DEDUP_NAME_SIMILARITY_THRESHOLD) {
|
|
710
|
+
allPairs.push({ a, b, nameSimilarity: similarity });
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
// 按相似度升序排列(越相似越优先处理)
|
|
715
|
+
allPairs.sort((x, y) => x.nameSimilarity - y.nameSimilarity);
|
|
716
|
+
// 贪心选取:已配对的记忆不再参与后续配对
|
|
717
|
+
for (const { a, b, nameSimilarity } of allPairs) {
|
|
718
|
+
if (usedIds.has(a.id) || usedIds.has(b.id))
|
|
719
|
+
continue;
|
|
720
|
+
pairs.push({ a, b, nameSimilarity });
|
|
721
|
+
usedIds.add(a.id);
|
|
722
|
+
usedIds.add(b.id);
|
|
723
|
+
if (pairs.length >= DEDUP_PAIR_LIMIT)
|
|
724
|
+
break;
|
|
725
|
+
}
|
|
726
|
+
return pairs;
|
|
727
|
+
}
|
|
728
|
+
/**
|
|
729
|
+
* 计算两个名称的归一化相似度(0-1,越小越相似)
|
|
730
|
+
*
|
|
731
|
+
* 综合两种规则取较小值:
|
|
732
|
+
* 1. 归一化 Levenshtein 距离 = distance / max(len_a, len_b)
|
|
733
|
+
* 2. 包含关系:若一个名称包含另一个,相似度 = 0(完全相似)
|
|
734
|
+
*
|
|
735
|
+
* @param nameA 名称 A
|
|
736
|
+
* @param nameB 名称 B
|
|
737
|
+
* @returns 相似度(0=完全相似,1=完全不同)
|
|
738
|
+
*/
|
|
739
|
+
static computeNameSimilarity(nameA, nameB) {
|
|
740
|
+
// 规则 2:包含关系(如 "用户偏好" vs "用户偏好设置")
|
|
741
|
+
if (nameA.includes(nameB) || nameB.includes(nameA)) {
|
|
742
|
+
return 0;
|
|
743
|
+
}
|
|
744
|
+
// 规则 1:归一化 Levenshtein 距离
|
|
745
|
+
const maxLen = Math.max(nameA.length, nameB.length);
|
|
746
|
+
if (maxLen === 0)
|
|
747
|
+
return 0; // 两个空字符串视为完全相似
|
|
748
|
+
const distance = levenshtein(nameA, nameB);
|
|
749
|
+
return distance / maxLen;
|
|
750
|
+
}
|
|
751
|
+
/**
|
|
752
|
+
* 调用 LLM 判断单对记忆的语义等价性
|
|
753
|
+
*
|
|
754
|
+
* 使用结构化 JSON 输出(isDuplicate + mergedContent + reason),
|
|
755
|
+
* 参照 SessionArchiver.generateSummary 的 parseLlmJson 模式。
|
|
756
|
+
*
|
|
757
|
+
* LLM 失败时抛出异常(由 deduplicateMemories 捕获并降级跳过此对)。
|
|
758
|
+
*
|
|
759
|
+
* @param pair 候选记忆对
|
|
760
|
+
* @param signal 可选的 AbortSignal
|
|
761
|
+
* @returns LLM 判断结果
|
|
762
|
+
*/
|
|
763
|
+
async judgeDuplicate(pair, signal) {
|
|
764
|
+
const messages = buildDedupMessages(pair);
|
|
765
|
+
let llmResponse = '';
|
|
766
|
+
// 流式累积模式(与 TextPolishManager / SessionArchiver 一致)
|
|
767
|
+
for await (const chunk of this.backgroundProvider.chat(messages, {
|
|
768
|
+
maxTokens: 300,
|
|
769
|
+
temperature: 0,
|
|
770
|
+
timeoutMs: DEDUP_TIMEOUT_MS,
|
|
771
|
+
signal,
|
|
772
|
+
})) {
|
|
773
|
+
if (chunk.content)
|
|
774
|
+
llmResponse += chunk.content;
|
|
775
|
+
}
|
|
776
|
+
// 解析 LLM 响应(JSON 格式)
|
|
777
|
+
const parsed = parseLlmJson(llmResponse.trim());
|
|
778
|
+
if (!parsed) {
|
|
779
|
+
throw new Error('LLM 去重判断返回非法 JSON');
|
|
780
|
+
}
|
|
781
|
+
return {
|
|
782
|
+
isDuplicate: parsed.isDuplicate === true,
|
|
783
|
+
mergedContent: typeof parsed.mergedContent === 'string' ? parsed.mergedContent : undefined,
|
|
784
|
+
reason: typeof parsed.reason === 'string' ? parsed.reason : '(LLM 未提供理由)',
|
|
785
|
+
};
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* 降级重复记忆(score → DEDUP_LOW_SCORE,可选合并内容)
|
|
789
|
+
*
|
|
790
|
+
* 安全设计:
|
|
791
|
+
* - 不物理删除,仅降低 score,保留可恢复性
|
|
792
|
+
* - 若提供 mergedContent,更新保留记忆(a)的 content 为合并后内容
|
|
793
|
+
* - 通过 upsert 覆盖原记忆(保持 id/source/name/createdAt 不变)
|
|
794
|
+
*
|
|
795
|
+
* @param memory 待降级的记忆(低分方)
|
|
796
|
+
* @param mergedContent 可选的合并后内容(更新到保留方,由调用方负责)
|
|
797
|
+
*/
|
|
798
|
+
demoteMemory(memory, mergedContent) {
|
|
799
|
+
const demoted = {
|
|
800
|
+
...memory,
|
|
801
|
+
score: DEDUP_LOW_SCORE,
|
|
802
|
+
// 更新 accessedAt,标记最近被处理过
|
|
803
|
+
accessedAt: nowIso(),
|
|
804
|
+
};
|
|
805
|
+
this.index.upsert(demoted);
|
|
806
|
+
// 若提供合并内容,调用方可通过 writeUpsert 单独更新保留方
|
|
807
|
+
// 此处不直接修改保留方,保持职责单一(仅降级低分方)
|
|
808
|
+
if (mergedContent) {
|
|
809
|
+
logger.debug({ demotedId: memory.id, mergedContentLen: mergedContent.length }, '语义去重:合并内容已生成(需调用方手动更新保留方)');
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
// ─── L1 语义去重 Prompt 模板(模块级函数,与 TextPolishManager.buildPolishMessages 同模式) ───
|
|
814
|
+
/**
|
|
815
|
+
* 构建语义去重判断的 LLM 消息
|
|
816
|
+
*
|
|
817
|
+
* 设计要点:
|
|
818
|
+
* - system 消息定义判断规则(语义等价 = 表达同一事实/偏好/洞察)
|
|
819
|
+
* - user 消息携带候选对的内容预览(截断到 200 字符)
|
|
820
|
+
* - 要求输出结构化 JSON(isDuplicate + mergedContent + reason)
|
|
821
|
+
* - few-shot 示例降低 LLM 误判率
|
|
822
|
+
*
|
|
823
|
+
* @param pair 候选记忆对
|
|
824
|
+
* @returns system + user 消息数组
|
|
825
|
+
*/
|
|
826
|
+
function buildDedupMessages(pair) {
|
|
827
|
+
const contentA = pair.a.content.length > DEDUP_CONTENT_PREVIEW_LEN
|
|
828
|
+
? truncate(pair.a.content, DEDUP_CONTENT_PREVIEW_LEN, '…[截断]')
|
|
829
|
+
: pair.a.content;
|
|
830
|
+
const contentB = pair.b.content.length > DEDUP_CONTENT_PREVIEW_LEN
|
|
831
|
+
? truncate(pair.b.content, DEDUP_CONTENT_PREVIEW_LEN, '…[截断]')
|
|
832
|
+
: pair.b.content;
|
|
833
|
+
return [
|
|
834
|
+
{
|
|
835
|
+
role: 'system',
|
|
836
|
+
content: `你是记忆去重助手。判断给定的两条记忆是否语义等价(表达同一事实/偏好/洞察)。
|
|
837
|
+
|
|
838
|
+
判断规则:
|
|
839
|
+
- 语义等价 = 核心信息相同,仅措辞/格式/细节程度不同
|
|
840
|
+
- 语义不等价 = 核心信息不同,或一条是另一条的补充/细化(非等价)
|
|
841
|
+
- 忽略时间戳、ID 等元数据差异
|
|
842
|
+
- 忽略措辞风格差异(如"喜欢"vs"偏爱")
|
|
843
|
+
|
|
844
|
+
输出 JSON 格式:
|
|
845
|
+
{
|
|
846
|
+
"isDuplicate": true/false,
|
|
847
|
+
"mergedContent": "合并后的内容(仅 isDuplicate=true 时提供,保留两条记忆的完整信息)",
|
|
848
|
+
"reason": "判断理由(简短说明)"
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
示例:
|
|
852
|
+
输入 A: "用户偏好简洁的 UI 设计"
|
|
853
|
+
输入 B: "用户喜欢简洁的界面风格"
|
|
854
|
+
输出: {"isDuplicate": true, "mergedContent": "用户偏好简洁的 UI/界面设计风格", "reason": "核心偏好相同,仅措辞差异"}
|
|
855
|
+
|
|
856
|
+
输入 A: "用户是 TypeScript 开发者"
|
|
857
|
+
输入 B: "用户偏好使用 TypeScript 进行后端开发"
|
|
858
|
+
输出: {"isDuplicate": false, "reason": "B 是 A 的细化(限定后端),非语义等价"}`,
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
role: 'user',
|
|
862
|
+
content: `请判断以下两条记忆是否语义等价:
|
|
863
|
+
|
|
864
|
+
记忆 A(score: ${pair.a.score},保留候选):
|
|
865
|
+
- 名称:${pair.a.name}
|
|
866
|
+
- 来源:${pair.a.source}
|
|
867
|
+
- 内容:${contentA}
|
|
868
|
+
|
|
869
|
+
记忆 B(score: ${pair.b.score},降级候选):
|
|
870
|
+
- 名称:${pair.b.name}
|
|
871
|
+
- 来源:${pair.b.source}
|
|
872
|
+
- 内容:${contentB}
|
|
873
|
+
|
|
874
|
+
名称相似度:${pair.nameSimilarity.toFixed(2)}(0=完全相同,1=完全不同)
|
|
875
|
+
|
|
876
|
+
请输出 JSON 判断结果。`,
|
|
877
|
+
},
|
|
878
|
+
];
|
|
453
879
|
}
|
|
454
880
|
//# sourceMappingURL=memoryInspector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryInspector.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryInspector.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 关系构建器 — ADR-014 记忆关系构建的专职 Manager
|
|
3
3
|
*
|
|
4
|
-
* 从 InsightExtractor
|
|
4
|
+
* 从 InsightExtractor 拆分出来,负责:
|
|
5
5
|
* - 召回关系判断候选记忆(top-5 关键词搜索)
|
|
6
6
|
* - 构建关系判断 prompt 片段(候选列表 + 关系类型说明)
|
|
7
7
|
* - 解析 LLM 输出的 relations 字段并写入 IMemoryRelationStore
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* - 静默降级——relationStore 未注入时所有方法返回空/no-op(ADR-014 降级优先)
|
|
13
13
|
* - 薄层代理——关系写入直接透传到 IMemoryRelationStore,仅增加 weight 推断 + targetId 校验
|
|
14
14
|
*
|
|
15
|
-
* 与 InsightExtractor 的分工(
|
|
15
|
+
* 与 InsightExtractor 的分工(1.0 接口稳定化):
|
|
16
16
|
* - InsightExtractor:insight 提取 + 去重 + 写入 + 输入分类
|
|
17
17
|
* - RelationBuilder:候选召回 + prompt 构建 + 关系写入 + 冲突检测
|
|
18
18
|
*
|
|
19
|
-
* 详见 ADR-014
|
|
19
|
+
* 详见 ADR-014(记忆关系侧车模型)
|
|
20
20
|
*/
|
|
21
21
|
import type { Memory } from '../../memory/types.js';
|
|
22
22
|
import type { IMemoryStorage } from '../../memory/storageInterface.js';
|
|
@@ -40,7 +40,7 @@ export interface ConflictInfo {
|
|
|
40
40
|
/**
|
|
41
41
|
* 关系构建器
|
|
42
42
|
*
|
|
43
|
-
* 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor
|
|
43
|
+
* 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分。
|
|
44
44
|
* relationStore 未注入时所有方法静默降级(返回空/no-op)。
|
|
45
45
|
*/
|
|
46
46
|
export declare class RelationBuilder {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationBuilder.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"relationBuilder.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/relationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAetE;;;;;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;AAID;;;;;GAKG;AACH,qBAAa,eAAe;IASxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAThC,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAA+C;IAEjE;;;OAGG;gBAEgB,KAAK,EAAE,cAAc,EACrB,aAAa,GAAE,oBAAoB,GAAG,IAAW;IAGpE,yCAAyC;IACzC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/D;;;;;;;;;OASG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAMrD;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAWnD;;;;;;;OAOG;IACH,oBAAoB,IAAI,MAAM;IAqB9B;;;;;;;;;;;;;OAaG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,EACxD,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI;IA4CP;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;CAYrB"}
|
|
@@ -2,6 +2,7 @@ import { RELATION_WEIGHTS } from '../../memory/types.js';
|
|
|
2
2
|
import { escapeLike } from '../../memory/sourceValidation.js';
|
|
3
3
|
import { logger } from '../../logging/logger.js';
|
|
4
4
|
import { nowIso } from '../../utils/time.js';
|
|
5
|
+
import { truncate } from '../../utils/strings.js';
|
|
5
6
|
// ─── 常量 ────────────────────────────────────────────────
|
|
6
7
|
/** 关系判断:召回候选记忆数量上限(top-5) */
|
|
7
8
|
const RELATION_CANDIDATE_LIMIT = 5;
|
|
@@ -11,7 +12,7 @@ const RELATION_CANDIDATE_CONTENT_LIMIT = 100;
|
|
|
11
12
|
/**
|
|
12
13
|
* 关系构建器
|
|
13
14
|
*
|
|
14
|
-
* 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor
|
|
15
|
+
* 封装 ADR-014 记忆关系构建的全部逻辑,从 InsightExtractor 拆分。
|
|
15
16
|
* relationStore 未注入时所有方法静默降级(返回空/no-op)。
|
|
16
17
|
*/
|
|
17
18
|
export class RelationBuilder {
|
|
@@ -76,7 +77,7 @@ export class RelationBuilder {
|
|
|
76
77
|
return '';
|
|
77
78
|
const lines = candidates.map((m, i) => {
|
|
78
79
|
const safeContent = m.content.length > RELATION_CANDIDATE_CONTENT_LIMIT
|
|
79
|
-
? m.content
|
|
80
|
+
? truncate(m.content, RELATION_CANDIDATE_CONTENT_LIMIT)
|
|
80
81
|
: m.content;
|
|
81
82
|
return `[${i + 1}] id: ${m.id}, content: ${safeContent}`;
|
|
82
83
|
});
|