@zooique/memora 2.0.0 → 2.0.3
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.en.md +272 -0
- package/README.md +150 -38
- package/dist/agent/agent.d.ts +233 -58
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +651 -359
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +29 -13
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +79 -44
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +26 -1
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +73 -1
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/constants.d.ts +4 -0
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +4 -0
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +8 -0
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +7 -2
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/guardrail.d.ts +4 -2
- package/dist/agent/guardrail.d.ts.map +1 -1
- package/dist/agent/guardrail.js +13 -5
- package/dist/agent/guardrail.js.map +1 -1
- package/dist/agent/loop.d.ts +58 -14
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +184 -131
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +126 -22
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +239 -44
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -1
- package/dist/agent/managers/autoConfigRefiner.js +4 -8
- package/dist/agent/managers/autoConfigRefiner.js.map +1 -1
- package/dist/agent/managers/configManager.d.ts +87 -3
- package/dist/agent/managers/configManager.d.ts.map +1 -1
- package/dist/agent/managers/configManager.js +139 -2
- package/dist/agent/managers/configManager.js.map +1 -1
- package/dist/agent/managers/dedupManager.d.ts +169 -0
- package/dist/agent/managers/dedupManager.d.ts.map +1 -0
- package/dist/agent/managers/dedupManager.js +336 -0
- package/dist/agent/managers/dedupManager.js.map +1 -0
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -1
- package/dist/agent/managers/insightExtractor.js +11 -11
- package/dist/agent/managers/insightExtractor.js.map +1 -1
- package/dist/agent/managers/llmJudgeHelper.d.ts +38 -0
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
- package/dist/agent/managers/llmJudgeHelper.js +49 -0
- package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
- package/dist/agent/managers/memoryAdvisor.d.ts +3 -3
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
- package/dist/agent/managers/memoryAdvisor.js +53 -67
- package/dist/agent/managers/memoryAdvisor.js.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.d.ts +46 -5
- package/dist/agent/managers/memoryDecayScheduler.d.ts.map +1 -1
- package/dist/agent/managers/memoryDecayScheduler.js +127 -63
- package/dist/agent/managers/memoryDecayScheduler.js.map +1 -1
- package/dist/agent/managers/memoryGovernance.d.ts +56 -0
- package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
- package/dist/agent/managers/memoryGovernance.js +63 -0
- package/dist/agent/managers/memoryGovernance.js.map +1 -0
- package/dist/agent/managers/memoryInspector.d.ts +32 -157
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +70 -363
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/relationBuilder.js +2 -2
- package/dist/agent/managers/relationBuilder.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +6 -1
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +19 -22
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/streamAccumulator.d.ts +45 -0
- package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
- package/dist/agent/managers/streamAccumulator.js +40 -0
- package/dist/agent/managers/streamAccumulator.js.map +1 -0
- package/dist/agent/managers/textPolishManager.d.ts.map +1 -1
- package/dist/agent/managers/textPolishManager.js +4 -7
- package/dist/agent/managers/textPolishManager.js.map +1 -1
- package/dist/agent/managers/workProjection.d.ts +16 -1
- package/dist/agent/managers/workProjection.d.ts.map +1 -1
- package/dist/agent/managers/workProjection.js +48 -24
- package/dist/agent/managers/workProjection.js.map +1 -1
- package/dist/agent/toolExecutor.d.ts +22 -2
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +28 -3
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/types.d.ts +10 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/userFactExtractor.d.ts.map +1 -1
- package/dist/agent/userFactExtractor.js +7 -0
- package/dist/agent/userFactExtractor.js.map +1 -1
- package/dist/config/loader.d.ts +124 -236
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +273 -117
- package/dist/config/loader.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/embedding.d.ts +13 -1
- package/dist/llm/embedding.d.ts.map +1 -1
- package/dist/llm/embedding.js.map +1 -1
- package/dist/llm/factory.d.ts +19 -5
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +19 -37
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/openaiCompatible.d.ts.map +1 -1
- package/dist/llm/openaiCompatible.js +2 -9
- package/dist/llm/openaiCompatible.js.map +1 -1
- package/dist/logging/logger.d.ts +3 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +47 -50
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/governance.d.ts +50 -0
- package/dist/memory/governance.d.ts.map +1 -0
- package/dist/memory/governance.js +70 -0
- package/dist/memory/governance.js.map +1 -0
- package/dist/memory/hybridMerge.d.ts +0 -4
- package/dist/memory/hybridMerge.d.ts.map +1 -1
- package/dist/memory/hybridMerge.js +19 -4
- package/dist/memory/hybridMerge.js.map +1 -1
- package/dist/memory/inMemoryRelationStore.d.ts +7 -0
- package/dist/memory/inMemoryRelationStore.d.ts.map +1 -1
- package/dist/memory/inMemoryRelationStore.js +15 -0
- package/dist/memory/inMemoryRelationStore.js.map +1 -1
- package/dist/memory/inMemoryStorage.d.ts +36 -1
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +66 -16
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/loader.d.ts +2 -0
- package/dist/memory/loader.d.ts.map +1 -1
- package/dist/memory/loader.js +8 -1
- package/dist/memory/loader.js.map +1 -1
- package/dist/memory/lockManager.d.ts +7 -2
- package/dist/memory/lockManager.d.ts.map +1 -1
- package/dist/memory/lockManager.js +31 -5
- package/dist/memory/lockManager.js.map +1 -1
- package/dist/memory/projectManager.d.ts +2 -1
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +21 -3
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/projectRegistry.d.ts +34 -1
- package/dist/memory/projectRegistry.d.ts.map +1 -1
- package/dist/memory/projectRegistry.js +99 -22
- package/dist/memory/projectRegistry.js.map +1 -1
- package/dist/memory/recall.d.ts +16 -0
- package/dist/memory/recall.d.ts.map +1 -1
- package/dist/memory/recall.js +33 -18
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/relationStore.d.ts +20 -3
- package/dist/memory/relationStore.d.ts.map +1 -1
- package/dist/memory/sourceValidation.d.ts +11 -0
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +24 -2
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +26 -1
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/store.d.ts +22 -1
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +58 -20
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.d.ts +44 -31
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +63 -24
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/userProfile.d.ts +32 -8
- package/dist/memory/userProfile.d.ts.map +1 -1
- package/dist/memory/userProfile.js +105 -44
- package/dist/memory/userProfile.js.map +1 -1
- package/dist/memory/vectorStore.d.ts +16 -22
- package/dist/memory/vectorStore.d.ts.map +1 -1
- package/dist/memory/vectorStore.js +49 -22
- package/dist/memory/vectorStore.js.map +1 -1
- package/dist/persona/personaManager.d.ts +36 -87
- package/dist/persona/personaManager.d.ts.map +1 -1
- package/dist/persona/personaManager.js +131 -230
- package/dist/persona/personaManager.js.map +1 -1
- package/dist/skill/skillManager.d.ts +11 -57
- package/dist/skill/skillManager.d.ts.map +1 -1
- package/dist/skill/skillManager.js +46 -142
- package/dist/skill/skillManager.js.map +1 -1
- package/dist/skill/types.d.ts +2 -3
- package/dist/skill/types.d.ts.map +1 -1
- package/dist/utils/configResourceManager.d.ts +111 -0
- package/dist/utils/configResourceManager.d.ts.map +1 -0
- package/dist/utils/configResourceManager.js +148 -0
- package/dist/utils/configResourceManager.js.map +1 -0
- package/dist/utils/errors.d.ts +17 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +19 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +83 -6
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +23 -0
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +4 -2
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/math.d.ts +11 -0
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +17 -0
- package/dist/utils/math.js.map +1 -1
- package/dist/utils/segmenter.d.ts +0 -10
- package/dist/utils/segmenter.d.ts.map +1 -1
- package/dist/utils/segmenter.js +10 -1
- package/dist/utils/segmenter.js.map +1 -1
- package/docs/memora-api-reference.md +1235 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +808 -0
- package/package.json +39 -22
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { SOURCE_LABELS } from '../../memory/types.js';
|
|
2
2
|
import { ONE_DAY_MS } from '../../memory/recall.js';
|
|
3
3
|
import { nowIso } from '../../utils/time.js';
|
|
4
|
-
|
|
4
|
+
import { roundTo } from '../../utils/math.js';
|
|
5
|
+
// LLM judge 三件套高阶函数(流式累积 + parseLlmJson + configError 异常封装)
|
|
6
|
+
import { judgeWithLlm } from '../../agent/managers/llmJudgeHelper.js';
|
|
5
7
|
import { byScoreDesc } from '../../utils/array.js';
|
|
6
|
-
import { parseLlmJson } from '../../utils/json.js';
|
|
7
8
|
import { truncate } from '../../utils/strings.js';
|
|
8
9
|
import { logger } from '../../logging/logger.js';
|
|
10
|
+
// LLM 治理源列表(v2 REPEAT-1 闭环,消除 5 处独立维护的 [INSIGHT, PROFILE, WORK_PROJECTION] 列表)
|
|
11
|
+
import { GOVERNANCE_SOURCES } from '../../memory/governance.js';
|
|
9
12
|
// ─── 常量 ────────────────────────────────────────────────
|
|
10
13
|
/** 关联推荐:每个 source 采样 top-N 条 */
|
|
11
14
|
const SUGGEST_TOP_PER_SOURCE = 3;
|
|
@@ -25,8 +28,7 @@ const SOURCE_HEALTH_THRESHOLDS = {
|
|
|
25
28
|
WARNING_DAYS: 7,
|
|
26
29
|
};
|
|
27
30
|
// ─── L3 冲突检测常量 ────────────────────────────────────
|
|
28
|
-
|
|
29
|
-
const CONFLICT_SOURCES = [SOURCE_LABELS.INSIGHT, SOURCE_LABELS.PROFILE, SOURCE_LABELS.WORK_PROJECTION];
|
|
31
|
+
// 注:CONFLICT_SOURCES 已统一为 GOVERNANCE_SOURCES(governance.ts),消除 5 处独立维护
|
|
30
32
|
/** 单个 source 内参与配对的记忆条数上限(控制 O(n²) 配对规模) */
|
|
31
33
|
const CONFLICT_CANDIDATES_PER_SOURCE = 10;
|
|
32
34
|
/** 单次 LLM 冲突判断的候选对数上限 */
|
|
@@ -115,8 +117,8 @@ export class MemoryAdvisor {
|
|
|
115
117
|
entries.push({
|
|
116
118
|
source,
|
|
117
119
|
count,
|
|
118
|
-
avgScore:
|
|
119
|
-
daysSinceLastAccess:
|
|
120
|
+
avgScore: roundTo(avgScore, 3),
|
|
121
|
+
daysSinceLastAccess: roundTo(daysSinceLastAccess, 1),
|
|
120
122
|
status,
|
|
121
123
|
});
|
|
122
124
|
}
|
|
@@ -159,9 +161,8 @@ export class MemoryAdvisor {
|
|
|
159
161
|
}
|
|
160
162
|
}
|
|
161
163
|
}
|
|
162
|
-
// 补充:按 source
|
|
163
|
-
const
|
|
164
|
-
for (const source of knownSources) {
|
|
164
|
+
// 补充:按 source 分组采样,确保来源多样性(治理源列表统一来自 governance.ts)
|
|
165
|
+
for (const source of GOVERNANCE_SOURCES) {
|
|
165
166
|
const count = this.index.countBySource(source);
|
|
166
167
|
if (count > 0 && !excludeSources.includes(source)) {
|
|
167
168
|
const memories = this.index.getBySource(source);
|
|
@@ -212,7 +213,7 @@ export class MemoryAdvisor {
|
|
|
212
213
|
id: memory.id,
|
|
213
214
|
name: memory.name,
|
|
214
215
|
source: memory.source,
|
|
215
|
-
relevance:
|
|
216
|
+
relevance: roundTo(relevance, 2),
|
|
216
217
|
contentPreview: truncate(memory.content, ADVISOR_PREVIEW_LEN),
|
|
217
218
|
reason,
|
|
218
219
|
}));
|
|
@@ -254,7 +255,7 @@ export class MemoryAdvisor {
|
|
|
254
255
|
}
|
|
255
256
|
// ── 步骤 1:加载候选记忆(每个 source 取 top 10 条,按 score 降序) ──
|
|
256
257
|
const candidates = [];
|
|
257
|
-
for (const source of
|
|
258
|
+
for (const source of GOVERNANCE_SOURCES) {
|
|
258
259
|
const memories = this.index.getBySource(source);
|
|
259
260
|
// 按 score 降序取 top N
|
|
260
261
|
const top = memories.sort(byScoreDesc).slice(0, CONFLICT_CANDIDATES_PER_SOURCE);
|
|
@@ -343,12 +344,12 @@ export class MemoryAdvisor {
|
|
|
343
344
|
return pairs.slice(0, CONFLICT_PAIR_LIMIT);
|
|
344
345
|
}
|
|
345
346
|
/**
|
|
346
|
-
* 调用 LLM
|
|
347
|
+
* 调用 LLM 判断两条记忆是否存在语义冲突
|
|
347
348
|
*
|
|
348
349
|
* 使用结构化 JSON 输出(hasConflict + conflictDescription + recommendation + reason),
|
|
349
|
-
*
|
|
350
|
+
* 流式累积 + parseLlmJson + 异常封装委托给 llmJudgeHelper.judgeWithLlm。
|
|
350
351
|
*
|
|
351
|
-
* LLM
|
|
352
|
+
* LLM 失败时抛出 MemoraError(由 detectConflicts 捕获并降级跳过此对)。
|
|
352
353
|
*
|
|
353
354
|
* @param memoryA 记忆 A
|
|
354
355
|
* @param memoryB 记忆 B
|
|
@@ -357,22 +358,7 @@ export class MemoryAdvisor {
|
|
|
357
358
|
*/
|
|
358
359
|
async judgeConflict(memoryA, memoryB, signal) {
|
|
359
360
|
const messages = buildConflictMessages(memoryA, memoryB);
|
|
360
|
-
|
|
361
|
-
// 流式累积模式(与 TextPolishManager / SessionArchiver 一致)
|
|
362
|
-
for await (const chunk of this.backgroundProvider.chat(messages, {
|
|
363
|
-
maxTokens: 300,
|
|
364
|
-
temperature: 0,
|
|
365
|
-
timeoutMs: CONFLICT_TIMEOUT_MS,
|
|
366
|
-
signal,
|
|
367
|
-
})) {
|
|
368
|
-
if (chunk.content)
|
|
369
|
-
llmResponse += chunk.content;
|
|
370
|
-
}
|
|
371
|
-
// 解析 LLM 响应(JSON 格式)
|
|
372
|
-
const parsed = parseLlmJson(llmResponse.trim());
|
|
373
|
-
if (!parsed) {
|
|
374
|
-
throw new Error('LLM 冲突判断返回非法 JSON');
|
|
375
|
-
}
|
|
361
|
+
const parsed = await judgeWithLlm(this.backgroundProvider, messages, { maxTokens: 300, timeoutMs: CONFLICT_TIMEOUT_MS, signal }, 'LLM 冲突判断返回非法 JSON');
|
|
376
362
|
// 校验 recommendation 字段(允许 'a' / 'b' / 'both',其他值忽略)
|
|
377
363
|
const recRaw = parsed.recommendation;
|
|
378
364
|
const recommendation = recRaw === 'a' || recRaw === 'b' || recRaw === 'both' ? recRaw : undefined;
|
|
@@ -410,47 +396,47 @@ function buildConflictMessages(memoryA, memoryB) {
|
|
|
410
396
|
return [
|
|
411
397
|
{
|
|
412
398
|
role: 'system',
|
|
413
|
-
content: `你是记忆冲突检测助手。判断给定的两条记忆是否存在语义冲突(表达互相矛盾的信息)。
|
|
414
|
-
|
|
415
|
-
判断规则:
|
|
416
|
-
- 存在冲突 = 两条记忆表达的信息互相矛盾,不能同时为真(如"喜欢 X" vs "讨厌 X")
|
|
417
|
-
- 无冲突 = 两条记忆信息互补、独立或不相关
|
|
418
|
-
- 不同维度不构成冲突(如"擅长后端" vs "偏好前端"是不同维度,非冲突)
|
|
419
|
-
- 时间演化不构成冲突(如"用 React 16" vs "用 React 18"是版本升级,非冲突)
|
|
420
|
-
|
|
421
|
-
输出 JSON 格式:
|
|
422
|
-
{
|
|
423
|
-
"hasConflict": true/false,
|
|
424
|
-
"conflictDescription": "冲突点描述(仅 hasConflict=true 时提供)",
|
|
425
|
-
"recommendation": "a/b/both(建议保留哪条:a=保留A,b=保留B,both=都保留需用户裁决)",
|
|
426
|
-
"reason": "判断理由(简短说明)"
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
示例:
|
|
430
|
-
输入 A: "用户喜欢使用 JavaScript"
|
|
431
|
-
输入 B: "用户讨厌 JavaScript"
|
|
432
|
-
输出: {"hasConflict": true, "conflictDescription": "对 JavaScript 的态度矛盾", "recommendation": "both", "reason": "需用户裁决当前偏好"}
|
|
433
|
-
|
|
434
|
-
输入 A: "用户擅长后端开发"
|
|
435
|
-
输入 B: "用户偏好前端开发"
|
|
399
|
+
content: `你是记忆冲突检测助手。判断给定的两条记忆是否存在语义冲突(表达互相矛盾的信息)。
|
|
400
|
+
|
|
401
|
+
判断规则:
|
|
402
|
+
- 存在冲突 = 两条记忆表达的信息互相矛盾,不能同时为真(如"喜欢 X" vs "讨厌 X")
|
|
403
|
+
- 无冲突 = 两条记忆信息互补、独立或不相关
|
|
404
|
+
- 不同维度不构成冲突(如"擅长后端" vs "偏好前端"是不同维度,非冲突)
|
|
405
|
+
- 时间演化不构成冲突(如"用 React 16" vs "用 React 18"是版本升级,非冲突)
|
|
406
|
+
|
|
407
|
+
输出 JSON 格式:
|
|
408
|
+
{
|
|
409
|
+
"hasConflict": true/false,
|
|
410
|
+
"conflictDescription": "冲突点描述(仅 hasConflict=true 时提供)",
|
|
411
|
+
"recommendation": "a/b/both(建议保留哪条:a=保留A,b=保留B,both=都保留需用户裁决)",
|
|
412
|
+
"reason": "判断理由(简短说明)"
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
示例:
|
|
416
|
+
输入 A: "用户喜欢使用 JavaScript"
|
|
417
|
+
输入 B: "用户讨厌 JavaScript"
|
|
418
|
+
输出: {"hasConflict": true, "conflictDescription": "对 JavaScript 的态度矛盾", "recommendation": "both", "reason": "需用户裁决当前偏好"}
|
|
419
|
+
|
|
420
|
+
输入 A: "用户擅长后端开发"
|
|
421
|
+
输入 B: "用户偏好前端开发"
|
|
436
422
|
输出: {"hasConflict": false, "reason": "擅长领域与偏好领域是不同维度,非冲突"}`,
|
|
437
423
|
},
|
|
438
424
|
{
|
|
439
425
|
role: 'user',
|
|
440
|
-
content: `请判断以下两条记忆是否存在语义冲突:
|
|
441
|
-
|
|
442
|
-
记忆 A(score: ${memoryA.score}):
|
|
443
|
-
- 名称:${memoryA.name}
|
|
444
|
-
- 来源:${memoryA.source}
|
|
445
|
-
- 创建时间:${memoryA.createdAt}
|
|
446
|
-
- 内容:${contentA}
|
|
447
|
-
|
|
448
|
-
记忆 B(score: ${memoryB.score}):
|
|
449
|
-
- 名称:${memoryB.name}
|
|
450
|
-
- 来源:${memoryB.source}
|
|
451
|
-
- 创建时间:${memoryB.createdAt}
|
|
452
|
-
- 内容:${contentB}
|
|
453
|
-
|
|
426
|
+
content: `请判断以下两条记忆是否存在语义冲突:
|
|
427
|
+
|
|
428
|
+
记忆 A(score: ${memoryA.score}):
|
|
429
|
+
- 名称:${memoryA.name}
|
|
430
|
+
- 来源:${memoryA.source}
|
|
431
|
+
- 创建时间:${memoryA.createdAt}
|
|
432
|
+
- 内容:${contentA}
|
|
433
|
+
|
|
434
|
+
记忆 B(score: ${memoryB.score}):
|
|
435
|
+
- 名称:${memoryB.name}
|
|
436
|
+
- 来源:${memoryB.source}
|
|
437
|
+
- 创建时间:${memoryB.createdAt}
|
|
438
|
+
- 内容:${contentB}
|
|
439
|
+
|
|
454
440
|
请输出 JSON 判断结果。`,
|
|
455
441
|
},
|
|
456
442
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryAdvisor.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryAdvisor.js","sourceRoot":"","sources":["../../../src/agent/managers/memoryAdvisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,21 @@ export declare class MemoryDecayScheduler {
|
|
|
99
99
|
private decayTimer;
|
|
100
100
|
/** 衰减目标存储(start 时注入,stop 时释放) */
|
|
101
101
|
private storage;
|
|
102
|
+
/**
|
|
103
|
+
* L2 时效性评估的 AbortController
|
|
104
|
+
*
|
|
105
|
+
* FIX-P0-1:stop() 时 abort,让正在进行的 evaluateTimeliness 尽快结束,
|
|
106
|
+
* 防止 close 后 LLM 回调 upsert 已关闭的 storage。
|
|
107
|
+
* 每次 evaluateTimeliness 启动时重置为新的 controller。
|
|
108
|
+
*/
|
|
109
|
+
private evaluateAbortController;
|
|
110
|
+
/**
|
|
111
|
+
* 当前正在进行的 evaluateTimeliness Promise(null 表示无)
|
|
112
|
+
*
|
|
113
|
+
* FIX-P0-1:close() 通过 awaitInflight() 等待此 Promise 完成,
|
|
114
|
+
* 确保关闭时所有 L2 评估的 upsert 都落在 storage 关闭前。
|
|
115
|
+
*/
|
|
116
|
+
private inflightEvaluate;
|
|
102
117
|
/** 衰减执行次数(每次 runOnce 实际执行 +1) */
|
|
103
118
|
private metricDecayRunCount;
|
|
104
119
|
/** 累计衰减记忆数(score 被调低的记忆条数总和) */
|
|
@@ -116,9 +131,24 @@ export declare class MemoryDecayScheduler {
|
|
|
116
131
|
/**
|
|
117
132
|
* 停止定期衰减,释放资源
|
|
118
133
|
*
|
|
119
|
-
*
|
|
134
|
+
* FIX-P0-1:清理定时器 + abort 正在进行的 L2 时效性评估 + 释放 storage 引用,
|
|
135
|
+
* 防止 close 后回调触发 upsert 已关闭的 storage。
|
|
136
|
+
*
|
|
137
|
+
* 注意:stop() 不等待 inflightEvaluate 完成(避免阻塞 close 流程),
|
|
138
|
+
* 调用方如需等待应使用 awaitInflight()。abort 后 LLM 调用会快速失败,
|
|
139
|
+
* evaluateTimeliness 内部的 try/catch 会捕获并降级返回。
|
|
120
140
|
*/
|
|
121
141
|
stop(): void;
|
|
142
|
+
/**
|
|
143
|
+
* 等待正在进行的 L2 时效性评估完成
|
|
144
|
+
*
|
|
145
|
+
* FIX-P0-1:Agent.close() 在 stop() 后调用此方法,确保所有 inflight 的
|
|
146
|
+
* evaluateTimeliness Promise 完成(要么正常返回,要么因 abort 快速 reject),
|
|
147
|
+
* 防止 close 后 LLM 回调 upsert 已关闭的 storage。
|
|
148
|
+
*
|
|
149
|
+
* @returns 完成 Promise,无 inflight 时立即 resolve
|
|
150
|
+
*/
|
|
151
|
+
awaitInflight(): Promise<void>;
|
|
122
152
|
/**
|
|
123
153
|
* 执行一次记忆衰减
|
|
124
154
|
*
|
|
@@ -156,17 +186,29 @@ export declare class MemoryDecayScheduler {
|
|
|
156
186
|
* - 单条 LLM 失败不阻塞后续评估
|
|
157
187
|
* - backgroundProvider / index 未注入时静默跳过(向后兼容)
|
|
158
188
|
*
|
|
159
|
-
*
|
|
189
|
+
* FIX-P0-1:每次启动评估创建新的 AbortController,注册到 inflightEvaluate。
|
|
190
|
+
* stop() 时 abort 让 LLM 调用快速失败,awaitInflight() 等待 Promise 完成。
|
|
191
|
+
* 外部 signal 仍可与内部 abort 信号同时使用(任一触发即取消)。
|
|
192
|
+
*
|
|
193
|
+
* @param signal 可选的外部 AbortSignal(与内部 abort 信号叠加,任一触发即取消)
|
|
160
194
|
* @returns 评估报告
|
|
161
195
|
*/
|
|
162
196
|
evaluateTimeliness(signal?: AbortSignal): Promise<TimelinessReport>;
|
|
197
|
+
/**
|
|
198
|
+
* 实际执行 L2 时效性评估的核心逻辑
|
|
199
|
+
*
|
|
200
|
+
* 从 evaluateTimeliness 拆出,便于 inflightEvaluate Promise 注册和清理。
|
|
201
|
+
*
|
|
202
|
+
* @param combinedSignal 已叠加内部 + 外部的 AbortSignal
|
|
203
|
+
*/
|
|
204
|
+
private doEvaluateTimeliness;
|
|
163
205
|
/**
|
|
164
206
|
* 调用 LLM 判断单条记忆的时效性
|
|
165
207
|
*
|
|
166
208
|
* 使用结构化 JSON 输出(isOutdated + reason),
|
|
167
|
-
*
|
|
209
|
+
* 流式累积 + parseLlmJson + 异常封装委托给 llmJudgeHelper.judgeWithLlm。
|
|
168
210
|
*
|
|
169
|
-
* LLM
|
|
211
|
+
* LLM 失败时抛出 MemoraError(由 evaluateTimeliness 捕获并降级跳过此条)。
|
|
170
212
|
*
|
|
171
213
|
* @param memory 待评估的记忆
|
|
172
214
|
* @param signal 可选的 AbortSignal
|
|
@@ -178,7 +220,6 @@ export declare class MemoryDecayScheduler {
|
|
|
178
220
|
*
|
|
179
221
|
* 安全设计:
|
|
180
222
|
* - 不物理删除,仅降低 score,保留可恢复性
|
|
181
|
-
* - 通过 upsert 覆盖原记忆(保持 id/source/name/createdAt 不变)
|
|
182
223
|
* - 更新 accessedAt,标记最近被处理过
|
|
183
224
|
*
|
|
184
225
|
* @param memory 待降级的过时记忆
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryDecayScheduler.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryDecayScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"memoryDecayScheduler.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/memoryDecayScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,14 +33,14 @@ import { safeSetInterval, clearSafeInterval } from '../../utils/safeTimer.js';
|
|
|
33
33
|
import { logger } from '../../logging/logger.js';
|
|
34
34
|
import { toError } from '../../utils/errors.js';
|
|
35
35
|
import { nowIso } from '../../utils/time.js';
|
|
36
|
-
import { SOURCE_LABELS } from '../../memory/types.js';
|
|
37
36
|
import { NOOP_TRACER, TRACE_SPANS } from '../../agent/tracer.js';
|
|
38
|
-
//
|
|
39
|
-
import {
|
|
37
|
+
// LLM judge 三件套高阶函数(流式累积 + parseLlmJson + configError 异常封装)
|
|
38
|
+
import { judgeWithLlm } from '../../agent/managers/llmJudgeHelper.js';
|
|
40
39
|
import { truncate } from '../../utils/strings.js';
|
|
40
|
+
// LLM 治理源列表(v2 REPEAT-1 闭环,消除 5 处独立维护的 [INSIGHT, PROFILE, WORK_PROJECTION] 列表)
|
|
41
|
+
import { GOVERNANCE_SOURCES } from '../../memory/governance.js';
|
|
41
42
|
// ─── L2 时效性评估常量 ────────────────────────────────────
|
|
42
|
-
|
|
43
|
-
const TIMELINESS_SOURCES = [SOURCE_LABELS.INSIGHT, SOURCE_LABELS.PROFILE, SOURCE_LABELS.WORK_PROJECTION];
|
|
43
|
+
// 注:TIMELINESS_SOURCES 已统一为 GOVERNANCE_SOURCES(governance.ts),消除 5 处独立维护
|
|
44
44
|
/** 低分记忆阈值(score 低于此值的记忆进入 LLM 时效性评估) */
|
|
45
45
|
const TIMELINESS_LOW_SCORE_THRESHOLD = 0.3;
|
|
46
46
|
/** 单次时效性评估的记忆条数上限(控制 LLM 调用量) */
|
|
@@ -74,6 +74,21 @@ export class MemoryDecayScheduler {
|
|
|
74
74
|
decayTimer = null;
|
|
75
75
|
/** 衰减目标存储(start 时注入,stop 时释放) */
|
|
76
76
|
storage = null;
|
|
77
|
+
/**
|
|
78
|
+
* L2 时效性评估的 AbortController
|
|
79
|
+
*
|
|
80
|
+
* FIX-P0-1:stop() 时 abort,让正在进行的 evaluateTimeliness 尽快结束,
|
|
81
|
+
* 防止 close 后 LLM 回调 upsert 已关闭的 storage。
|
|
82
|
+
* 每次 evaluateTimeliness 启动时重置为新的 controller。
|
|
83
|
+
*/
|
|
84
|
+
evaluateAbortController = null;
|
|
85
|
+
/**
|
|
86
|
+
* 当前正在进行的 evaluateTimeliness Promise(null 表示无)
|
|
87
|
+
*
|
|
88
|
+
* FIX-P0-1:close() 通过 awaitInflight() 等待此 Promise 完成,
|
|
89
|
+
* 确保关闭时所有 L2 评估的 upsert 都落在 storage 关闭前。
|
|
90
|
+
*/
|
|
91
|
+
inflightEvaluate = null;
|
|
77
92
|
// ─── 衰减指标统计字段 ──────────────────────────────────
|
|
78
93
|
/** 衰减执行次数(每次 runOnce 实际执行 +1) */
|
|
79
94
|
metricDecayRunCount = 0;
|
|
@@ -104,15 +119,44 @@ export class MemoryDecayScheduler {
|
|
|
104
119
|
/**
|
|
105
120
|
* 停止定期衰减,释放资源
|
|
106
121
|
*
|
|
107
|
-
*
|
|
122
|
+
* FIX-P0-1:清理定时器 + abort 正在进行的 L2 时效性评估 + 释放 storage 引用,
|
|
123
|
+
* 防止 close 后回调触发 upsert 已关闭的 storage。
|
|
124
|
+
*
|
|
125
|
+
* 注意:stop() 不等待 inflightEvaluate 完成(避免阻塞 close 流程),
|
|
126
|
+
* 调用方如需等待应使用 awaitInflight()。abort 后 LLM 调用会快速失败,
|
|
127
|
+
* evaluateTimeliness 内部的 try/catch 会捕获并降级返回。
|
|
108
128
|
*/
|
|
109
129
|
stop() {
|
|
110
130
|
if (this.decayTimer) {
|
|
111
131
|
clearSafeInterval(this.decayTimer);
|
|
112
132
|
this.decayTimer = null;
|
|
113
133
|
}
|
|
134
|
+
// FIX-P0-1:abort 正在进行的 L2 评估,让 LLM 调用快速失败
|
|
135
|
+
if (this.evaluateAbortController) {
|
|
136
|
+
this.evaluateAbortController.abort();
|
|
137
|
+
this.evaluateAbortController = null;
|
|
138
|
+
}
|
|
114
139
|
this.storage = null;
|
|
115
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* 等待正在进行的 L2 时效性评估完成
|
|
143
|
+
*
|
|
144
|
+
* FIX-P0-1:Agent.close() 在 stop() 后调用此方法,确保所有 inflight 的
|
|
145
|
+
* evaluateTimeliness Promise 完成(要么正常返回,要么因 abort 快速 reject),
|
|
146
|
+
* 防止 close 后 LLM 回调 upsert 已关闭的 storage。
|
|
147
|
+
*
|
|
148
|
+
* @returns 完成 Promise,无 inflight 时立即 resolve
|
|
149
|
+
*/
|
|
150
|
+
async awaitInflight() {
|
|
151
|
+
if (this.inflightEvaluate) {
|
|
152
|
+
try {
|
|
153
|
+
await this.inflightEvaluate;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// abort 导致的 reject 是预期行为,吞掉即可
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
116
160
|
/**
|
|
117
161
|
* 执行一次记忆衰减
|
|
118
162
|
*
|
|
@@ -129,8 +173,8 @@ export class MemoryDecayScheduler {
|
|
|
129
173
|
// 衰减 Span:记录衰减执行过程,补全衰减可观测性缺口
|
|
130
174
|
const decaySpan = this.tracer.startSpan(TRACE_SPANS.DECAY);
|
|
131
175
|
try {
|
|
132
|
-
|
|
133
|
-
const decayedCount = this.storage.decayScores(
|
|
176
|
+
// 治理源列表统一来自 governance.ts(v2 REPEAT-1 闭环)
|
|
177
|
+
const decayedCount = this.storage.decayScores([...GOVERNANCE_SOURCES], new Date());
|
|
134
178
|
logger.debug({ decayedCount }, '记忆衰减完成');
|
|
135
179
|
// 衰减指标统计:累计执行次数和衰减记忆数
|
|
136
180
|
this.metricDecayRunCount++;
|
|
@@ -181,7 +225,11 @@ export class MemoryDecayScheduler {
|
|
|
181
225
|
* - 单条 LLM 失败不阻塞后续评估
|
|
182
226
|
* - backgroundProvider / index 未注入时静默跳过(向后兼容)
|
|
183
227
|
*
|
|
184
|
-
*
|
|
228
|
+
* FIX-P0-1:每次启动评估创建新的 AbortController,注册到 inflightEvaluate。
|
|
229
|
+
* stop() 时 abort 让 LLM 调用快速失败,awaitInflight() 等待 Promise 完成。
|
|
230
|
+
* 外部 signal 仍可与内部 abort 信号同时使用(任一触发即取消)。
|
|
231
|
+
*
|
|
232
|
+
* @param signal 可选的外部 AbortSignal(与内部 abort 信号叠加,任一触发即取消)
|
|
185
233
|
* @returns 评估报告
|
|
186
234
|
*/
|
|
187
235
|
async evaluateTimeliness(signal) {
|
|
@@ -194,9 +242,41 @@ export class MemoryDecayScheduler {
|
|
|
194
242
|
skippedReason: 'backgroundProvider 或 index 未注入',
|
|
195
243
|
};
|
|
196
244
|
}
|
|
245
|
+
// FIX-P0-1:每次评估创建新的 AbortController,stop() 可主动 abort
|
|
246
|
+
this.evaluateAbortController = new AbortController();
|
|
247
|
+
const internalSignal = this.evaluateAbortController.signal;
|
|
248
|
+
// 外部 signal 与内部 signal 叠加:任一 abort 即触发
|
|
249
|
+
// 使用 AbortSignal.any 需 Node 18+,兼容方案是手动转发
|
|
250
|
+
const combinedSignal = signal
|
|
251
|
+
? AbortSignal.any([internalSignal, signal])
|
|
252
|
+
: internalSignal;
|
|
253
|
+
// 注册到 inflightEvaluate,让 awaitInflight() 可等待
|
|
254
|
+
const promise = this.doEvaluateTimeliness(combinedSignal);
|
|
255
|
+
this.inflightEvaluate = promise;
|
|
256
|
+
try {
|
|
257
|
+
return await promise;
|
|
258
|
+
}
|
|
259
|
+
finally {
|
|
260
|
+
// 评估完成(成功/失败/abort)后清理引用
|
|
261
|
+
if (this.inflightEvaluate === promise) {
|
|
262
|
+
this.inflightEvaluate = null;
|
|
263
|
+
}
|
|
264
|
+
if (this.evaluateAbortController?.signal === internalSignal) {
|
|
265
|
+
this.evaluateAbortController = null;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* 实际执行 L2 时效性评估的核心逻辑
|
|
271
|
+
*
|
|
272
|
+
* 从 evaluateTimeliness 拆出,便于 inflightEvaluate Promise 注册和清理。
|
|
273
|
+
*
|
|
274
|
+
* @param combinedSignal 已叠加内部 + 外部的 AbortSignal
|
|
275
|
+
*/
|
|
276
|
+
async doEvaluateTimeliness(signal) {
|
|
197
277
|
// ── 步骤 1:加载低分记忆 ──
|
|
198
278
|
const lowScoreMemories = [];
|
|
199
|
-
for (const source of
|
|
279
|
+
for (const source of GOVERNANCE_SOURCES) {
|
|
200
280
|
const memories = this.index.getBySource(source);
|
|
201
281
|
// 筛选低分记忆(score 低于阈值)
|
|
202
282
|
lowScoreMemories.push(...memories.filter((m) => m.score < TIMELINESS_LOW_SCORE_THRESHOLD));
|
|
@@ -216,6 +296,9 @@ export class MemoryDecayScheduler {
|
|
|
216
296
|
const demotedIds = [];
|
|
217
297
|
let outdatedCount = 0;
|
|
218
298
|
for (const memory of limited) {
|
|
299
|
+
// abort 后提前退出循环,避免无谓的 LLM 调用
|
|
300
|
+
if (signal.aborted)
|
|
301
|
+
break;
|
|
219
302
|
try {
|
|
220
303
|
const verdict = await this.judgeTimeliness(memory, signal);
|
|
221
304
|
if (verdict.isOutdated) {
|
|
@@ -226,7 +309,7 @@ export class MemoryDecayScheduler {
|
|
|
226
309
|
}
|
|
227
310
|
}
|
|
228
311
|
catch (err) {
|
|
229
|
-
// 单条 LLM
|
|
312
|
+
// 单条 LLM 判断失败不阻塞后续评估(abort 导致的失败也走此分支)
|
|
230
313
|
logger.warn({ err, memoryId: memory.id }, '时效性评估:LLM 判断失败,跳过此条');
|
|
231
314
|
}
|
|
232
315
|
}
|
|
@@ -240,9 +323,9 @@ export class MemoryDecayScheduler {
|
|
|
240
323
|
* 调用 LLM 判断单条记忆的时效性
|
|
241
324
|
*
|
|
242
325
|
* 使用结构化 JSON 输出(isOutdated + reason),
|
|
243
|
-
*
|
|
326
|
+
* 流式累积 + parseLlmJson + 异常封装委托给 llmJudgeHelper.judgeWithLlm。
|
|
244
327
|
*
|
|
245
|
-
* LLM
|
|
328
|
+
* LLM 失败时抛出 MemoraError(由 evaluateTimeliness 捕获并降级跳过此条)。
|
|
246
329
|
*
|
|
247
330
|
* @param memory 待评估的记忆
|
|
248
331
|
* @param signal 可选的 AbortSignal
|
|
@@ -250,22 +333,7 @@ export class MemoryDecayScheduler {
|
|
|
250
333
|
*/
|
|
251
334
|
async judgeTimeliness(memory, signal) {
|
|
252
335
|
const messages = buildTimelinessMessages(memory);
|
|
253
|
-
|
|
254
|
-
// 流式累积模式(与 TextPolishManager / SessionArchiver 一致)
|
|
255
|
-
for await (const chunk of this.backgroundProvider.chat(messages, {
|
|
256
|
-
maxTokens: 200,
|
|
257
|
-
temperature: 0,
|
|
258
|
-
timeoutMs: TIMELINESS_TIMEOUT_MS,
|
|
259
|
-
signal,
|
|
260
|
-
})) {
|
|
261
|
-
if (chunk.content)
|
|
262
|
-
llmResponse += chunk.content;
|
|
263
|
-
}
|
|
264
|
-
// 解析 LLM 响应(JSON 格式)
|
|
265
|
-
const parsed = parseLlmJson(llmResponse.trim());
|
|
266
|
-
if (!parsed) {
|
|
267
|
-
throw new Error('LLM 时效性判断返回非法 JSON');
|
|
268
|
-
}
|
|
336
|
+
const parsed = await judgeWithLlm(this.backgroundProvider, messages, { maxTokens: 200, timeoutMs: TIMELINESS_TIMEOUT_MS, signal }, 'LLM 时效性判断返回非法 JSON');
|
|
269
337
|
return {
|
|
270
338
|
memoryId: memory.id,
|
|
271
339
|
isOutdated: parsed.isOutdated === true,
|
|
@@ -277,18 +345,14 @@ export class MemoryDecayScheduler {
|
|
|
277
345
|
*
|
|
278
346
|
* 安全设计:
|
|
279
347
|
* - 不物理删除,仅降低 score,保留可恢复性
|
|
280
|
-
* - 通过 upsert 覆盖原记忆(保持 id/source/name/createdAt 不变)
|
|
281
348
|
* - 更新 accessedAt,标记最近被处理过
|
|
282
349
|
*
|
|
283
350
|
* @param memory 待降级的过时记忆
|
|
284
351
|
*/
|
|
285
352
|
demoteOutdatedMemory(memory) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
accessedAt: nowIso(),
|
|
290
|
-
};
|
|
291
|
-
this.index.upsert(demoted);
|
|
353
|
+
// MIND2-L3:改用 setScore 原子操作,消除 spread 旧快照覆盖其他字段
|
|
354
|
+
// 原模式 spread 旧快照后整条 upsert,会覆盖期间被 boost/decay 改的 content 等字段
|
|
355
|
+
this.index.setScore(memory.id, TIMELINESS_OUTDATED_SCORE, nowIso());
|
|
292
356
|
}
|
|
293
357
|
}
|
|
294
358
|
// ─── L2 时效性评估 Prompt 模板(模块级函数,与 buildDedupMessages 同模式) ───
|
|
@@ -311,37 +375,37 @@ function buildTimelinessMessages(memory) {
|
|
|
311
375
|
return [
|
|
312
376
|
{
|
|
313
377
|
role: 'system',
|
|
314
|
-
content: `你是记忆时效性评估助手。判断给定的记忆是否已过时(信息已失效或不再适用)。
|
|
315
|
-
|
|
316
|
-
判断规则:
|
|
317
|
-
- 已过时 = 信息明确失效(如旧版本号、已废弃的 API、已变更的偏好)
|
|
318
|
-
- 未过时 = 信息仍然有效(如通用编程原则、长期偏好、历史事件记录)
|
|
319
|
-
- 不确定时倾向"未过时"(避免误删有效记忆)
|
|
320
|
-
|
|
321
|
-
输出 JSON 格式:
|
|
322
|
-
{
|
|
323
|
-
"isOutdated": true/false,
|
|
324
|
-
"reason": "判断理由(简短说明)"
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
示例:
|
|
328
|
-
输入: "用户使用 React 16 进行开发"(createdAt: 2020-01-01)
|
|
329
|
-
输出: {"isOutdated": true, "reason": "React 16 已是旧版本,当前普遍使用 React 18+"}
|
|
330
|
-
|
|
331
|
-
输入: "用户偏好函数式编程风格"
|
|
378
|
+
content: `你是记忆时效性评估助手。判断给定的记忆是否已过时(信息已失效或不再适用)。
|
|
379
|
+
|
|
380
|
+
判断规则:
|
|
381
|
+
- 已过时 = 信息明确失效(如旧版本号、已废弃的 API、已变更的偏好)
|
|
382
|
+
- 未过时 = 信息仍然有效(如通用编程原则、长期偏好、历史事件记录)
|
|
383
|
+
- 不确定时倾向"未过时"(避免误删有效记忆)
|
|
384
|
+
|
|
385
|
+
输出 JSON 格式:
|
|
386
|
+
{
|
|
387
|
+
"isOutdated": true/false,
|
|
388
|
+
"reason": "判断理由(简短说明)"
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
示例:
|
|
392
|
+
输入: "用户使用 React 16 进行开发"(createdAt: 2020-01-01)
|
|
393
|
+
输出: {"isOutdated": true, "reason": "React 16 已是旧版本,当前普遍使用 React 18+"}
|
|
394
|
+
|
|
395
|
+
输入: "用户偏好函数式编程风格"
|
|
332
396
|
输出: {"isOutdated": false, "reason": "编程风格偏好通常是长期的"}`,
|
|
333
397
|
},
|
|
334
398
|
{
|
|
335
399
|
role: 'user',
|
|
336
|
-
content: `请判断以下记忆是否已过时:
|
|
337
|
-
|
|
338
|
-
记忆详情:
|
|
339
|
-
- 名称:${memory.name}
|
|
340
|
-
- 来源:${memory.source}
|
|
341
|
-
- 当前 score:${memory.score}(低分,可能因长期未访问而衰减)
|
|
342
|
-
- 创建时间:${memory.createdAt}
|
|
343
|
-
- 内容:${content}
|
|
344
|
-
|
|
400
|
+
content: `请判断以下记忆是否已过时:
|
|
401
|
+
|
|
402
|
+
记忆详情:
|
|
403
|
+
- 名称:${memory.name}
|
|
404
|
+
- 来源:${memory.source}
|
|
405
|
+
- 当前 score:${memory.score}(低分,可能因长期未访问而衰减)
|
|
406
|
+
- 创建时间:${memory.createdAt}
|
|
407
|
+
- 内容:${content}
|
|
408
|
+
|
|
345
409
|
请输出 JSON 判断结果。`,
|
|
346
410
|
},
|
|
347
411
|
];
|