@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.
- package/dist/agent/agent.d.ts +155 -23
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +386 -124
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +8 -2
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +17 -6
- 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 -3
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts +1 -1
- package/dist/agent/builtinTools.js +2 -2
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +27 -6
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +27 -6
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +35 -9
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +138 -25
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/loop.d.ts +41 -11
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +143 -61
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +100 -0
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -0
- package/dist/agent/managers/archiveCoordinator.js +127 -0
- package/dist/agent/managers/archiveCoordinator.js.map +1 -0
- package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
- package/dist/agent/managers/autoConfigRefiner.js +1 -1
- package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
- package/dist/agent/managers/configManager.d.ts +13 -2
- package/dist/agent/managers/configManager.d.ts.map +1 -1
- package/dist/agent/managers/configManager.js +13 -5
- package/dist/agent/managers/configManager.js.map +1 -1
- package/dist/agent/managers/insightExtractor.d.ts +36 -3
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
- package/dist/agent/managers/insightExtractor.js +48 -11
- package/dist/agent/managers/insightExtractor.js.map +1 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +4 -2
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +6 -4
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +113 -0
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -0
- package/dist/agent/managers/memoryDecayScheduler.js +134 -0
- package/dist/agent/managers/memoryDecayScheduler.js.map +1 -0
- package/dist/agent/managers/memoryInspector.d.ts +70 -10
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +97 -23
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +77 -0
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -0
- package/dist/agent/managers/sessionArchiver.js +175 -0
- package/dist/agent/managers/sessionArchiver.js.map +1 -0
- package/dist/agent/managers/sessionManager.d.ts +10 -0
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +26 -5
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/managers/workProjection.d.ts +1 -1
- package/dist/agent/managers/workProjection.d.ts.map +1 -1
- package/dist/agent/managers/workProjection.js +13 -10
- package/dist/agent/managers/workProjection.js.map +1 -1
- package/dist/agent/messageHistory.d.ts +1 -22
- package/dist/agent/messageHistory.d.ts.map +1 -1
- package/dist/agent/messageHistory.js +3 -19
- package/dist/agent/messageHistory.js.map +1 -1
- package/dist/agent/toolExecutor.d.ts +5 -18
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +7 -7
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/tracer.d.ts +8 -1
- package/dist/agent/tracer.d.ts.map +1 -1
- package/dist/agent/tracer.js +8 -1
- package/dist/agent/tracer.js.map +1 -1
- package/dist/agent/types.d.ts +29 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/{managers/userFactExtractor.d.ts → userFactExtractor.d.ts} +2 -2
- package/dist/agent/userFactExtractor.d.ts.map +1 -0
- package/dist/agent/userFactExtractor.js.map +1 -0
- package/dist/config/loader.d.ts +4 -4
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +11 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/eval/evalTypes.js +1 -1
- package/dist/eval/evalTypes.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/embedding.d.ts.map +1 -1
- package/dist/llm/embedding.js +8 -6
- package/dist/llm/embedding.js.map +1 -1
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +2 -1
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts +9 -0
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +77 -33
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/llm/provider.d.ts +17 -3
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +6 -2
- package/dist/llm/provider.js.map +1 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +25 -9
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/hybridMerge.d.ts +54 -0
- package/dist/memory/hybridMerge.d.ts.map +1 -0
- package/dist/memory/hybridMerge.js +36 -0
- package/dist/memory/hybridMerge.js.map +1 -0
- package/dist/memory/inMemoryStorage.d.ts +90 -15
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +179 -28
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/loader.js +1 -1
- package/dist/memory/loader.js.map +1 -1
- package/dist/memory/projectManager.d.ts +34 -5
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +98 -62
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/recall.d.ts +7 -18
- package/dist/memory/recall.d.ts.map +1 -1
- package/dist/memory/recall.js +14 -19
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +81 -14
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/store.js +1 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +7 -1
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +5 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/userProfile.d.ts +6 -6
- package/dist/memory/userProfile.d.ts.map +1 -1
- package/dist/memory/userProfile.js +20 -15
- package/dist/memory/userProfile.js.map +1 -1
- package/dist/memory/vectorStore.d.ts +35 -0
- package/dist/memory/vectorStore.d.ts.map +1 -1
- package/dist/memory/vectorStore.js +111 -2
- package/dist/memory/vectorStore.js.map +1 -1
- package/dist/persona/personaManager.d.ts +17 -4
- package/dist/persona/personaManager.d.ts.map +1 -1
- package/dist/persona/personaManager.js +44 -12
- package/dist/persona/personaManager.js.map +1 -1
- package/dist/security/pathGuard.d.ts +29 -7
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +148 -81
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/skill/skillManager.d.ts +15 -0
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +25 -3
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/skill/types.d.ts +7 -1
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/utils/errors.d.ts +26 -7
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +10 -18
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +9 -2
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +1 -1
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +8 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +14 -3
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/path.d.ts +5 -1
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +5 -1
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/safeTimer.d.ts +19 -0
- package/dist/utils/safeTimer.d.ts.map +1 -1
- package/dist/utils/safeTimer.js +27 -0
- package/dist/utils/safeTimer.js.map +1 -1
- package/dist/utils/segmenter.d.ts +0 -12
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +8 -3
- package/dist/utils/segmenter.js.map +1 -1
- package/dist/utils/strings.d.ts +1 -1
- package/dist/utils/strings.d.ts.map +1 -1
- package/dist/utils/strings.js +4 -2
- package/dist/utils/strings.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent/managers/userFactExtractor.d.ts.map +0 -1
- package/dist/agent/managers/userFactExtractor.js.map +0 -1
- /package/dist/agent/{managers/userFactExtractor.js → userFactExtractor.js} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
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 { extractUserFacts } from '../../agent/userFactExtractor.js';
|
|
25
|
+
/**
|
|
26
|
+
* 归档协调器
|
|
27
|
+
*
|
|
28
|
+
* 使用方式:
|
|
29
|
+
* const coordinator = new ArchiveCoordinator({
|
|
30
|
+
* getUserProfile: () => this.#userProfile,
|
|
31
|
+
* getInsightExtractor: () => this.insightExtractor,
|
|
32
|
+
* getSessionArchiver: () => this.sessionArchiver,
|
|
33
|
+
* emit: this.emit.bind(this),
|
|
34
|
+
* });
|
|
35
|
+
* await coordinator.archiveProfileFacts(input);
|
|
36
|
+
* await coordinator.archiveInsight(input, assistantContent);
|
|
37
|
+
* await coordinator.archiveSessionContent(date, session);
|
|
38
|
+
*/
|
|
39
|
+
export class ArchiveCoordinator {
|
|
40
|
+
/** 获取 UserProfile 的回调 */
|
|
41
|
+
getUserProfile;
|
|
42
|
+
/** 获取 InsightExtractor 的回调 */
|
|
43
|
+
getInsightExtractor;
|
|
44
|
+
/** 获取 SessionArchiver 的回调 */
|
|
45
|
+
getSessionArchiver;
|
|
46
|
+
/** 事件发射回调 */
|
|
47
|
+
emit;
|
|
48
|
+
constructor(opts) {
|
|
49
|
+
this.getUserProfile = opts.getUserProfile;
|
|
50
|
+
this.getInsightExtractor = opts.getInsightExtractor;
|
|
51
|
+
this.getSessionArchiver = opts.getSessionArchiver;
|
|
52
|
+
this.emit = opts.emit;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 手动触发 profile facts 归档(manual 模式下使用)
|
|
56
|
+
*
|
|
57
|
+
* manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
|
|
58
|
+
* full / insights-only 模式下也可调用(会重复归档,但不推荐)。
|
|
59
|
+
*
|
|
60
|
+
* @param input 本轮用户输入
|
|
61
|
+
* @returns 写入/更新的 UserProfileEntry 列表
|
|
62
|
+
*/
|
|
63
|
+
async archiveProfileFacts(input) {
|
|
64
|
+
const userProfile = this.getUserProfile();
|
|
65
|
+
if (!userProfile)
|
|
66
|
+
return [];
|
|
67
|
+
const turnIndex = `turn-${Date.now()}`;
|
|
68
|
+
const facts = extractUserFacts(input, turnIndex);
|
|
69
|
+
const entries = await userProfile.archiveFacts(facts);
|
|
70
|
+
// 发射 memoryAdded 事件:与自动归档路径一致,保持宿主 UI 行为统一
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
if (entry.confirmed) {
|
|
73
|
+
this.emit('memoryAdded', { id: entry.id, source: 'profile', name: entry.value });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return entries;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 手动触发 insight 提取(manual 模式下使用)
|
|
80
|
+
*
|
|
81
|
+
* manual 模式下 postProcess 跳过自动归档,用户需通过此 API 主动归档。
|
|
82
|
+
* 内部仍走 classify 判断(避免无价值输入浪费 LLM 调用)。
|
|
83
|
+
*
|
|
84
|
+
* @param input 本轮用户输入
|
|
85
|
+
* @param assistantContent 本轮助手回复内容
|
|
86
|
+
* @returns 写入/更新的 Memory 列表
|
|
87
|
+
*/
|
|
88
|
+
async archiveInsight(input, assistantContent) {
|
|
89
|
+
const insightExtractor = this.getInsightExtractor();
|
|
90
|
+
if (!insightExtractor)
|
|
91
|
+
return [];
|
|
92
|
+
// 内部仍走 classify 判断,避免无价值输入浪费 LLM 调用
|
|
93
|
+
const shouldExtract = insightExtractor.classify(input);
|
|
94
|
+
if (shouldExtract !== 'extract')
|
|
95
|
+
return [];
|
|
96
|
+
const memories = await insightExtractor.extract(input, assistantContent);
|
|
97
|
+
// 发射 memoryAdded + insightExtracted 事件:与自动归档路径一致
|
|
98
|
+
for (const memory of memories) {
|
|
99
|
+
this.emit('memoryAdded', { id: memory.id, source: memory.source, name: memory.name });
|
|
100
|
+
this.emit('insightExtracted', { source: memory.source, insight: memory.content });
|
|
101
|
+
}
|
|
102
|
+
return memories;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 手动归档会话内容(content 类记忆)
|
|
106
|
+
*
|
|
107
|
+
* 适用于 `insights-only` / `manual` 模式下用户手动触发会话内容归档。
|
|
108
|
+
* `full` 模式下由宿主在会话切换前自动调用,无需用户干预。
|
|
109
|
+
*
|
|
110
|
+
* @param date 会话日期 YYYY-MM-DD
|
|
111
|
+
* @param session 会话标识(不含日期前缀)
|
|
112
|
+
* @returns 归档结果(memories 可能为空,表示无归档价值或 LLM 失败)
|
|
113
|
+
*/
|
|
114
|
+
async archiveSessionContent(date, session) {
|
|
115
|
+
const sessionArchiver = this.getSessionArchiver();
|
|
116
|
+
if (!sessionArchiver) {
|
|
117
|
+
return { memories: [], sessionLabel: `${date}-${session}`, messageCount: 0 };
|
|
118
|
+
}
|
|
119
|
+
const result = await sessionArchiver.archiveSessionContent(date, session);
|
|
120
|
+
// 发射 memoryAdded 事件:与 insight 自动归档路径一致,宿主可据此刷新记忆面板
|
|
121
|
+
for (const memory of result.memories) {
|
|
122
|
+
this.emit('memoryAdded', { id: memory.id, source: memory.source, name: memory.name });
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=archiveCoordinator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archiveCoordinator.js","sourceRoot":"","sources":["../../../src/agent/managers/archiveCoordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoConfigRefiner.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,2BAA2B;AAC3B,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"autoConfigRefiner.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,2BAA2B;AAC3B,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAJrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,kBAAkB,CAA4B;gBAGnC,kBAAkB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,EAC3E,OAAO,CAAC,EAAE,wBAAwB;IAKpC,sDAAsD;IACtD,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAIzD;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzE,oBAAoB;YACN,cAAc;IAqD5B,4BAA4B;IAC5B,OAAO,CAAC,qBAAqB;CAiD9B"}
|
|
@@ -46,7 +46,7 @@ export class AutoConfigRefiner {
|
|
|
46
46
|
source: 'auto-config-refiner',
|
|
47
47
|
};
|
|
48
48
|
logger.info({ type: raw.type, name: raw.name, confidence: raw.confidence, reason: raw.reason }, 'AutoConfigRefiner: 提取到配置建议');
|
|
49
|
-
//
|
|
49
|
+
// 单条建议回调失败时记日志并继续处理下一条,避免一条失败导致后续全部丢失
|
|
50
50
|
try {
|
|
51
51
|
this.onConfigSuggestion(suggestion);
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoConfigRefiner.js","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"autoConfigRefiner.js","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoB/C,MAAM,eAAe,GAAuC;IAC1D,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,OAAO,iBAAiB;IAKT;IAJF,OAAO,CAAqC;IACrD,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YACmB,kBAA0D,EAC3E,OAAkC;QADjB,uBAAkB,GAAlB,kBAAkB,CAAwC;QAG3E,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IACpD,CAAC;IAED,sDAAsD;IACtD,qBAAqB,CAAC,QAA4B;QAChD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,gBAAwB;QACvD,eAAe;QACf,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,IAAI,WAA4B,CAAC;QAEjC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,WAAW;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;aACzD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAqB;gBACnC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,MAAM,EAAE,qBAAqB;aAC9B,CAAC;YAEF,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAClF,4BAA4B,CAC7B,CAAC;YAEF,sCAAsC;YACtC,IAAI,CAAC;gBACH,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE,EAC3D,sCAAsC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACZ,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,gBAAwB;QACtE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;iBAcR,CAAC;QAEd,MAAM,QAAQ,GAAc;YAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aACrF;SACF,CAAC;QAEF,IAAI,CAAC;YACH,SAAS;YACT,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC/D,WAAW,EAAE,GAAG;aACjB,CAAC,EAAE,CAAC;gBACH,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CACzB,WAAW,IAAI,IAAI,CACpB,CAAC;YACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;YAEzE,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,CAAgB,EAAE,EAAE,CACnB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CACpE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,4BAA4B;IACpB,qBAAqB,CAAC,SAAiB;QAC7C,MAAM,WAAW,GAAoB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAEtC,wCAAwC;QACxC,MAAM,kBAAkB,GAAG;YACzB,oCAAoC;YACpC,wEAAwE;SACzE,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;oBACnC,OAAO,EAAE,QAAQ,QAAQ,EAAE;oBAC3B,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,cAAc,QAAQ,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,YAAY;QACZ,MAAM,cAAc,GAA2B;YAC7C,0BAA0B,EAAE,OAAO;YACnC,mBAAmB,EAAE,OAAO;YAC5B,gBAAgB,EAAE,MAAM;YACxB,gBAAgB,EAAE,OAAO;SAC1B,CAAC;QAEF,KAAK,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3E,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,QAAQ,WAAW,iBAAiB;oBAC7C,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,MAAM,WAAW,OAAO;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -25,8 +25,13 @@ import type { SkillManager } from '../../skill/skillManager.js';
|
|
|
25
25
|
* - confirmConfigSuggestion() 写入配置文件(持久化,重启后依然生效)
|
|
26
26
|
*/
|
|
27
27
|
export interface ConfigSuggestion {
|
|
28
|
-
/**
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* 建议类型(开放字符串,对齐 ADR-004 基元驱动模型)
|
|
30
|
+
*
|
|
31
|
+
* 约定值:'rule' | 'persona' | 'skill'(由 sourceMap 映射到 SOURCE_LABELS)
|
|
32
|
+
* 扩展值:任意字符串,需配合 `memorySource` 字段直接指定记忆 source 标签
|
|
33
|
+
*/
|
|
34
|
+
type: string;
|
|
30
35
|
/** 建议名称(如"代码风格"、"TypeScript 偏好") */
|
|
31
36
|
name: string;
|
|
32
37
|
/** 建议内容(Markdown 格式) */
|
|
@@ -35,6 +40,12 @@ export interface ConfigSuggestion {
|
|
|
35
40
|
confidence: number;
|
|
36
41
|
/** 建议来源(如对话摘要、用户画像分析) */
|
|
37
42
|
source?: string;
|
|
43
|
+
/**
|
|
44
|
+
* 可选:直接指定记忆 source 标签(绕过 sourceMap)
|
|
45
|
+
*
|
|
46
|
+
* 当 type 不在约定值内时,必须提供此字段,否则 confirmConfigSuggestion 抛 configError。
|
|
47
|
+
*/
|
|
48
|
+
memorySource?: string;
|
|
38
49
|
}
|
|
39
50
|
/** 配置建议回调函数类型 */
|
|
40
51
|
export type ConfigSuggestionHandler = (suggestion: ConfigSuggestion) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAO5D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,iBAAiB;AACjB,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAI7E,qBAAa,aAAa;IAWtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAbnC,mBAAmB;IACnB,OAAO,CAAC,iBAAiB,CAAwC;IAEjE;;;;;OAKG;gBAEgB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC9C,eAAe,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,aAAA;IAKtE;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAI1D,oBAAoB;IACpB,IAAI,kBAAkB,IAAI,uBAAuB,GAAG,IAAI,CAEvD;IAED;;;;;;;;;OASG;IACG,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqE1E;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C;;;;;;OAMG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAc5F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SOURCE_LABELS } from '../../memory/types.js';
|
|
2
2
|
import { configError, toError } from '../../utils/errors.js';
|
|
3
3
|
import { logger } from '../../logging/logger.js';
|
|
4
|
+
import { nowIso } from '../../utils/time.js';
|
|
4
5
|
// ─── 类 ──────────────────────────────────────────────────
|
|
5
6
|
export class ConfigManager {
|
|
6
7
|
index;
|
|
@@ -51,16 +52,23 @@ export class ConfigManager {
|
|
|
51
52
|
'在 Agent 构造时传入 configDir 参数(Agent 会自动创建 FileStore 并注入回调)',
|
|
52
53
|
]);
|
|
53
54
|
}
|
|
54
|
-
// 根据建议类型映射到 source
|
|
55
|
+
// 根据建议类型映射到 source 标签(ADR-004:开放字符串,约定值走 sourceMap,扩展值走 memorySource)
|
|
55
56
|
const sourceMap = {
|
|
56
57
|
rule: SOURCE_LABELS.RULE,
|
|
57
58
|
persona: SOURCE_LABELS.PERSONA,
|
|
58
59
|
skill: SOURCE_LABELS.SKILL,
|
|
59
60
|
};
|
|
60
|
-
|
|
61
|
+
// 优先级:memorySource(扩展值)> sourceMap[type](约定值)
|
|
62
|
+
const source = suggestion.memorySource ?? sourceMap[suggestion.type];
|
|
63
|
+
if (!source) {
|
|
64
|
+
throw configError('无法确定配置建议的 source 标签', `type='${suggestion.type}' 不在约定值(rule/persona/skill)内,且未提供 memorySource 字段`, [
|
|
65
|
+
'使用约定 type 值(rule/persona/skill)',
|
|
66
|
+
'或提供 memorySource 字段指定自定义 source 标签',
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
61
69
|
// 构造记忆对象并写入配置文件(真理源)
|
|
62
70
|
// 不写入 SQLite——遵守"配置文件是真理源"约束
|
|
63
|
-
const now =
|
|
71
|
+
const now = nowIso();
|
|
64
72
|
const memory = {
|
|
65
73
|
id: `${source}:${suggestion.name}`,
|
|
66
74
|
content: suggestion.content,
|
|
@@ -115,7 +123,7 @@ export class ConfigManager {
|
|
|
115
123
|
* 内部自动填充 id / source / createdAt / accessedAt / score 等字段。
|
|
116
124
|
*/
|
|
117
125
|
async addSimpleRule(name, content) {
|
|
118
|
-
const now =
|
|
126
|
+
const now = nowIso();
|
|
119
127
|
const memory = {
|
|
120
128
|
id: `rule:${name}`,
|
|
121
129
|
content,
|
|
@@ -170,7 +178,7 @@ export class ConfigManager {
|
|
|
170
178
|
*/
|
|
171
179
|
async addSimpleSkill(name, content, keywords = []) {
|
|
172
180
|
void keywords; // 基元驱动模型下关键词暂不存储到 Memory,由 SkillManager 管理
|
|
173
|
-
const now =
|
|
181
|
+
const now = nowIso();
|
|
174
182
|
const memory = {
|
|
175
183
|
id: `skill:${name}`,
|
|
176
184
|
content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import type { LlmProvider } from '../../llm/provider.js';
|
|
2
|
+
import type { Memory } from '../../memory/types.js';
|
|
2
3
|
import type { IMemoryStorage } from '../../memory/storageInterface.js';
|
|
3
4
|
import type { IMemoryRelationStore } from '../../memory/relationStore.js';
|
|
4
5
|
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
22
|
/**
|
|
6
23
|
* 记忆关键词(宿主提供,用于输入分类 Layer 2)
|
|
7
24
|
*
|
|
@@ -9,7 +26,7 @@ import type { WriteExtensions } from '../../agent/toolExecutor.js';
|
|
|
9
26
|
* 用于判断用户输入是否值得提取记忆。
|
|
10
27
|
*/
|
|
11
28
|
export interface MemoryKeywords {
|
|
12
|
-
/**
|
|
29
|
+
/** 领域关键词(如项目相关:['架构', '接口', '性能', '测试']) */
|
|
13
30
|
domain: string[];
|
|
14
31
|
/** 用户专属关键词(如:['我', '我的', '记住', '帮我']) */
|
|
15
32
|
personal: string[];
|
|
@@ -22,6 +39,8 @@ export declare class InsightExtractor {
|
|
|
22
39
|
private hostKeywords;
|
|
23
40
|
/** 写入扩展回调(宿主注入 diff 对比确认逻辑) */
|
|
24
41
|
writeExtensions: WriteExtensions | null;
|
|
42
|
+
/** 冲突检测回调(由 Agent 通过 bindOnConflict 注入,检测到 contradicts 时触发) */
|
|
43
|
+
private onConflict;
|
|
25
44
|
/**
|
|
26
45
|
* @param provider - LLM Provider(用于 insight 提取)
|
|
27
46
|
* @param index - 记忆存储(用于去重搜索 + 写入)
|
|
@@ -38,6 +57,16 @@ export declare class InsightExtractor {
|
|
|
38
57
|
role: 'user' | 'assistant';
|
|
39
58
|
content: string;
|
|
40
59
|
}>): void;
|
|
60
|
+
/**
|
|
61
|
+
* 绑定冲突检测回调
|
|
62
|
+
*
|
|
63
|
+
* 由 Agent.init() 在创建 InsightExtractor 后调用(与 bindGetRecentHistory 同模式),
|
|
64
|
+
* 解决 Agent 实例晚于 InsightExtractor 创建的时序循环依赖。
|
|
65
|
+
* buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
|
|
66
|
+
*
|
|
67
|
+
* @param fn 冲突检测回调(传入 null 可解除绑定)
|
|
68
|
+
*/
|
|
69
|
+
bindOnConflict(fn: ((info: ConflictInfo) => void) | null): void;
|
|
41
70
|
/**
|
|
42
71
|
* 设置宿主记忆关键词(输入分类 Layer 2)
|
|
43
72
|
*/
|
|
@@ -64,7 +93,7 @@ export declare class InsightExtractor {
|
|
|
64
93
|
* 2. 去重检查(防止重复写入)
|
|
65
94
|
* 3. 写入 SQLite(source='insight', score=0.5)
|
|
66
95
|
*/
|
|
67
|
-
extract(userInput: string, assistantContent: string): Promise<
|
|
96
|
+
extract(userInput: string, assistantContent: string): Promise<Memory[]>;
|
|
68
97
|
/**
|
|
69
98
|
* 计算 Jaccard 相似度(词级,基于 ICU 分词)
|
|
70
99
|
*
|
|
@@ -120,9 +149,13 @@ export declare class InsightExtractor {
|
|
|
120
149
|
* 解析 LLM 输出的 relations 字段,验证 targetId 在候选列表中,写入关系存储。
|
|
121
150
|
* 降级策略:relationStore 未注入/relations 为空/targetId 无效 → 跳过,不阻塞主流程。
|
|
122
151
|
*
|
|
152
|
+
* 检测到 contradicts 关系时,通过 onConflict 回调通知 Agent,
|
|
153
|
+
* Agent emit('conflictDetected') 触发宿主消费链路(ProactiveBanner 通知用户)。
|
|
154
|
+
*
|
|
123
155
|
* @param insightId 新写入的 insight ID
|
|
156
|
+
* @param insightContent 新写入的 insight 内容(用于冲突通知 UI 展示)
|
|
124
157
|
* @param relations LLM 输出的关系列表
|
|
125
|
-
* @param candidates 候选记忆列表(用于验证 targetId)
|
|
158
|
+
* @param candidates 候选记忆列表(用于验证 targetId + 查找 targetContent)
|
|
126
159
|
*/
|
|
127
160
|
private buildRelations;
|
|
128
161
|
/**
|
|
@@ -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;
|
|
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"}
|
|
@@ -15,6 +15,7 @@ import { SOURCE_LABELS, escapeLike, RELATION_WEIGHTS } from '../../memory/types.
|
|
|
15
15
|
import { logger } from '../../logging/logger.js';
|
|
16
16
|
import { parseLlmJson } from '../../utils/json.js';
|
|
17
17
|
import { segmentText } from '../../utils/segmenter.js';
|
|
18
|
+
import { nowIso } from '../../utils/time.js';
|
|
18
19
|
// ─── 常量 ────────────────────────────────────────────────
|
|
19
20
|
/** extractInsight 默认 score 值 */
|
|
20
21
|
const DEFAULT_INSIGHT_SCORE = 0.5;
|
|
@@ -47,6 +48,8 @@ export class InsightExtractor {
|
|
|
47
48
|
hostKeywords = null;
|
|
48
49
|
/** 写入扩展回调(宿主注入 diff 对比确认逻辑) */
|
|
49
50
|
writeExtensions = null;
|
|
51
|
+
/** 冲突检测回调(由 Agent 通过 bindOnConflict 注入,检测到 contradicts 时触发) */
|
|
52
|
+
onConflict = null;
|
|
50
53
|
/**
|
|
51
54
|
* @param provider - LLM Provider(用于 insight 提取)
|
|
52
55
|
* @param index - 记忆存储(用于去重搜索 + 写入)
|
|
@@ -68,6 +71,18 @@ export class InsightExtractor {
|
|
|
68
71
|
bindGetRecentHistory(fn) {
|
|
69
72
|
this._getRecentHistory = fn;
|
|
70
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* 绑定冲突检测回调
|
|
76
|
+
*
|
|
77
|
+
* 由 Agent.init() 在创建 InsightExtractor 后调用(与 bindGetRecentHistory 同模式),
|
|
78
|
+
* 解决 Agent 实例晚于 InsightExtractor 创建的时序循环依赖。
|
|
79
|
+
* buildRelations 检测到 contradicts 关系时调用此回调,Agent 在回调中 emit('conflictDetected')。
|
|
80
|
+
*
|
|
81
|
+
* @param fn 冲突检测回调(传入 null 可解除绑定)
|
|
82
|
+
*/
|
|
83
|
+
bindOnConflict(fn) {
|
|
84
|
+
this.onConflict = fn;
|
|
85
|
+
}
|
|
71
86
|
// ─── 配置 ─────────────────────────────────────────────
|
|
72
87
|
/**
|
|
73
88
|
* 设置宿主记忆关键词(输入分类 Layer 2)
|
|
@@ -115,6 +130,8 @@ export class InsightExtractor {
|
|
|
115
130
|
* 3. 写入 SQLite(source='insight', score=0.5)
|
|
116
131
|
*/
|
|
117
132
|
async extract(userInput, assistantContent) {
|
|
133
|
+
// 返回本次写入/更新的记忆列表(供 Agent 发射 memoryAdded/insightExtracted 事件)
|
|
134
|
+
const written = [];
|
|
118
135
|
try {
|
|
119
136
|
const safeUserInput = userInput.length > INSIGHT_USER_INPUT_LIMIT
|
|
120
137
|
? userInput.slice(0, INSIGHT_USER_INPUT_LIMIT) + '…'
|
|
@@ -132,7 +149,7 @@ export class InsightExtractor {
|
|
|
132
149
|
});
|
|
133
150
|
if (precheckDuplicate) {
|
|
134
151
|
logger.debug({ id: precheckDuplicate.id, similarity: 'high' }, 'extractInsight: 预检命中高相似度,跳过 LLM 提取');
|
|
135
|
-
return;
|
|
152
|
+
return written;
|
|
136
153
|
}
|
|
137
154
|
const recentHistory = this._getRecentHistory(2);
|
|
138
155
|
const contextSection = recentHistory.length > 0
|
|
@@ -198,7 +215,7 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
198
215
|
const trimmedResponse = llmResponse.trim();
|
|
199
216
|
if (trimmedResponse === 'null' || !trimmedResponse) {
|
|
200
217
|
logger.debug({ reason: 'llm_skip' }, 'extractInsight: LLM 判断无值得记忆的信息');
|
|
201
|
-
return;
|
|
218
|
+
return written;
|
|
202
219
|
}
|
|
203
220
|
const parsed = parseLlmJson(trimmedResponse);
|
|
204
221
|
const insight = parsed && typeof parsed.insight === 'string' && parsed.insight.trim()
|
|
@@ -206,7 +223,7 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
206
223
|
: null;
|
|
207
224
|
if (!insight) {
|
|
208
225
|
logger.debug({ reason: 'parse_fail' }, 'extractInsight: 无法解析 LLM 响应');
|
|
209
|
-
return;
|
|
226
|
+
return written;
|
|
210
227
|
}
|
|
211
228
|
// 质量分级:根据 LLM 返回的 quality 字段设置 score
|
|
212
229
|
const quality = parsed?.quality ?? 'medium';
|
|
@@ -221,17 +238,18 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
221
238
|
if (existingMemory) {
|
|
222
239
|
// 已有相似记忆,更新 accessedAt 和 score(取较高值)
|
|
223
240
|
existingMemory.score = Math.min(1.0, Math.max(existingMemory.score, score) + DEDUP_SCORE_BOOST);
|
|
224
|
-
existingMemory.accessedAt =
|
|
241
|
+
existingMemory.accessedAt = nowIso();
|
|
225
242
|
this.index.upsert(existingMemory);
|
|
226
243
|
logger.debug({ id: existingMemory.id }, 'extractInsight: 更新已有记忆');
|
|
227
244
|
// ADR-014:即使命中去重,也尝试构建关系(新 insight 与已有记忆可能存在关系)
|
|
228
245
|
if (this.relationStore && Array.isArray(parsed?.relations)) {
|
|
229
|
-
this.buildRelations(existingMemory.id, parsed.relations, relationCandidates);
|
|
246
|
+
this.buildRelations(existingMemory.id, insight, parsed.relations, relationCandidates);
|
|
230
247
|
}
|
|
231
|
-
|
|
248
|
+
written.push(existingMemory);
|
|
249
|
+
return written;
|
|
232
250
|
}
|
|
233
251
|
// Step 3: 写入 SQLite(score 根据质量分级设置)
|
|
234
|
-
const now =
|
|
252
|
+
const now = nowIso();
|
|
235
253
|
const insightId = randomUUID(); // 使用 UUID 避免高并发冲突
|
|
236
254
|
const memory = {
|
|
237
255
|
id: `insight:${insightId}`,
|
|
@@ -244,11 +262,12 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
244
262
|
};
|
|
245
263
|
this.index.upsert(memory);
|
|
246
264
|
logger.info({ id: memory.id, insight, quality, score }, 'extractInsight: 写入新记忆');
|
|
265
|
+
written.push(memory);
|
|
247
266
|
// ADR-014 关系构建:写入 insight 后,构建与已有记忆的关系
|
|
248
267
|
// 降级策略:relationStore 未注入/relations 为空/构建失败 → 跳过,不阻塞主流程
|
|
249
268
|
if (this.relationStore && Array.isArray(parsed?.relations)) {
|
|
250
269
|
try {
|
|
251
|
-
this.buildRelations(memory.id, parsed.relations, relationCandidates);
|
|
270
|
+
this.buildRelations(memory.id, memory.content, parsed.relations, relationCandidates);
|
|
252
271
|
}
|
|
253
272
|
catch (relErr) {
|
|
254
273
|
logger.warn({ err: relErr, insightId: memory.id }, 'extractInsight: 关系构建失败');
|
|
@@ -259,6 +278,7 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
259
278
|
// 提取失败不影响主对话流程
|
|
260
279
|
logger.warn({ err }, 'extractInsight: 提取失败');
|
|
261
280
|
}
|
|
281
|
+
return written;
|
|
262
282
|
}
|
|
263
283
|
// ─── 私有:工具方法 ───────────────────────────────────
|
|
264
284
|
/**
|
|
@@ -353,15 +373,20 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
353
373
|
* 解析 LLM 输出的 relations 字段,验证 targetId 在候选列表中,写入关系存储。
|
|
354
374
|
* 降级策略:relationStore 未注入/relations 为空/targetId 无效 → 跳过,不阻塞主流程。
|
|
355
375
|
*
|
|
376
|
+
* 检测到 contradicts 关系时,通过 onConflict 回调通知 Agent,
|
|
377
|
+
* Agent emit('conflictDetected') 触发宿主消费链路(ProactiveBanner 通知用户)。
|
|
378
|
+
*
|
|
356
379
|
* @param insightId 新写入的 insight ID
|
|
380
|
+
* @param insightContent 新写入的 insight 内容(用于冲突通知 UI 展示)
|
|
357
381
|
* @param relations LLM 输出的关系列表
|
|
358
|
-
* @param candidates 候选记忆列表(用于验证 targetId)
|
|
382
|
+
* @param candidates 候选记忆列表(用于验证 targetId + 查找 targetContent)
|
|
359
383
|
*/
|
|
360
|
-
buildRelations(insightId, relations, candidates) {
|
|
384
|
+
buildRelations(insightId, insightContent, relations, candidates) {
|
|
361
385
|
if (!this.relationStore || relations.length === 0)
|
|
362
386
|
return;
|
|
363
387
|
const candidateIds = new Set(candidates.map((m) => m.id));
|
|
364
|
-
const
|
|
388
|
+
const candidateMap = new Map(candidates.map((m) => [m.id, m]));
|
|
389
|
+
const now = nowIso();
|
|
365
390
|
let built = 0;
|
|
366
391
|
for (const rel of relations) {
|
|
367
392
|
// 运行时类型校验(不可信的 LLM 输出)
|
|
@@ -378,6 +403,18 @@ ${contextSection}${candidatesSection}${relationsPrompt}
|
|
|
378
403
|
createdAt: now,
|
|
379
404
|
});
|
|
380
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
|
+
}
|
|
381
418
|
}
|
|
382
419
|
if (built > 0) {
|
|
383
420
|
logger.info({ insightId, built }, 'extractInsight: 关系构建完成');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insightExtractor.js","sourceRoot":"","sources":["../../../src/agent/managers/insightExtractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insightExtractor.js","sourceRoot":"","sources":["../../../src/agent/managers/insightExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,0DAA0D;AAE1D,gCAAgC;AAChC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,kCAAkC;AAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,2CAA2C;AAC3C,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C,yDAAyD;AACzD,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,+BAA+B;AAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,8BAA8B;AAC9B,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,8BAA8B;AAC9B,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAE7C,gCAAgC;AAChC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,6BAA6B;AAC7B,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAEnC,4CAA4C;AAC5C,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAkC7C,2DAA2D;AAE3D,MAAM,OAAO,gBAAgB;IAiBR;IACA;IACA;IAlBnB,iCAAiC;IACzB,YAAY,GAA0B,IAAI,CAAC;IAEnD,+BAA+B;IACxB,eAAe,GAA2B,IAAI,CAAC;IAEtD,+DAA+D;IACvD,UAAU,GAA0C,IAAI,CAAC;IAEjE;;;;;OAKG;IACH,YACmB,QAAqB,EACrB,KAAqB,EACrB,gBAA6C,IAAI;QAFjD,aAAQ,GAAR,QAAQ,CAAa;QACrB,UAAK,GAAL,KAAK,CAAgB;QACrB,kBAAa,GAAb,aAAa,CAAoC;QAElE,2CAA2C;QAC3C,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;IACpC,CAAC;IAED,8DAA8D;IACtD,iBAAiB,CAA6E;IAEtG;;OAEG;IACH,oBAAoB,CAClB,EAA8E;QAE9E,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAyC;QACtD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,uDAAuD;IAEvD;;OAEG;IACH,WAAW,CAAC,QAAwB;QAClC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAChF,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,GAA2B;QAC5C,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,qDAAqD;IAErD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAa;QACpB,gBAAgB;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAElC,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,iCAAiC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uDAAuD;IAEvD;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,gBAAwB;QACvD,6DAA6D;QAC7D,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,wBAAwB;gBAC/D,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,GAAG,GAAG;gBACpD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,+BAA+B;gBACpF,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,GAAG,GAAG;gBAClE,CAAC,CAAC,gBAAgB,CAAC;YAErB,wCAAwC;YACxC,mBAAmB;YACnB,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7D,OAAO,GAAG,GAAG,6BAA6B,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CACV,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAChD,oCAAoC,CACrC,CAAC;gBACF,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC7C,CAAC,CAAC,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,yBAAyB;wBAC9D,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,GAAG,GAAG;wBACrD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACd,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC;YAEP,6CAA6C;YAC7C,uCAAuC;YACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa;gBAC3C,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa;gBACxC,CAAC,CAAC;;;;;;;;;;;;;;0BAcgB;gBAClB,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,gBAAgB,GAAG;;;6EAG8C,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;EAaxH,cAAc,GAAG,iBAAiB,GAAG,eAAe;;;KAGjD,aAAa;KACb,oBAAoB;aACZ,CAAC;YAER,MAAM,QAAQ,GAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC1E,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,IAAI,KAAK,CAAC,OAAO;oBAAE,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;YAClD,CAAC;YAED,YAAY;YACZ,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,eAAe,KAAK,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,gCAAgC,CAAC,CAAC;gBACvE,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAoG,eAAe,CAAC,CAAC;YAChJ,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACnF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvB,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBACtE,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,QAAQ,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAE3C,+BAA+B;YAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC9D,OAAO,UAAU,GAAG,0BAA0B,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,IAAI,cAAc,EAAE,CAAC;gBACnB,qCAAqC;gBACrC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,CAAC;gBAChG,cAAc,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBAClE,gDAAgD;gBAChD,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC7B,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,oCAAoC;YACpC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,kBAAkB;YAClD,MAAM,MAAM,GAAW;gBACrB,EAAE,EAAE,WAAW,SAAS,EAAE;gBAC1B,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,aAAa,CAAC,OAAO;gBAC7B,IAAI,EAAE,WAAW,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACxC,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,GAAG;gBACf,KAAK;aACN,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,uCAAuC;YACvC,uDAAuD;YACvD,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kDAAkD;IAElD;;;;;;OAMG;IACK,iBAAiB,CAAC,CAAS,EAAE,CAAS;QAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,OAAe;QACpC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC;YACvC,KAAK,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC;YACrC,OAAO,CAAC,CAAC,OAAO,qBAAqB,CAAC;QACxC,CAAC;IACH,CAAC;IAED,4CAA4C;IAE5C;;;;;;;;;;OAUG;IACK,YAAY,CAAC,IAAY;QAC/B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,aAAa,CAAC,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC;YACpD,KAAK,UAAU,CAAC;YAChB,KAAK,SAAS,CAAC;YACf,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,gBAAgB,CAAC,MAAM,CAAC;YACjC,KAAK,SAAS,CAAC,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;YAC7C,OAAO,CAAC,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,wBAAwB,CAAC,SAAiB;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;OAUG;IACK,qBAAqB,CAAC,UAAoB;QAChD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,gCAAgC;gBACrE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,GAAG,GAAG;gBAC5D,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,WAAW,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,cAAc,CACpB,SAAiB,EACjB,cAAsB,EACtB,SAAwD,EACxD,UAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,uBAAuB;YACvB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAC/E,qCAAqC;YACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAE9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;gBAC7B,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnC,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YACH,KAAK,EAAE,CAAC;YAER,yCAAyC;YACzC,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,UAAU,CAAC;wBACd,WAAW,EAAE,SAAS;wBACtB,UAAU,EAAE,cAAc;wBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,aAAa,EAAE,YAAY,CAAC,OAAO;qBACpC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,kDAAkD;IAElD;;;;OAIG;IACK,eAAe,CAAC,KAAa;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,gBAAgB;QAChB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QACtC,kBAAkB;QAClB,MAAM,eAAe,GAAG,mEAAmE,CAAC;QAC5F,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QACjD,OAAO,IAAI,CAAC,CAAC,YAAY;IAC3B,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,KAAa;QAC1C,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAErD,UAAU;QACV,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9E,YAAY;QACZ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAEhF,OAAO,IAAI,CAAC,CAAC,YAAY;IAC3B,CAAC;CACF"}
|
|
@@ -34,6 +34,8 @@ export interface SuggestOptions {
|
|
|
34
34
|
}
|
|
35
35
|
/** 关联推荐结果 */
|
|
36
36
|
export interface SuggestHit {
|
|
37
|
+
/** 记忆唯一标识(source:name 格式) */
|
|
38
|
+
id: string;
|
|
37
39
|
/** 记忆名称 */
|
|
38
40
|
name: string;
|
|
39
41
|
/** 来源标签 */
|
|
@@ -48,7 +50,7 @@ export interface SuggestHit {
|
|
|
48
50
|
/**
|
|
49
51
|
* 记忆顾问
|
|
50
52
|
*
|
|
51
|
-
* 从 MemoryInspector
|
|
53
|
+
* 从 MemoryInspector 拆分,负责基于记忆数据的分析计算:
|
|
52
54
|
* - sourceHealth():记忆源健康诊断(数量、score、新鲜度)
|
|
53
55
|
* - suggest():关联推荐(基于 score + 时效性 + 多样性)
|
|
54
56
|
*
|
|
@@ -74,7 +76,7 @@ export declare class MemoryAdvisor {
|
|
|
74
76
|
* - critical:avgScore < 0.2 或 30 天以上未访问
|
|
75
77
|
*
|
|
76
78
|
* 纯只读、同步、不调 LLM,与 stats() 互补(stats 只有数量,本方法有质量指标)。
|
|
77
|
-
*
|
|
79
|
+
* 使用 getAllSources() 发现所有 source 标签,替代全量 search。
|
|
78
80
|
*/
|
|
79
81
|
sourceHealth(): SourceHealthReport;
|
|
80
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAdvisor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"memoryAdvisor.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA0BnE,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpE,sBAAsB;AACtB,MAAM,WAAW,iBAAiB;IAChC,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yGAAyG;IACzG,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,6BAA6B;IAC7B,aAAa,EAAE,kBAAkB,CAAC;IAClC,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,aAAa;AACb,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC;;OAEG;gBAC0B,KAAK,EAAE,cAAc;IAIlD;;;;;;;;;;;;;OAaG;IACH,YAAY,IAAI,kBAAkB;IAiElC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,EAAE;CAoFpE"}
|