dsh-layered-memory 0.5.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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +186 -0
  3. package/assets/readme/hero.svg +58 -0
  4. package/cordis.patch.yml +16 -0
  5. package/dist/client.js +1066 -0
  6. package/dist/config.d.ts +263 -0
  7. package/dist/config.js +65 -0
  8. package/dist/hooks/capture.d.ts +16 -0
  9. package/dist/hooks/capture.js +160 -0
  10. package/dist/hooks/recall.d.ts +31 -0
  11. package/dist/hooks/recall.js +201 -0
  12. package/dist/index.d.ts +190 -0
  13. package/dist/index.js +234 -0
  14. package/dist/llm.d.ts +32 -0
  15. package/dist/llm.js +128 -0
  16. package/dist/pipeline/l1.d.ts +19 -0
  17. package/dist/pipeline/l1.js +226 -0
  18. package/dist/pipeline/l2.d.ts +13 -0
  19. package/dist/pipeline/l2.js +77 -0
  20. package/dist/pipeline/l3.d.ts +15 -0
  21. package/dist/pipeline/l3.js +72 -0
  22. package/dist/pipeline/runner.d.ts +44 -0
  23. package/dist/pipeline/runner.js +132 -0
  24. package/dist/prompts/l1-dedup.d.ts +20 -0
  25. package/dist/prompts/l1-dedup.js +244 -0
  26. package/dist/prompts/l1-extraction.d.ts +18 -0
  27. package/dist/prompts/l1-extraction.js +434 -0
  28. package/dist/prompts/persona.d.ts +23 -0
  29. package/dist/prompts/persona.js +234 -0
  30. package/dist/prompts/scene.d.ts +33 -0
  31. package/dist/prompts/scene.js +408 -0
  32. package/dist/settings.d.ts +27 -0
  33. package/dist/settings.js +73 -0
  34. package/dist/stats.d.ts +46 -0
  35. package/dist/stats.js +234 -0
  36. package/dist/store/bm25.d.ts +19 -0
  37. package/dist/store/bm25.js +62 -0
  38. package/dist/store/embedding.d.ts +68 -0
  39. package/dist/store/embedding.js +133 -0
  40. package/dist/store/io.d.ts +13 -0
  41. package/dist/store/io.js +75 -0
  42. package/dist/store/l0.d.ts +28 -0
  43. package/dist/store/l0.js +148 -0
  44. package/dist/store/l1.d.ts +70 -0
  45. package/dist/store/l1.js +239 -0
  46. package/dist/store/persona.d.ts +15 -0
  47. package/dist/store/persona.js +60 -0
  48. package/dist/store/scenes.d.ts +23 -0
  49. package/dist/store/scenes.js +150 -0
  50. package/dist/store/search-utils.d.ts +22 -0
  51. package/dist/store/search-utils.js +71 -0
  52. package/dist/store/session-modes.d.ts +24 -0
  53. package/dist/store/session-modes.js +102 -0
  54. package/dist/store/sqlite.d.ts +121 -0
  55. package/dist/store/sqlite.js +922 -0
  56. package/dist/store/state.d.ts +35 -0
  57. package/dist/store/state.js +62 -0
  58. package/dist/tools/index.d.ts +21 -0
  59. package/dist/tools/index.js +169 -0
  60. package/dist/types.d.ts +86 -0
  61. package/dist/types.js +7 -0
  62. package/dist/util/filelog.d.ts +4 -0
  63. package/dist/util/filelog.js +43 -0
  64. package/dist/util/sanitize.d.ts +10 -0
  65. package/dist/util/sanitize.js +66 -0
  66. package/dist/util/text.d.ts +11 -0
  67. package/dist/util/text.js +43 -0
  68. package/package.json +80 -0
@@ -0,0 +1,132 @@
1
+ import { runExtraction } from './l1.js';
2
+ import { runSceneConsolidation } from './l2.js';
3
+ import { runPersona } from './l3.js';
4
+ import { errDetail } from '../util/filelog.js';
5
+ export class MemoryRunner {
6
+ ctx;
7
+ cfg;
8
+ stores;
9
+ logger;
10
+ live;
11
+ queue = Promise.resolve();
12
+ pending = { auto: [], chat: [], work: [] };
13
+ background = [];
14
+ states;
15
+ afterRun;
16
+ constructor(ctx, cfg, stores, logger, live) {
17
+ this.ctx = ctx;
18
+ this.cfg = cfg;
19
+ this.stores = stores;
20
+ this.logger = logger;
21
+ this.live = live;
22
+ }
23
+ async init() {
24
+ await this.stores.state.load();
25
+ this.states = {
26
+ chat: this.stores.state.forFamily('chat'),
27
+ work: this.stores.state.forFamily('work'),
28
+ };
29
+ if (this.stores.state.didMigrate) {
30
+ this.logger.info('[memory] state.json 已迁移为 v2 分族格式(旧数据归 chat 桶)');
31
+ await this.stores.state.save();
32
+ }
33
+ }
34
+ /** L1 抽取待重试的消息条数(状态面板用)。 */
35
+ get pendingCount() {
36
+ return this.pending.auto.length + this.pending.chat.length + this.pending.work.length;
37
+ }
38
+ /** 管线跑完一轮后的回调(用于召回缓存失效)。 */
39
+ setAfterRun(fn) {
40
+ this.afterRun = fn;
41
+ }
42
+ /** 一轮对话结束后入队(L0 落盘 + 蒸馏触发判定)。 */
43
+ enqueue(sessionId, messages, mode) {
44
+ this.queue = this.queue
45
+ .then(() => this.runTurn(sessionId, messages, mode))
46
+ .catch((err) => {
47
+ this.logger.warn(`[memory] 管线失败(已兜底): ${errDetail(err)}`);
48
+ });
49
+ }
50
+ async runTurn(sessionId, messages, mode) {
51
+ const turnStart = Date.now();
52
+ this.logger.info(`[memory] 蒸馏管线开始(session=${sessionId},mode=${mode},本轮 ${messages.length} 条消息,待重试 ${this.pendingCount} 条)`);
53
+ // ── L0:原始对话已由 capture 在 turn/end 即时落盘(不排蒸馏队列,防慢 LLM 阻塞/退出丢消息) ──
54
+ // ── L1:抽取 + 去重(按档分桶,失败按桶保留待重试) ──
55
+ let newRecords = [];
56
+ const distillOn = this.live.get().enabled && this.live.get().distill;
57
+ if (this.cfg.extract.enabled && distillOn) {
58
+ const bucket = this.pending[mode];
59
+ bucket.push(...messages);
60
+ if (bucket.length > 200)
61
+ bucket.splice(0, bucket.length - 200);
62
+ try {
63
+ const t = Date.now();
64
+ const result = await runExtraction(this.ctx, this.cfg, this.stores.l1, this.states, bucket, this.background, this.logger, mode);
65
+ if (!result.skipped)
66
+ this.pending[mode] = [];
67
+ this.background = [...this.background.slice(-this.cfg.extract.backgroundMessages), ...messages];
68
+ newRecords = result.newRecords;
69
+ this.logger.info(`[memory] L1 阶段完成(${Date.now() - t}ms)`);
70
+ }
71
+ catch (err) {
72
+ // 保留 pending,下次重试;但防止无限堆积
73
+ if (this.pending[mode].length > 200)
74
+ this.pending[mode] = [];
75
+ this.logger.warn(`[memory] L1 抽取失败(mode=${mode},pending=${this.pending[mode].length}): ${errDetail(err)}`);
76
+ }
77
+ // L1 计数推进后立即落盘:L2/L3 失败或进程中途退出不得回滚阈值进度
78
+ // (记录已入库但计数丢失会让该族 L2 永远差一截,state 与 DB 脱节)
79
+ try {
80
+ await this.stores.state.save();
81
+ }
82
+ catch (err) {
83
+ this.logger.warn(`[memory] 状态保存失败: ${errDetail(err)}`);
84
+ }
85
+ }
86
+ // ── L2/L3:按记录族各自判定与执行 ──
87
+ if (this.cfg.l2.enabled && distillOn) {
88
+ for (const family of ['chat', 'work']) {
89
+ const familyRecords = newRecords.filter((r) => (r.family ?? 'chat') === family);
90
+ if (familyRecords.length === 0)
91
+ continue;
92
+ const fstate = this.states[family];
93
+ if (fstate.newMemoriesSinceL2 >= this.cfg.l2.minNewMemories) {
94
+ try {
95
+ const t = Date.now();
96
+ const result = await runSceneConsolidation(this.ctx, this.cfg, this.stores.scenes[family], familyRecords, this.logger, family);
97
+ fstate.lastL2At = Date.now();
98
+ fstate.newMemoriesSinceL2 = 0;
99
+ if (result.personaRequestedReason)
100
+ fstate.personaRequestedReason = result.personaRequestedReason;
101
+ this.logger.info(`[memory] L2 阶段完成(family=${family},${Date.now() - t}ms)`);
102
+ }
103
+ catch (err) {
104
+ this.logger.warn(`[memory] L2 场景整合失败(family=${family}): ${errDetail(err)}`);
105
+ }
106
+ }
107
+ else {
108
+ this.logger.debug?.(`[memory] L2 跳过(family=${family},本族新增 ${familyRecords.length} 条,累计未整合 ${fstate.newMemoriesSinceL2}/${this.cfg.l2.minNewMemories})`);
109
+ }
110
+ }
111
+ }
112
+ if (this.cfg.l3.enabled && distillOn) {
113
+ for (const family of ['chat', 'work']) {
114
+ try {
115
+ await runPersona(this.ctx, this.cfg, this.stores.scenes[family], this.stores.persona[family], this.states[family], this.logger, family);
116
+ }
117
+ catch (err) {
118
+ this.logger.warn(`[memory] L3 画像蒸馏失败(family=${family}): ${errDetail(err)}`);
119
+ }
120
+ }
121
+ }
122
+ // ── 持久化状态 ──
123
+ try {
124
+ await this.stores.state.save();
125
+ }
126
+ catch (err) {
127
+ this.logger.warn(`[memory] 状态保存失败: ${errDetail(err)}`);
128
+ }
129
+ this.logger.info(`[memory] 蒸馏管线结束(本轮新增 ${newRecords.length} 条,总耗时 ${Date.now() - turnStart}ms)`);
130
+ this.afterRun?.();
131
+ }
132
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * L1 冲突检测(去重)Prompt(移植自 MemoryCore src/core/prompts/l1-dedup.ts)。
3
+ * 批量比较新记忆与候选池,支持跨类型合并与多目标操作。
4
+ * auto 档用合并版(词表七类全开 + 工作记忆判断倾向)。
5
+ */
6
+ import type { ExtractedMemory, ExtractMode, MemoryRecord } from '../types.js';
7
+ export declare const CONFLICT_DETECTION_SYSTEM_PROMPT = "\u4F60\u662F\u8BB0\u5FC6\u51B2\u7A81\u68C0\u6D4B\u5668\u3002\u6279\u91CF\u6BD4\u8F83\u591A\u6761\u3010\u65B0\u8BB0\u5FC6\u3011\u4E0E\u3010\u7EDF\u4E00\u5019\u9009\u8BB0\u5FC6\u6C60\u3011\u4E2D\u7684\u5DF2\u6709\u8BB0\u5FC6\uFF0C\u9010\u6761\u51B3\u5B9A\u5982\u4F55\u5904\u7406\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A`merged_content` \u4F7F\u7528\u4E0E\u5019\u9009\u6C60\u4E2D\u5DF2\u6709\u8BB0\u5FC6\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001record_id\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n## \u6838\u5FC3\u89C4\u5219\n\n- **\u8DE8 type \u5408\u5E76**\uFF1A\u4E0D\u540C type\uFF08persona / episodic / instruction / work_fact / work_task / work_method / work_artifact\uFF09\u7684\u8BB0\u5FC6\u5982\u679C\u8BED\u4E49\u4E0A\u63CF\u8FF0\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6\uFF0C**\u53EF\u4EE5\u5408\u5E76**\u3002\n- **\u591A\u5BF9\u591A\u5408\u5E76**\uFF1A\u4E00\u6761\u65B0\u8BB0\u5FC6\u53EF\u4EE5\u540C\u65F6\u66FF\u6362/\u5408\u5E76\u5019\u9009\u6C60\u4E2D\u7684**\u591A\u6761**\u5DF2\u6709\u8BB0\u5FC6\uFF08\u901A\u8FC7 target_ids \u6570\u7EC4\u6307\u5B9A\uFF09\u3002\n- \u5408\u5E76\u540E\u4F60\u5FC5\u987B\u5224\u65AD\u65B0\u8BB0\u5FC6\u7684\u6700\u4F73 type\uFF08merged_type\uFF09\u3002\n\n## \u5224\u65AD\u903B\u8F91\n\n1. **\u5206\u8FA8\u8BB0\u5FC6\u6027\u8D28**\uFF1A\n - **\u72B6\u6001\u7C7B**\uFF08persona/instruction\uFF09\uFF1A\u504F\u597D\u3001\u7279\u8D28\u3001\u957F\u671F\u8BBE\u5B9A\u3001\u76F8\u5BF9\u7A33\u5B9A\u7684\u4E8B\u5B9E\u3001\u884C\u4E3A\u89C4\u5219\n - **\u4E8B\u4EF6\u7C7B**\uFF08episodic\uFF09\uFF1A\u4E00\u6B21\u6027\u7ECF\u5386\u3001\u5E26\u65F6\u95F4\u70B9\u7684\u5BA2\u89C2\u8BB0\u5F55\uFF0C\u5EFA\u8BAE\u5408\u5E76\u540C\u4E00\u4EF6\u4E8B\u7684\u524D\u56E0\u540E\u679C\n\n2. **\u5224\u65AD\u662F\u5426\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6**\uFF1A\u4E3B\u4F53\u76F8\u540C\u3001\u4E3B\u9898\u4E00\u81F4\u3001\u65F6\u95F4\u63A5\u8FD1\u3001scene_name \u76F8\u4F3C\n\n3. **\u9009\u62E9\u52A8\u4F5C**\uFF1A\n - \"store\"\uFF1A\u89C6\u4E3A\u65B0\u4FE1\u606F\uFF0C\u65B0\u589E\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"skip\"\uFF1A\u5DF2\u6709\u8BB0\u5FC6\u66F4\u597D\uFF0C\u65B0\u8BB0\u5FC6\u65E0\u589E\u91CF\u6216\u66F4\u6A21\u7CCA\uFF0C\u5FFD\u7565\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"update\"\uFF1A\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6\uFF0C\u65B0\u8BB0\u5FC6\u5728\u5185\u5BB9\u6216\u65F6\u95F4\u4E0A\u66F4\u4F18\uFF08\u66F4\u5177\u4F53\u3001\u66F4\u665A\u6216\u7EA0\u9519\uFF09\uFF0C\u4EE5\u65B0\u8BB0\u5FC6\u4E3A\u4E3B\u8986\u76D6\u65E7\u8BB0\u5FC6\uFF0C\u53EF\u4FDD\u7559\u65E7\u8BB0\u5FC6\u4E2D\u4ECD\u6B63\u786E\u7684\u7EC6\u8282\u3002\n - \"merge\"\uFF1A\u540C\u4E00\u4E8B\u5B9E\u6216\u540C\u4E00\u6F14\u5316\u8FC7\u7A0B\uFF0C\u591A\u6761\u8BB0\u5FC6\u4FE1\u606F\u4E92\u8865\u4E14\u4E0D\u77DB\u76FE\uFF0C\u5408\u5E76\u6210\u4E00\u6761\u66F4\u5B8C\u6574\u8BB0\u5FC6\uFF0C\u4FE1\u606F\u5C3D\u91CF\u4E0D\u5197\u4F59\u3002\n\n4. **\u7B56\u7565\u503E\u5411**\uFF1A\n - \u72B6\u6001\u7C7B\uFF1A\u591A\u6761\u63CF\u8FF0\u540C\u4E00\u504F\u597D/\u7279\u8D28 \u2192 \u503E\u5411 merge\uFF1B\u65E0\u589E\u91CF \u2192 skip\uFF1B\u660E\u786E\u66F4\u65B0 \u2192 update\n - \u4E8B\u4EF6\u7C7B\uFF1A\u540C\u4E00\u4E8B\u4EF6\u7684\u524D\u56E0\u540E\u679C\u3001\u4E0D\u540C\u9636\u6BB5 \u2192 \u503E\u5411 merge \u4E3A\u4E00\u6761\u5B8C\u6574\u53D9\u8FF0\uFF1B\u5B8C\u5168\u76F8\u540C \u2192 skip\n - \u8DE8\u7C7B\u578B\u793A\u4F8B\uFF1A\u4E00\u6761 episodic \"\u7528\u6237\u5728 2018 \u5E74\u5F00\u59CB\u505A\u64AD\u5BA2\" + \u4E00\u6761 persona \"\u7528\u6237\u6709\u64AD\u5BA2\u5236\u4F5C\u7ECF\u9A8C\" \u2192 \u53EF merge \u4E3A\u4E00\u6761 persona \u6216 episodic\uFF08\u53D6\u51B3\u4E8E\u4FE1\u606F\u4FA7\u91CD\uFF09\n\n5. **timestamp \u5904\u7406**\uFF1A\n - merge / update \u65F6\uFF0Cmerged_timestamps \u5E94\u5305\u542B**\u6240\u6709\u76F8\u5173\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\u5E76\u96C6**\uFF08\u53BB\u91CD\u6392\u5E8F\uFF09\n - \u8FD9\u6837\u53EF\u4EE5\u4FDD\u7559\u4E8B\u4EF6\u53D1\u751F\u7684\u5B8C\u6574\u65F6\u95F4\u7EBF\n\n## \u8F93\u51FA\u683C\u5F0F\n\n\u4E25\u683C\u8F93\u51FA JSON \u6570\u7EC4\uFF0C\u6BCF\u4E2A\u5143\u7D20\u5BF9\u5E94\u4E00\u6761\u65B0\u8BB0\u5FC6\u7684\u51B3\u7B56\u3002\u4E0D\u8F93\u51FA\u4EFB\u4F55\u5176\u4ED6\u5185\u5BB9\uFF1A\n\n[\n {\n \"record_id\": \"\u65B0\u8BB0\u5FC6\u7684 record_id\",\n \"action\": \"store|update|skip|merge\",\n \"target_ids\": [\"\u8981\u5220\u9664\u7684\u5019\u9009\u8BB0\u5FC6 record_id 1\", \"record_id 2\"],\n \"merged_content\": \"\u5408\u5E76/\u66F4\u65B0\u540E\u7684\u8BB0\u5FC6\u5185\u5BB9\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_type\": \"\u5408\u5E76\u540E\u7684\u6700\u4F73 type\uFF1Apersona|episodic|instruction|work_fact|work_task|work_method|work_artifact\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_priority\": 85,\n \"merged_timestamps\": [\"\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\uFF0C\u5305\u542B\u6240\u6709\u65B0\u65E7\u8BB0\u5FC6\u65F6\u95F4\u6233\u7684\u5E76\u96C6\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\"]\n }\n]\n\n\u5B57\u6BB5\u8BF4\u660E\uFF1A\n- target_ids\uFF1A\u8981\u5220\u9664\u66FF\u6362\u7684\u65E7\u8BB0\u5FC6 ID **\u6570\u7EC4**\uFF08\u53EF\u4EE5 1 \u6761\u6216\u591A\u6761\uFF09\u3002store/skip \u65F6\u7701\u7565\u6216\u4E3A\u7A7A\u3002\n- merged_content\uFF1Amerge/update \u65F6\u7684\u6700\u7EC8\u8BB0\u5FC6\u6587\u672C\u3002store/skip \u65F6\u7701\u7565\u3002\n- merged_type\uFF1Amerge/update \u540E\u8BB0\u5FC6\u5E94\u5F52\u5C5E\u7684 type\u3002\u6839\u636E\u5408\u5E76\u540E\u5185\u5BB9\u672C\u8D28\u5224\u65AD\u3002\n- merged_priority\uFF1Amerge/update \u540E\u7684\u65B0\u4F18\u5148\u7EA7\uFF080-100 \u6574\u6570\uFF0Cmerge/update \u65F6\u5FC5\u586B\uFF09\u3002\u5408\u5E76\u540E\u4FE1\u606F\u66F4\u5B8C\u6574\u3001\u66F4\u786E\u5B9A\uFF0C\u901A\u5E38\u5E94**\u914C\u60C5\u63D0\u5347** priority\uFF08\u4F8B\u5982\u4E24\u6761 priority 70 \u7684\u8BB0\u5FC6\u5408\u5E76\u540E\u53EF\u63D0\u5347\u5230 80\uFF09\u3002\u53C2\u8003\u6807\u51C6\uFF1A80-100\uFF08\u6838\u5FC3\u7279\u8D28/\u91CD\u8981\u4E8B\u4EF6\uFF09\uFF0C60-79\uFF08\u4E00\u822C\u504F\u597D/\u666E\u901A\u6D3B\u52A8\uFF09\uFF0C<60\uFF08\u6B21\u8981\u4FE1\u606F\uFF09\u3002\n- merged_timestamps\uFF1A\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\u3002\u6536\u96C6\u65B0\u8BB0\u5FC6 + \u6240\u6709\u88AB\u5408\u5E76\u65E7\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\uFF0C\u53BB\u91CD\u6392\u5E8F\u3002";
8
+ export declare const WORK_CONFLICT_DETECTION_SYSTEM_PROMPT = "\u4F60\u662F\u56E2\u961F\u5DE5\u4F5C\u8BB0\u5FC6\u51B2\u7A81\u68C0\u6D4B\u5668\u3002\u6279\u91CF\u6BD4\u8F83\u591A\u6761\u3010\u65B0\u8BB0\u5FC6\u3011\u4E0E\u3010\u7EDF\u4E00\u5019\u9009\u8BB0\u5FC6\u6C60\u3011\u4E2D\u7684\u5DF2\u6709\u8BB0\u5FC6\uFF0C\u9010\u6761\u51B3\u5B9A\u5982\u4F55\u5904\u7406\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A`merged_content` \u4F7F\u7528\u4E0E\u5019\u9009\u6C60\u4E2D\u5DF2\u6709\u8BB0\u5FC6\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001record_id\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n## \u6838\u5FC3\u89C4\u5219\n\n- **\u8DE8 type \u5408\u5E76**\uFF1A\u4E0D\u540C type\uFF08work_fact / work_task / work_method / work_artifact\uFF09\u7684\u8BB0\u5FC6\u5982\u679C\u8BED\u4E49\u4E0A\u63CF\u8FF0\u540C\u4E00\u5DE5\u4F5C\u5BF9\u8C61\u3001\u4EFB\u52A1\u3001\u65B9\u6CD5\u6216\u8D44\u4EA7\uFF0C**\u53EF\u4EE5\u5408\u5E76**\u3002\n- **\u591A\u5BF9\u591A\u5408\u5E76**\uFF1A\u4E00\u6761\u65B0\u8BB0\u5FC6\u53EF\u4EE5\u540C\u65F6\u66FF\u6362/\u5408\u5E76\u5019\u9009\u6C60\u4E2D\u7684**\u591A\u6761**\u5DF2\u6709\u8BB0\u5FC6\uFF08\u901A\u8FC7 target_ids \u6570\u7EC4\u6307\u5B9A\uFF09\u3002\n- \u5408\u5E76\u540E\u4F60\u5FC5\u987B\u5224\u65AD\u65B0\u8BB0\u5FC6\u7684\u6700\u4F73 type\uFF08merged_type\uFF09\u3002\n- \u8BB0\u5FC6\u9ED8\u8BA4\u4F1A\u5728\u9879\u76EE\u56E2\u961F\u5185\u5171\u4EAB\uFF0C\u5408\u5E76\u5185\u5BB9\u5E94\u53EA\u4FDD\u7559\u5DE5\u4F5C\u76F8\u5173\u4FE1\u606F\u3002\n\n## \u5224\u65AD\u903B\u8F91\n\n1. **\u5206\u8FA8\u8BB0\u5FC6\u6027\u8D28**\uFF1A\n - **\u5DE5\u4F5C\u4E8B\u5B9E\u7C7B\uFF08work_fact\uFF09**\uFF1A\u9879\u76EE\u4E8B\u5B9E\u3001\u9700\u6C42\u3001\u51B3\u7B56\u3001\u72B6\u6001\u3001\u98CE\u9669\u3001\u7EA6\u675F\u3001\u5B9E\u9A8C\u7ED3\u679C\u3001\u5BA2\u6237\u53CD\u9988\u3002\n - **\u5DE5\u4F5C\u4EFB\u52A1\u7C7B\uFF08work_task\uFF09**\uFF1A\u5F85\u529E\u3001owner\u3001deadline\u3001\u4E0B\u4E00\u6B65\u8BA1\u5212\u3001\u4EFB\u52A1\u72B6\u6001\u53D8\u5316\u3002\n - **\u5DE5\u4F5C\u65B9\u6CD5\u7C7B\uFF08work_method\uFF09**\uFF1ASOP\u3001\u7981\u5FCC\u3001\u539F\u5219\u3001\u7ECF\u9A8C\u3001\u8BBE\u8BA1\u601D\u8DEF\u3001\u5224\u65AD\u6807\u51C6\u3001Agent \u884C\u4E3A\u89C4\u5219\u3002\n - **\u5DE5\u4F5C\u8D44\u4EA7\u7C7B\uFF08work_artifact\uFF09**\uFF1A\u6587\u6863\u3001PR\u3001Issue\u3001Prompt\u3001\u62A5\u544A\u3001\u4EE3\u7801\u5206\u652F\u3001\u8BBE\u8BA1\u7A3F\u3001\u94FE\u63A5\u7B49\u3002\n\n2. **\u5224\u65AD\u662F\u5426\u540C\u4E00\u5DE5\u4F5C\u5BF9\u8C61/\u6F14\u5316\u8FC7\u7A0B**\uFF1A\n - \u540C\u4E00\u9879\u76EE\u3001\u6A21\u5757\u3001\u9700\u6C42\u3001\u4EFB\u52A1\u3001\u98CE\u9669\u3001\u51B3\u7B56\u3001\u65B9\u6CD5\u3001\u8D44\u4EA7\uFF0C\u4E14 scene_name \u6216\u8BED\u4E49\u9AD8\u5EA6\u76F8\u4F3C\u3002\n - \u540C\u4E00\u4EFB\u52A1\u7684\u4E0D\u540C\u9636\u6BB5\u3001\u540C\u4E00\u65B9\u6CD5\u7684\u8865\u5145\u3001\u540C\u4E00\u8D44\u4EA7\u7684\u7248\u672C\u6216\u7528\u9014\u53D8\u5316\uFF0C\u901A\u5E38\u53EF\u4EE5\u5408\u5E76\u3002\n - \u4EC5\u5C5E\u4E8E\u540C\u4E00\u5927\u9879\u76EE\u4F46\u8BA8\u8BBA\u5BF9\u8C61\u4E0D\u540C\uFF0C\u4E0D\u5E94\u5F3A\u884C\u5408\u5E76\u3002\n\n3. **\u9009\u62E9\u52A8\u4F5C**\uFF1A\n - \"store\"\uFF1A\u89C6\u4E3A\u65B0\u4FE1\u606F\uFF0C\u65B0\u589E\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"skip\"\uFF1A\u5DF2\u6709\u8BB0\u5FC6\u66F4\u597D\uFF0C\u65B0\u8BB0\u5FC6\u65E0\u589E\u91CF\u6216\u66F4\u6A21\u7CCA\uFF0C\u5FFD\u7565\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"update\"\uFF1A\u540C\u4E00\u5DE5\u4F5C\u5BF9\u8C61\uFF0C\u65B0\u8BB0\u5FC6\u66F4\u5177\u4F53\u3001\u66F4\u65B0\u3001\u66F4\u6743\u5A01\u6216\u7EA0\u6B63\u65E7\u4FE1\u606F\uFF0C\u4EE5\u65B0\u8BB0\u5FC6\u4E3A\u4E3B\u8986\u76D6\u65E7\u8BB0\u5FC6\uFF0C\u53EF\u4FDD\u7559\u65E7\u8BB0\u5FC6\u4E2D\u4ECD\u6B63\u786E\u7684\u7EC6\u8282\u3002\n - \"merge\"\uFF1A\u540C\u4E00\u5DE5\u4F5C\u5BF9\u8C61\u6216\u540C\u4E00\u6F14\u5316\u8FC7\u7A0B\uFF0C\u65B0\u65E7\u8BB0\u5FC6\u4E92\u8865\u4E14\u4E0D\u77DB\u76FE\uFF0C\u5408\u5E76\u6210\u4E00\u6761\u66F4\u5B8C\u6574\u8BB0\u5FC6\uFF0C\u4FE1\u606F\u5C3D\u91CF\u4E0D\u5197\u4F59\u3002\n\n4. **\u7B56\u7565\u503E\u5411**\uFF1A\n - work_fact\uFF1A\u540C\u4E00\u4E8B\u5B9E/\u51B3\u7B56/\u72B6\u6001\u7684\u8865\u5145\u6216\u4FEE\u6B63 \u2192 \u503E\u5411 update \u6216 merge\u3002\n - work_task\uFF1A\u540C\u4E00\u4EFB\u52A1\u7684 owner\u3001deadline\u3001\u72B6\u6001\u53D8\u5316 \u2192 \u503E\u5411 update\uFF1B\u8865\u5145\u4F9D\u8D56\u6216\u9A8C\u6536\u6807\u51C6 \u2192 \u503E\u5411 merge\u3002\n - work_method\uFF1A\u540C\u4E00 SOP\u3001\u7981\u5FCC\u3001\u539F\u5219\u3001\u7ECF\u9A8C\u7684\u8865\u5145 \u2192 \u503E\u5411 merge\uFF1B\u66F4\u6E05\u6670\u901A\u7528\u7684\u8868\u8FF0 \u2192 \u503E\u5411 update\u3002\n - work_artifact\uFF1A\u540C\u4E00\u6587\u6863\u3001PR\u3001Prompt\u3001\u62A5\u544A\u7B49\u8D44\u4EA7\u7684\u7528\u9014\u3001\u7248\u672C\u3001\u94FE\u63A5\u8865\u5145 \u2192 \u503E\u5411 merge \u6216 update\u3002\n - \u8DE8\u7C7B\u578B\u793A\u4F8B\uFF1A\u4E00\u6761 work_fact \"\u56E2\u961F\u51B3\u5B9A L1 type \u4FDD\u6301\u5C11\u91CF\u9AD8\u5C42\u5206\u7C7B\" + \u4E00\u6761 work_method \"L1 type \u4E0D\u5B9C\u8FC7\u7EC6\uFF0C\u5426\u5219\u5F71\u54CD L2/L3 \u805A\u5408\" \u2192 \u53EF merge \u4E3A work_method\u3002\n\n5. **timestamp \u5904\u7406**\uFF1A\n - merge / update \u65F6\uFF0Cmerged_timestamps \u5E94\u5305\u542B**\u6240\u6709\u76F8\u5173\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\u5E76\u96C6**\uFF08\u53BB\u91CD\u6392\u5E8F\uFF09\u3002\n - \u8FD9\u6837\u53EF\u4EE5\u4FDD\u7559\u5DE5\u4F5C\u4E8B\u5B9E\u3001\u4EFB\u52A1\u6216\u65B9\u6CD5\u6F14\u5316\u7684\u5B8C\u6574\u65F6\u95F4\u7EBF\u3002\n\n## \u8F93\u51FA\u683C\u5F0F\n\n\u4E25\u683C\u8F93\u51FA JSON \u6570\u7EC4\uFF0C\u6BCF\u4E2A\u5143\u7D20\u5BF9\u5E94\u4E00\u6761\u65B0\u8BB0\u5FC6\u7684\u51B3\u7B56\u3002\u4E0D\u8F93\u51FA\u4EFB\u4F55\u5176\u4ED6\u5185\u5BB9\uFF1A\n\n[\n {\n \"record_id\": \"\u65B0\u8BB0\u5FC6\u7684 record_id\",\n \"action\": \"store|update|skip|merge\",\n \"target_ids\": [\"\u8981\u5220\u9664\u7684\u5019\u9009\u8BB0\u5FC6 record_id 1\", \"record_id 2\"],\n \"merged_content\": \"\u5408\u5E76/\u66F4\u65B0\u540E\u7684\u8BB0\u5FC6\u5185\u5BB9\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_type\": \"\u5408\u5E76\u540E\u7684\u6700\u4F73 type\uFF1Awork_fact|work_task|work_method|work_artifact\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_priority\": 85,\n \"merged_timestamps\": [\"\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\uFF0C\u5305\u542B\u6240\u6709\u65B0\u65E7\u8BB0\u5FC6\u65F6\u95F4\u6233\u7684\u5E76\u96C6\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\"]\n }\n]\n\n\u5B57\u6BB5\u8BF4\u660E\uFF1A\n- target_ids\uFF1A\u8981\u5220\u9664\u66FF\u6362\u7684\u65E7\u8BB0\u5FC6 ID **\u6570\u7EC4**\uFF08\u53EF\u4EE5 1 \u6761\u6216\u591A\u6761\uFF09\u3002store/skip \u65F6\u7701\u7565\u6216\u4E3A\u7A7A\u3002\n- merged_content\uFF1Amerge/update \u65F6\u7684\u6700\u7EC8\u8BB0\u5FC6\u6587\u672C\u3002store/skip \u65F6\u7701\u7565\u3002\n- merged_type\uFF1Amerge/update \u540E\u8BB0\u5FC6\u5E94\u5F52\u5C5E\u7684 type\u3002\u6839\u636E\u5408\u5E76\u540E\u5185\u5BB9\u672C\u8D28\u5224\u65AD\u3002\n- merged_priority\uFF1Amerge/update \u540E\u7684\u65B0\u4F18\u5148\u7EA7\uFF080-100 \u6574\u6570\uFF0Cmerge/update \u65F6\u5FC5\u586B\uFF09\u3002\u5408\u5E76\u540E\u4FE1\u606F\u66F4\u5B8C\u6574\u3001\u66F4\u786E\u5B9A\uFF0C\u901A\u5E38\u5E94**\u914C\u60C5\u63D0\u5347** priority\u3002\u53C2\u8003\u6807\u51C6\uFF1A80-100\uFF08\u5173\u952E\u4E8B\u5B9E/\u91CD\u8981\u4EFB\u52A1/\u6838\u5FC3\u65B9\u6CD5/\u91CD\u8981\u8D44\u4EA7\uFF09\uFF0C60-79\uFF08\u4E00\u822C\u5DE5\u4F5C\u4FE1\u606F\uFF09\uFF0C<60\uFF08\u6B21\u8981\u4FE1\u606F\uFF09\u3002\n- merged_timestamps\uFF1A\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\u3002\u6536\u96C6\u65B0\u8BB0\u5FC6 + \u6240\u6709\u88AB\u5408\u5E76\u65E7\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\uFF0C\u53BB\u91CD\u6392\u5E8F\u3002";
9
+ export declare const ALL_CONFLICT_DETECTION_SYSTEM_PROMPT = "\u4F60\u662F\u8BB0\u5FC6\u51B2\u7A81\u68C0\u6D4B\u5668\u3002\u6279\u91CF\u6BD4\u8F83\u591A\u6761\u3010\u65B0\u8BB0\u5FC6\u3011\u4E0E\u3010\u7EDF\u4E00\u5019\u9009\u8BB0\u5FC6\u6C60\u3011\u4E2D\u7684\u5DF2\u6709\u8BB0\u5FC6\uFF0C\u9010\u6761\u51B3\u5B9A\u5982\u4F55\u5904\u7406\u3002\u5019\u9009\u6C60\u540C\u65F6\u5305\u542B\u4E2A\u4EBA\u8BB0\u5FC6\uFF08persona/episodic/instruction\uFF09\u4E0E\u56E2\u961F\u5DE5\u4F5C\u8BB0\u5FC6\uFF08work_fact/work_task/work_method/work_artifact\uFF09\uFF0C\u5224\u65AD\u65F6\u6309\u5404\u81EA\u8BED\u4E49\u5904\u7406\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A`merged_content` \u4F7F\u7528\u4E0E\u5019\u9009\u6C60\u4E2D\u5DF2\u6709\u8BB0\u5FC6\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001record_id\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n## \u6838\u5FC3\u89C4\u5219\n\n- **\u8DE8 type \u5408\u5E76**\uFF1A\u4E0D\u540C type\uFF08persona / episodic / instruction / work_fact / work_task / work_method / work_artifact\uFF09\u7684\u8BB0\u5FC6\u5982\u679C\u8BED\u4E49\u4E0A\u63CF\u8FF0\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6/\u5DE5\u4F5C\u5BF9\u8C61\uFF0C**\u53EF\u4EE5\u5408\u5E76**\u3002\n- **\u591A\u5BF9\u591A\u5408\u5E76**\uFF1A\u4E00\u6761\u65B0\u8BB0\u5FC6\u53EF\u4EE5\u540C\u65F6\u66FF\u6362/\u5408\u5E76\u5019\u9009\u6C60\u4E2D\u7684**\u591A\u6761**\u5DF2\u6709\u8BB0\u5FC6\uFF08\u901A\u8FC7 target_ids \u6570\u7EC4\u6307\u5B9A\uFF09\u3002\n- \u5408\u5E76\u540E\u4F60\u5FC5\u987B\u5224\u65AD\u65B0\u8BB0\u5FC6\u7684\u6700\u4F73 type\uFF08merged_type\uFF09\u3002\n- \u5DE5\u4F5C\u8BB0\u5FC6\u9ED8\u8BA4\u4F1A\u5728\u9879\u76EE\u56E2\u961F\u5185\u5171\u4EAB\uFF0C\u5408\u5E76\u5185\u5BB9\u5E94\u53EA\u4FDD\u7559\u76F8\u5173\u4FE1\u606F\uFF1B\u4E2A\u4EBA\u8BB0\u5FC6\u4E0E\u5DE5\u4F5C\u8BB0\u5FC6\u63CF\u8FF0\u540C\u4E00\u5E95\u5C42\u4E8B\u5B9E\u65F6\u53EF\u4EE5\u5408\u5E76\uFF0C\u6309\u5408\u5E76\u540E\u5185\u5BB9\u672C\u8D28\u9009\u62E9\u5F52\u5C5E type\u3002\n\n## \u5224\u65AD\u903B\u8F91\n\n1. **\u5206\u8FA8\u8BB0\u5FC6\u6027\u8D28**\uFF1A\n - **\u72B6\u6001\u7C7B**\uFF08persona/instruction\uFF09\uFF1A\u504F\u597D\u3001\u7279\u8D28\u3001\u957F\u671F\u8BBE\u5B9A\u3001\u76F8\u5BF9\u7A33\u5B9A\u7684\u4E8B\u5B9E\u3001\u884C\u4E3A\u89C4\u5219\n - **\u4E8B\u4EF6\u7C7B**\uFF08episodic\uFF09\uFF1A\u4E00\u6B21\u6027\u7ECF\u5386\u3001\u5E26\u65F6\u95F4\u70B9\u7684\u5BA2\u89C2\u8BB0\u5F55\uFF0C\u5EFA\u8BAE\u5408\u5E76\u540C\u4E00\u4EF6\u4E8B\u7684\u524D\u56E0\u540E\u679C\n - **\u5DE5\u4F5C\u4E8B\u5B9E\u7C7B**\uFF08work_fact\uFF09\uFF1A\u9879\u76EE\u4E8B\u5B9E\u3001\u9700\u6C42\u3001\u51B3\u7B56\u3001\u72B6\u6001\u3001\u98CE\u9669\u3001\u7EA6\u675F\u3001\u5B9E\u9A8C\u7ED3\u679C\n - **\u5DE5\u4F5C\u4EFB\u52A1\u7C7B**\uFF08work_task\uFF09\uFF1A\u5F85\u529E\u3001owner\u3001deadline\u3001\u4E0B\u4E00\u6B65\u8BA1\u5212\u3001\u4EFB\u52A1\u72B6\u6001\u53D8\u5316\n - **\u5DE5\u4F5C\u65B9\u6CD5\u7C7B**\uFF08work_method\uFF09\uFF1ASOP\u3001\u7981\u5FCC\u3001\u539F\u5219\u3001\u7ECF\u9A8C\u3001\u8BBE\u8BA1\u601D\u8DEF\u3001\u5224\u65AD\u6807\u51C6\u3001Agent \u884C\u4E3A\u89C4\u5219\n - **\u5DE5\u4F5C\u8D44\u4EA7\u7C7B**\uFF08work_artifact\uFF09\uFF1A\u6587\u6863\u3001PR\u3001Issue\u3001Prompt\u3001\u62A5\u544A\u3001\u4EE3\u7801\u5206\u652F\u3001\u8BBE\u8BA1\u7A3F\u3001\u94FE\u63A5\u7B49\n\n2. **\u5224\u65AD\u662F\u5426\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6/\u5DE5\u4F5C\u5BF9\u8C61**\uFF1A\n - \u4E2A\u4EBA\u8BB0\u5FC6\uFF1A\u4E3B\u4F53\u76F8\u540C\u3001\u4E3B\u9898\u4E00\u81F4\u3001\u65F6\u95F4\u63A5\u8FD1\u3001scene_name \u76F8\u4F3C\n - \u5DE5\u4F5C\u8BB0\u5FC6\uFF1A\u540C\u4E00\u9879\u76EE\u3001\u6A21\u5757\u3001\u9700\u6C42\u3001\u4EFB\u52A1\u3001\u98CE\u9669\u3001\u51B3\u7B56\u3001\u65B9\u6CD5\u3001\u8D44\u4EA7\uFF0C\u6216\u540C\u4E00\u4EFB\u52A1\u7684\u4E0D\u540C\u9636\u6BB5\u3001\u540C\u4E00\u65B9\u6CD5\u7684\u8865\u5145\u3001\u540C\u4E00\u8D44\u4EA7\u7684\u7248\u672C\u53D8\u5316\uFF0C\u901A\u5E38\u53EF\u4EE5\u5408\u5E76\uFF1B\u4EC5\u540C\u5C5E\u4E00\u4E2A\u5927\u9879\u76EE\u4F46\u8BA8\u8BBA\u5BF9\u8C61\u4E0D\u540C\uFF0C\u4E0D\u5E94\u5F3A\u884C\u5408\u5E76\n\n3. **\u9009\u62E9\u52A8\u4F5C**\uFF1A\n - \"store\"\uFF1A\u89C6\u4E3A\u65B0\u4FE1\u606F\uFF0C\u65B0\u589E\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"skip\"\uFF1A\u5DF2\u6709\u8BB0\u5FC6\u66F4\u597D\uFF0C\u65B0\u8BB0\u5FC6\u65E0\u589E\u91CF\u6216\u66F4\u6A21\u7CCA\uFF0C\u5FFD\u7565\u5F53\u524D\u8BB0\u5FC6\u3002\n - \"update\"\uFF1A\u540C\u4E00\u4E8B\u5B9E/\u4E8B\u4EF6/\u5DE5\u4F5C\u5BF9\u8C61\uFF0C\u65B0\u8BB0\u5FC6\u5728\u5185\u5BB9\u6216\u65F6\u95F4\u4E0A\u66F4\u4F18\uFF08\u66F4\u5177\u4F53\u3001\u66F4\u665A\u3001\u66F4\u6743\u5A01\u6216\u7EA0\u9519\uFF09\uFF0C\u4EE5\u65B0\u8BB0\u5FC6\u4E3A\u4E3B\u8986\u76D6\u65E7\u8BB0\u5FC6\uFF0C\u53EF\u4FDD\u7559\u65E7\u8BB0\u5FC6\u4E2D\u4ECD\u6B63\u786E\u7684\u7EC6\u8282\u3002\n - \"merge\"\uFF1A\u540C\u4E00\u4E8B\u5B9E\u3001\u540C\u4E00\u6F14\u5316\u8FC7\u7A0B\u6216\u4FE1\u606F\u4E92\u8865\u4E14\u4E0D\u77DB\u76FE\u7684\u591A\u6761\u8BB0\u5FC6\uFF0C\u5408\u5E76\u6210\u4E00\u6761\u66F4\u5B8C\u6574\u8BB0\u5FC6\uFF0C\u4FE1\u606F\u5C3D\u91CF\u4E0D\u5197\u4F59\u3002\n\n4. **\u7B56\u7565\u503E\u5411**\uFF1A\n - \u72B6\u6001\u7C7B\uFF1A\u591A\u6761\u63CF\u8FF0\u540C\u4E00\u504F\u597D/\u7279\u8D28 \u2192 \u503E\u5411 merge\uFF1B\u65E0\u589E\u91CF \u2192 skip\uFF1B\u660E\u786E\u66F4\u65B0 \u2192 update\n - \u4E8B\u4EF6\u7C7B\uFF1A\u540C\u4E00\u4E8B\u4EF6\u7684\u524D\u56E0\u540E\u679C\u3001\u4E0D\u540C\u9636\u6BB5 \u2192 \u503E\u5411 merge \u4E3A\u4E00\u6761\u5B8C\u6574\u53D9\u8FF0\uFF1B\u5B8C\u5168\u76F8\u540C \u2192 skip\n - work_task\uFF1A\u540C\u4E00\u4EFB\u52A1\u7684 owner\u3001deadline\u3001\u72B6\u6001\u53D8\u5316 \u2192 \u503E\u5411 update\uFF1B\u8865\u5145\u4F9D\u8D56\u6216\u9A8C\u6536\u6807\u51C6 \u2192 \u503E\u5411 merge\n - work_method\uFF1A\u540C\u4E00 SOP\u3001\u7981\u5FCC\u3001\u539F\u5219\u3001\u7ECF\u9A8C\u7684\u8865\u5145 \u2192 \u503E\u5411 merge\uFF1B\u66F4\u6E05\u6670\u901A\u7528\u7684\u8868\u8FF0 \u2192 \u503E\u5411 update\n - work_artifact\uFF1A\u540C\u4E00\u8D44\u4EA7\u7684\u7528\u9014\u3001\u7248\u672C\u3001\u94FE\u63A5\u8865\u5145 \u2192 \u503E\u5411 merge \u6216 update\n - \u8DE8\u7C7B\u578B\u793A\u4F8B\uFF1A\u4E00\u6761 episodic \"\u7528\u6237\u5728 2018 \u5E74\u5F00\u59CB\u505A\u64AD\u5BA2\" + \u4E00\u6761 persona \"\u7528\u6237\u6709\u64AD\u5BA2\u5236\u4F5C\u7ECF\u9A8C\" \u2192 \u53EF merge \u4E3A\u4E00\u6761 persona \u6216 episodic\uFF08\u53D6\u51B3\u4E8E\u4FE1\u606F\u4FA7\u91CD\uFF09\n\n5. **timestamp \u5904\u7406**\uFF1A\n - merge / update \u65F6\uFF0Cmerged_timestamps \u5E94\u5305\u542B**\u6240\u6709\u76F8\u5173\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\u5E76\u96C6**\uFF08\u53BB\u91CD\u6392\u5E8F\uFF09\n - \u8FD9\u6837\u53EF\u4EE5\u4FDD\u7559\u4E8B\u4EF6\u4E0E\u5DE5\u4F5C\u5BF9\u8C61\u6F14\u5316\u7684\u5B8C\u6574\u65F6\u95F4\u7EBF\n\n## \u8F93\u51FA\u683C\u5F0F\n\n\u4E25\u683C\u8F93\u51FA JSON \u6570\u7EC4\uFF0C\u6BCF\u4E2A\u5143\u7D20\u5BF9\u5E94\u4E00\u6761\u65B0\u8BB0\u5FC6\u7684\u51B3\u7B56\u3002\u4E0D\u8F93\u51FA\u4EFB\u4F55\u5176\u4ED6\u5185\u5BB9\uFF1A\n\n[\n {\n \"record_id\": \"\u65B0\u8BB0\u5FC6\u7684 record_id\",\n \"action\": \"store|update|skip|merge\",\n \"target_ids\": [\"\u8981\u5220\u9664\u7684\u5019\u9009\u8BB0\u5FC6 record_id 1\", \"record_id 2\"],\n \"merged_content\": \"\u5408\u5E76/\u66F4\u65B0\u540E\u7684\u8BB0\u5FC6\u5185\u5BB9\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_type\": \"\u5408\u5E76\u540E\u7684\u6700\u4F73 type\uFF1Apersona|episodic|instruction|work_fact|work_task|work_method|work_artifact\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\",\n \"merged_priority\": 85,\n \"merged_timestamps\": [\"\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\uFF0C\u5305\u542B\u6240\u6709\u65B0\u65E7\u8BB0\u5FC6\u65F6\u95F4\u6233\u7684\u5E76\u96C6\uFF08merge/update \u65F6\u5FC5\u586B\uFF09\"]\n }\n]\n\n\u5B57\u6BB5\u8BF4\u660E\uFF1A\n- target_ids\uFF1A\u8981\u5220\u9664\u66FF\u6362\u7684\u65E7\u8BB0\u5FC6 ID **\u6570\u7EC4**\uFF08\u53EF\u4EE5 1 \u6761\u6216\u591A\u6761\uFF09\u3002store/skip \u65F6\u7701\u7565\u6216\u4E3A\u7A7A\u3002\n- merged_content\uFF1Amerge/update \u65F6\u7684\u6700\u7EC8\u8BB0\u5FC6\u6587\u672C\u3002store/skip \u65F6\u7701\u7565\u3002\n- merged_type\uFF1Amerge/update \u540E\u8BB0\u5FC6\u5E94\u5F52\u5C5E\u7684 type\u3002\u6839\u636E\u5408\u5E76\u540E\u5185\u5BB9\u672C\u8D28\u5224\u65AD\u3002\n- merged_priority\uFF1Amerge/update \u540E\u7684\u65B0\u4F18\u5148\u7EA7\uFF080-100 \u6574\u6570\uFF0Cmerge/update \u65F6\u5FC5\u586B\uFF09\u3002\u5408\u5E76\u540E\u4FE1\u606F\u66F4\u5B8C\u6574\u3001\u66F4\u786E\u5B9A\uFF0C\u901A\u5E38\u5E94**\u914C\u60C5\u63D0\u5347** priority\u3002\u53C2\u8003\u6807\u51C6\uFF1A80-100\uFF08\u6838\u5FC3\u7279\u8D28/\u91CD\u8981\u4E8B\u4EF6/\u5173\u952E\u4E8B\u5B9E/\u91CD\u8981\u4EFB\u52A1/\u6838\u5FC3\u65B9\u6CD5/\u91CD\u8981\u8D44\u4EA7\uFF09\uFF0C60-79\uFF08\u4E00\u822C\u4FE1\u606F\uFF09\uFF0C<60\uFF08\u6B21\u8981\u4FE1\u606F\uFF09\u3002\n- merged_timestamps\uFF1A\u5408\u5E76\u540E\u7684\u65F6\u95F4\u6233\u6570\u7EC4\u3002\u6536\u96C6\u65B0\u8BB0\u5FC6 + \u6240\u6709\u88AB\u5408\u5E76\u65E7\u8BB0\u5FC6\u7684\u65F6\u95F4\u6233\uFF0C\u53BB\u91CD\u6392\u5E8F\u3002";
10
+ export declare function getConflictDetectionSystemPrompt(mode: ExtractMode): string;
11
+ export interface CandidateMatch {
12
+ newMemory: ExtractedMemory & {
13
+ record_id: string;
14
+ };
15
+ candidates: MemoryRecord[];
16
+ }
17
+ /**
18
+ * 格式化批量冲突检测 prompt(统一候选池)。
19
+ */
20
+ export declare function formatBatchConflictPrompt(matches: CandidateMatch[]): string;
@@ -0,0 +1,244 @@
1
+ export const CONFLICT_DETECTION_SYSTEM_PROMPT = `你是记忆冲突检测器。批量比较多条【新记忆】与【统一候选记忆池】中的已有记忆,逐条决定如何处理。
2
+
3
+ **输出语言**:\`merged_content\` 使用与候选池中已有记忆相同的语言;JSON 字段名、枚举值、record_id、ISO 时间戳保持英文。
4
+
5
+ ## 核心规则
6
+
7
+ - **跨 type 合并**:不同 type(persona / episodic / instruction / work_fact / work_task / work_method / work_artifact)的记忆如果语义上描述同一事实/事件,**可以合并**。
8
+ - **多对多合并**:一条新记忆可以同时替换/合并候选池中的**多条**已有记忆(通过 target_ids 数组指定)。
9
+ - 合并后你必须判断新记忆的最佳 type(merged_type)。
10
+
11
+ ## 判断逻辑
12
+
13
+ 1. **分辨记忆性质**:
14
+ - **状态类**(persona/instruction):偏好、特质、长期设定、相对稳定的事实、行为规则
15
+ - **事件类**(episodic):一次性经历、带时间点的客观记录,建议合并同一件事的前因后果
16
+
17
+ 2. **判断是否同一事实/事件**:主体相同、主题一致、时间接近、scene_name 相似
18
+
19
+ 3. **选择动作**:
20
+ - "store":视为新信息,新增当前记忆。
21
+ - "skip":已有记忆更好,新记忆无增量或更模糊,忽略当前记忆。
22
+ - "update":同一事实/事件,新记忆在内容或时间上更优(更具体、更晚或纠错),以新记忆为主覆盖旧记忆,可保留旧记忆中仍正确的细节。
23
+ - "merge":同一事实或同一演化过程,多条记忆信息互补且不矛盾,合并成一条更完整记忆,信息尽量不冗余。
24
+
25
+ 4. **策略倾向**:
26
+ - 状态类:多条描述同一偏好/特质 → 倾向 merge;无增量 → skip;明确更新 → update
27
+ - 事件类:同一事件的前因后果、不同阶段 → 倾向 merge 为一条完整叙述;完全相同 → skip
28
+ - 跨类型示例:一条 episodic "用户在 2018 年开始做播客" + 一条 persona "用户有播客制作经验" → 可 merge 为一条 persona 或 episodic(取决于信息侧重)
29
+
30
+ 5. **timestamp 处理**:
31
+ - merge / update 时,merged_timestamps 应包含**所有相关记忆的时间戳并集**(去重排序)
32
+ - 这样可以保留事件发生的完整时间线
33
+
34
+ ## 输出格式
35
+
36
+ 严格输出 JSON 数组,每个元素对应一条新记忆的决策。不输出任何其他内容:
37
+
38
+ [
39
+ {
40
+ "record_id": "新记忆的 record_id",
41
+ "action": "store|update|skip|merge",
42
+ "target_ids": ["要删除的候选记忆 record_id 1", "record_id 2"],
43
+ "merged_content": "合并/更新后的记忆内容(merge/update 时必填)",
44
+ "merged_type": "合并后的最佳 type:persona|episodic|instruction|work_fact|work_task|work_method|work_artifact(merge/update 时必填)",
45
+ "merged_priority": 85,
46
+ "merged_timestamps": ["合并后的时间戳数组,包含所有新旧记忆时间戳的并集(merge/update 时必填)"]
47
+ }
48
+ ]
49
+
50
+ 字段说明:
51
+ - target_ids:要删除替换的旧记忆 ID **数组**(可以 1 条或多条)。store/skip 时省略或为空。
52
+ - merged_content:merge/update 时的最终记忆文本。store/skip 时省略。
53
+ - merged_type:merge/update 后记忆应归属的 type。根据合并后内容本质判断。
54
+ - merged_priority:merge/update 后的新优先级(0-100 整数,merge/update 时必填)。合并后信息更完整、更确定,通常应**酌情提升** priority(例如两条 priority 70 的记忆合并后可提升到 80)。参考标准:80-100(核心特质/重要事件),60-79(一般偏好/普通活动),<60(次要信息)。
55
+ - merged_timestamps:合并后的时间戳数组。收集新记忆 + 所有被合并旧记忆的时间戳,去重排序。`;
56
+ export const WORK_CONFLICT_DETECTION_SYSTEM_PROMPT = `你是团队工作记忆冲突检测器。批量比较多条【新记忆】与【统一候选记忆池】中的已有记忆,逐条决定如何处理。
57
+
58
+ **输出语言**:\`merged_content\` 使用与候选池中已有记忆相同的语言;JSON 字段名、枚举值、record_id、ISO 时间戳保持英文。
59
+
60
+ ## 核心规则
61
+
62
+ - **跨 type 合并**:不同 type(work_fact / work_task / work_method / work_artifact)的记忆如果语义上描述同一工作对象、任务、方法或资产,**可以合并**。
63
+ - **多对多合并**:一条新记忆可以同时替换/合并候选池中的**多条**已有记忆(通过 target_ids 数组指定)。
64
+ - 合并后你必须判断新记忆的最佳 type(merged_type)。
65
+ - 记忆默认会在项目团队内共享,合并内容应只保留工作相关信息。
66
+
67
+ ## 判断逻辑
68
+
69
+ 1. **分辨记忆性质**:
70
+ - **工作事实类(work_fact)**:项目事实、需求、决策、状态、风险、约束、实验结果、客户反馈。
71
+ - **工作任务类(work_task)**:待办、owner、deadline、下一步计划、任务状态变化。
72
+ - **工作方法类(work_method)**:SOP、禁忌、原则、经验、设计思路、判断标准、Agent 行为规则。
73
+ - **工作资产类(work_artifact)**:文档、PR、Issue、Prompt、报告、代码分支、设计稿、链接等。
74
+
75
+ 2. **判断是否同一工作对象/演化过程**:
76
+ - 同一项目、模块、需求、任务、风险、决策、方法、资产,且 scene_name 或语义高度相似。
77
+ - 同一任务的不同阶段、同一方法的补充、同一资产的版本或用途变化,通常可以合并。
78
+ - 仅属于同一大项目但讨论对象不同,不应强行合并。
79
+
80
+ 3. **选择动作**:
81
+ - "store":视为新信息,新增当前记忆。
82
+ - "skip":已有记忆更好,新记忆无增量或更模糊,忽略当前记忆。
83
+ - "update":同一工作对象,新记忆更具体、更新、更权威或纠正旧信息,以新记忆为主覆盖旧记忆,可保留旧记忆中仍正确的细节。
84
+ - "merge":同一工作对象或同一演化过程,新旧记忆互补且不矛盾,合并成一条更完整记忆,信息尽量不冗余。
85
+
86
+ 4. **策略倾向**:
87
+ - work_fact:同一事实/决策/状态的补充或修正 → 倾向 update 或 merge。
88
+ - work_task:同一任务的 owner、deadline、状态变化 → 倾向 update;补充依赖或验收标准 → 倾向 merge。
89
+ - work_method:同一 SOP、禁忌、原则、经验的补充 → 倾向 merge;更清晰通用的表述 → 倾向 update。
90
+ - work_artifact:同一文档、PR、Prompt、报告等资产的用途、版本、链接补充 → 倾向 merge 或 update。
91
+ - 跨类型示例:一条 work_fact "团队决定 L1 type 保持少量高层分类" + 一条 work_method "L1 type 不宜过细,否则影响 L2/L3 聚合" → 可 merge 为 work_method。
92
+
93
+ 5. **timestamp 处理**:
94
+ - merge / update 时,merged_timestamps 应包含**所有相关记忆的时间戳并集**(去重排序)。
95
+ - 这样可以保留工作事实、任务或方法演化的完整时间线。
96
+
97
+ ## 输出格式
98
+
99
+ 严格输出 JSON 数组,每个元素对应一条新记忆的决策。不输出任何其他内容:
100
+
101
+ [
102
+ {
103
+ "record_id": "新记忆的 record_id",
104
+ "action": "store|update|skip|merge",
105
+ "target_ids": ["要删除的候选记忆 record_id 1", "record_id 2"],
106
+ "merged_content": "合并/更新后的记忆内容(merge/update 时必填)",
107
+ "merged_type": "合并后的最佳 type:work_fact|work_task|work_method|work_artifact(merge/update 时必填)",
108
+ "merged_priority": 85,
109
+ "merged_timestamps": ["合并后的时间戳数组,包含所有新旧记忆时间戳的并集(merge/update 时必填)"]
110
+ }
111
+ ]
112
+
113
+ 字段说明:
114
+ - target_ids:要删除替换的旧记忆 ID **数组**(可以 1 条或多条)。store/skip 时省略或为空。
115
+ - merged_content:merge/update 时的最终记忆文本。store/skip 时省略。
116
+ - merged_type:merge/update 后记忆应归属的 type。根据合并后内容本质判断。
117
+ - merged_priority:merge/update 后的新优先级(0-100 整数,merge/update 时必填)。合并后信息更完整、更确定,通常应**酌情提升** priority。参考标准:80-100(关键事实/重要任务/核心方法/重要资产),60-79(一般工作信息),<60(次要信息)。
118
+ - merged_timestamps:合并后的时间戳数组。收集新记忆 + 所有被合并旧记忆的时间戳,去重排序。`;
119
+ export const ALL_CONFLICT_DETECTION_SYSTEM_PROMPT = `你是记忆冲突检测器。批量比较多条【新记忆】与【统一候选记忆池】中的已有记忆,逐条决定如何处理。候选池同时包含个人记忆(persona/episodic/instruction)与团队工作记忆(work_fact/work_task/work_method/work_artifact),判断时按各自语义处理。
120
+
121
+ **输出语言**:\`merged_content\` 使用与候选池中已有记忆相同的语言;JSON 字段名、枚举值、record_id、ISO 时间戳保持英文。
122
+
123
+ ## 核心规则
124
+
125
+ - **跨 type 合并**:不同 type(persona / episodic / instruction / work_fact / work_task / work_method / work_artifact)的记忆如果语义上描述同一事实/事件/工作对象,**可以合并**。
126
+ - **多对多合并**:一条新记忆可以同时替换/合并候选池中的**多条**已有记忆(通过 target_ids 数组指定)。
127
+ - 合并后你必须判断新记忆的最佳 type(merged_type)。
128
+ - 工作记忆默认会在项目团队内共享,合并内容应只保留相关信息;个人记忆与工作记忆描述同一底层事实时可以合并,按合并后内容本质选择归属 type。
129
+
130
+ ## 判断逻辑
131
+
132
+ 1. **分辨记忆性质**:
133
+ - **状态类**(persona/instruction):偏好、特质、长期设定、相对稳定的事实、行为规则
134
+ - **事件类**(episodic):一次性经历、带时间点的客观记录,建议合并同一件事的前因后果
135
+ - **工作事实类**(work_fact):项目事实、需求、决策、状态、风险、约束、实验结果
136
+ - **工作任务类**(work_task):待办、owner、deadline、下一步计划、任务状态变化
137
+ - **工作方法类**(work_method):SOP、禁忌、原则、经验、设计思路、判断标准、Agent 行为规则
138
+ - **工作资产类**(work_artifact):文档、PR、Issue、Prompt、报告、代码分支、设计稿、链接等
139
+
140
+ 2. **判断是否同一事实/事件/工作对象**:
141
+ - 个人记忆:主体相同、主题一致、时间接近、scene_name 相似
142
+ - 工作记忆:同一项目、模块、需求、任务、风险、决策、方法、资产,或同一任务的不同阶段、同一方法的补充、同一资产的版本变化,通常可以合并;仅同属一个大项目但讨论对象不同,不应强行合并
143
+
144
+ 3. **选择动作**:
145
+ - "store":视为新信息,新增当前记忆。
146
+ - "skip":已有记忆更好,新记忆无增量或更模糊,忽略当前记忆。
147
+ - "update":同一事实/事件/工作对象,新记忆在内容或时间上更优(更具体、更晚、更权威或纠错),以新记忆为主覆盖旧记忆,可保留旧记忆中仍正确的细节。
148
+ - "merge":同一事实、同一演化过程或信息互补且不矛盾的多条记忆,合并成一条更完整记忆,信息尽量不冗余。
149
+
150
+ 4. **策略倾向**:
151
+ - 状态类:多条描述同一偏好/特质 → 倾向 merge;无增量 → skip;明确更新 → update
152
+ - 事件类:同一事件的前因后果、不同阶段 → 倾向 merge 为一条完整叙述;完全相同 → skip
153
+ - work_task:同一任务的 owner、deadline、状态变化 → 倾向 update;补充依赖或验收标准 → 倾向 merge
154
+ - work_method:同一 SOP、禁忌、原则、经验的补充 → 倾向 merge;更清晰通用的表述 → 倾向 update
155
+ - work_artifact:同一资产的用途、版本、链接补充 → 倾向 merge 或 update
156
+ - 跨类型示例:一条 episodic "用户在 2018 年开始做播客" + 一条 persona "用户有播客制作经验" → 可 merge 为一条 persona 或 episodic(取决于信息侧重)
157
+
158
+ 5. **timestamp 处理**:
159
+ - merge / update 时,merged_timestamps 应包含**所有相关记忆的时间戳并集**(去重排序)
160
+ - 这样可以保留事件与工作对象演化的完整时间线
161
+
162
+ ## 输出格式
163
+
164
+ 严格输出 JSON 数组,每个元素对应一条新记忆的决策。不输出任何其他内容:
165
+
166
+ [
167
+ {
168
+ "record_id": "新记忆的 record_id",
169
+ "action": "store|update|skip|merge",
170
+ "target_ids": ["要删除的候选记忆 record_id 1", "record_id 2"],
171
+ "merged_content": "合并/更新后的记忆内容(merge/update 时必填)",
172
+ "merged_type": "合并后的最佳 type:persona|episodic|instruction|work_fact|work_task|work_method|work_artifact(merge/update 时必填)",
173
+ "merged_priority": 85,
174
+ "merged_timestamps": ["合并后的时间戳数组,包含所有新旧记忆时间戳的并集(merge/update 时必填)"]
175
+ }
176
+ ]
177
+
178
+ 字段说明:
179
+ - target_ids:要删除替换的旧记忆 ID **数组**(可以 1 条或多条)。store/skip 时省略或为空。
180
+ - merged_content:merge/update 时的最终记忆文本。store/skip 时省略。
181
+ - merged_type:merge/update 后记忆应归属的 type。根据合并后内容本质判断。
182
+ - merged_priority:merge/update 后的新优先级(0-100 整数,merge/update 时必填)。合并后信息更完整、更确定,通常应**酌情提升** priority。参考标准:80-100(核心特质/重要事件/关键事实/重要任务/核心方法/重要资产),60-79(一般信息),<60(次要信息)。
183
+ - merged_timestamps:合并后的时间戳数组。收集新记忆 + 所有被合并旧记忆的时间戳,去重排序。`;
184
+ export function getConflictDetectionSystemPrompt(mode) {
185
+ if (mode === 'auto')
186
+ return ALL_CONFLICT_DETECTION_SYSTEM_PROMPT;
187
+ return mode === 'work' ? WORK_CONFLICT_DETECTION_SYSTEM_PROMPT : CONFLICT_DETECTION_SYSTEM_PROMPT;
188
+ }
189
+ /**
190
+ * 格式化批量冲突检测 prompt(统一候选池)。
191
+ */
192
+ export function formatBatchConflictPrompt(matches) {
193
+ const unifiedPool = new Map();
194
+ const perMemoryCandidateIds = new Map();
195
+ for (const m of matches) {
196
+ const candidateIds = [];
197
+ for (const c of m.candidates) {
198
+ if (!unifiedPool.has(c.id))
199
+ unifiedPool.set(c.id, c);
200
+ candidateIds.push(c.id);
201
+ }
202
+ perMemoryCandidateIds.set(m.newMemory.record_id, candidateIds);
203
+ }
204
+ const poolList = Array.from(unifiedPool.values()).map((c) => ({
205
+ record_id: c.id,
206
+ content: c.content,
207
+ type: c.type,
208
+ priority: c.priority,
209
+ scene_name: c.scene_name,
210
+ timestamps: c.timestamps,
211
+ }));
212
+ let poolSection;
213
+ if (poolList.length === 0) {
214
+ poolSection = '## 统一候选记忆池\n\n(空,没有已有记忆,所有新记忆直接 store)';
215
+ }
216
+ else {
217
+ const poolStr = JSON.stringify(poolList, null, 2);
218
+ poolSection = `## 统一候选记忆池(共 ${poolList.length} 条已有记忆)\n\n${poolStr}`;
219
+ }
220
+ const memoryParts = matches.map((m, idx) => {
221
+ const relatedIds = perMemoryCandidateIds.get(m.newMemory.record_id) ?? [];
222
+ const relatedNote = relatedIds.length > 0 ? JSON.stringify(relatedIds) : '[](无相似候选,直接 store)';
223
+ const memStr = JSON.stringify({
224
+ record_id: m.newMemory.record_id,
225
+ content: m.newMemory.content,
226
+ type: m.newMemory.type,
227
+ priority: m.newMemory.priority,
228
+ scene_name: m.newMemory.scene_name,
229
+ }, null, 2);
230
+ return `### 第 ${idx + 1} 条新记忆 (record_id: ${m.newMemory.record_id})\n${memStr}\n\n【关联候选 ID】${relatedNote}`;
231
+ });
232
+ const newMemoriesText = memoryParts.join('\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n');
233
+ return `**输出语言**:\`merged_content\` 使用与候选池中已有记忆相同的语言。
234
+
235
+ ${poolSection}
236
+
237
+ ${'═'.repeat(50)}
238
+
239
+ ## 待判断的新记忆(共 ${matches.length} 条)
240
+
241
+ ${newMemoriesText}
242
+
243
+ 请逐条判断并输出决策 JSON 数组。当某条新记忆的候选列表为空时,该条直接输出 action=store。`;
244
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * L1 抽取 Prompt(移植自 MemoryCore src/core/prompts/l1-extraction.ts)。
3
+ * 档位词表:chat(persona/episodic/instruction)+ work(work_fact/work_task/work_method/work_artifact)
4
+ * + auto(合并词表,七类全开、按内容自动归族)。
5
+ */
6
+ import type { ConversationMessage, ExtractMode } from '../types.js';
7
+ export declare const EXTRACT_MEMORIES_SYSTEM_PROMPT = "\u4F60\u662F\u4E13\u4E1A\u7684\"\u60C5\u5883\u5207\u5206\u4E0E\u8BB0\u5FC6\u63D0\u53D6\u4E13\u5BB6\"\u3002\n\u4F60\u7684\u4EFB\u52A1\u662F\u5206\u6790\u7528\u6237\u7684\u5BF9\u8BDD\uFF0C\u5224\u65AD\u60C5\u5883\u5207\u6362\uFF0C\u5E76\u4ECE\u4E2D\u63D0\u53D6\u7ED3\u6784\u5316\u7684\u6838\u5FC3\u8BB0\u5FC6\uFF08\u4EC5\u9650 persona, episodic, instruction \u4E09\u7C7B\uFF09\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A\u6240\u6709\u81EA\u7531\u6587\u672C\u5B57\u6BB5\uFF08`scene_name`\u3001memory `content`\uFF09\u4F7F\u7528\u4E0E\u7528\u6237\u6D88\u606F\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n### \u4EFB\u52A1\u4E00\uFF1A\u60C5\u5883\u5207\u5206\uFF08Scene Segmentation\uFF09\n\u5206\u6790\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\uFF0C\u7ED3\u5408\u3010\u4E0A\u4E00\u4E2A\u60C5\u5883\u3011\uFF0C\u5224\u65AD\u5E76\u8F93\u51FA\u5F53\u524D\u5BF9\u8BDD\u7684\u60C5\u5883\u3002\n- \u7EE7\u627F\uFF1A\u65E0\u660E\u663E\u5207\u6362\uFF0C\u6CBF\u7528\u4E0A\u4E00\u4E2A\u60C5\u5883\u3002\n- \u5207\u6362\u6761\u4EF6\uFF1A\u7528\u6237\u53D1\u51FA\u660E\u786E\u6307\u4EE4\uFF08\u5982\"\u6362\u8BDD\u9898\"\uFF09\u3001\u610F\u56FE\u8F6C\u53D8\u3001\u6216\u63D0\u51FA\u72EC\u7ACB\u65B0\u76EE\u6807\u3002\n- \u4E00\u6BB5\u5BF9\u8BDD\u53EF\u80FD\u53EA\u6709\u4E00\u4E2A\u60C5\u5883\uFF0C\u4E5F\u53EF\u80FD\u6709\u591A\u4E2A\u60C5\u5883\uFF08\u8BDD\u9898\u591A\u6B21\u5207\u6362\u65F6\uFF09\u3002\n- \u547D\u540D\u89C4\u5219\uFF1A\"\u6211\uFF08AI\uFF09\u5728\u548Cxxx\uFF08\u7528\u6237\u8EAB\u4EFD\uFF09\u505Axxx\uFF08\u76EE\u6807\u6D3B\u52A8\uFF09\"\uFF08**\u4F7F\u7528\u4E0A\u8FF0\u8F93\u51FA\u8BED\u8A00**\uFF0C\u7EA6 30-50 \u4E2A\u5B57\u7B26\u6216\u7B49\u4EF7\u957F\u5EA6\uFF0C\u5355\u53E5\uFF0C\u5168\u5C40\u552F\u4E00\uFF09\u3002\n\n---\n\n### \u4EFB\u52A1\u4E8C\uFF1A\u6838\u5FC3\u8BB0\u5FC6\u63D0\u53D6\uFF08Memory Extraction\uFF09\n\u7ED3\u5408\u80CC\u666F\u548C\u5F53\u524D\u60C5\u5883\uFF0C\u4EC5\u4ECE\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\u4E2D\u63D0\u53D6\u6838\u5FC3\u4FE1\u606F\u3002\n\n\u3010\u901A\u7528\u63D0\u53D6\u539F\u5219\u3011\n1. \u5B81\u7F3A\u6BCB\u6EE5\uFF1A\u8FC7\u6EE4\u7410\u788E\u95F2\u804A\u3001\u4E34\u65F6\u6027\u6307\u4EE4\u548C\u4E00\u6B21\u6027\u64CD\u4F5C\uFF08\u5982\"\u8FD9\u6B21\u3001\u672C\u5355\"\uFF09\uFF1B\u5254\u9664\u4E0D\u53EF\u9760\u7684\u8FB9\u7F18\u4FE1\u606F\u3002\n2. \u72EC\u7ACB\u5B8C\u6574\uFF1A\u8BB0\u5FC6\u5FC5\u987B\"\u8DF3\u51FA\u5F53\u524D\u5BF9\u8BDD\u4F9D\u7136\u6210\u7ACB\"\uFF0C\u65E0\u4E0A\u4E0B\u6587\u4E5F\u80FD\u770B\u61C2\u3002\u63D0\u53D6\u4E3B\u4F53\u5FC5\u987B\u4EE5\"\u7528\u6237\uFF08\u59D3\u540D\uFF09\"\u6216\"AI\"\u4E3A\u6838\u5FC3\u3002\n3. \u5F52\u7EB3\u5408\u5E76\uFF1A\u5F3A\u5173\u8054\u6216\u56E0\u679C\u5173\u7CFB\u7684\u591A\u6761\u6D88\u606F\uFF0C\u5FC5\u987B\u5408\u5E76\u4E3A\u4E00\u6761\u5B8C\u6574\u8BB0\u5FC6\uFF0C\u4E0D\u53EF\u788E\u7247\u5316\u3002\n\n\u3010\u652F\u6301\u63D0\u53D6\u7684\u4E09\u5927\u7C7B\u578B\u3011\uFF08\u5FC5\u987B\u4E25\u683C\u9075\u5B88\u7C7B\u578B\u89C4\u5219\uFF09\n> \u4E0B\u9762\u7ED9\u51FA\u7684\"\u63D0\u53D6\u53E5\u5F0F\"\u548C\"\u89E6\u53D1\u8BCD\"\u4EC5\u4F5C\u4E3A\u4E2D\u6587\u9AA8\u67B6\u53C2\u8003\uFF1B**\u5B9E\u9645 `content` \u5FC5\u987B\u6309\u4E0A\u8FF0\u8F93\u51FA\u8BED\u8A00\u4E66\u5199**\uFF08\u4F8B\u5982\u82F1\u6587\u7528\u6237 \u2192 \"The user (Maya) is a senior product manager based in Berlin\"\uFF09\u3002\n\n1. \u4E2A\u6027\u5316\u8BB0\u5FC6 (type: \"persona\")\n - \u5B9A\u4E49\uFF1A\u7528\u6237\u7684\u7A33\u5B9A\u5C5E\u6027\u3001\u504F\u597D\u3001\u6280\u80FD\u3001\u4EF7\u503C\u89C2\u3001\u4E60\u60EF\uFF08\u5982\u4F4F\u6240\u3001\u804C\u4E1A\u3001\u996E\u98DF\u7981\u5FCC\uFF09\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\uFF08[\u59D3\u540D]\uFF09\u559C\u6B22/\u662F/\u64C5\u957F...\"\n - \u6253\u5206 (priority)\uFF1A80-100\uFF08\u5065\u5EB7/\u7981\u5FCC/\u6838\u5FC3\u7279\u8D28\uFF09\uFF1B50-70\uFF08\u4E00\u822C\u559C\u597D/\u6280\u80FD\uFF09\uFF1B<50\uFF08\u6A21\u7CCA\u6B21\u8981\uFF0C\u53EF\u4E22\u5F03\uFF09\u3002\n - \u89E6\u53D1\u8BCD\uFF1A\u559C\u6B22\u3001\u4E60\u60EF\u3001\u7ECF\u5E38\u3001\u6211\u8FD9\u4E2A\u4EBA...\n\n2. \u5BA2\u89C2\u4E8B\u4EF6\u8BB0\u5FC6 (type: \"episodic\")\n - \u5B9A\u4E49\uFF1A\u5BA2\u89C2\u53D1\u751F\u7684\u52A8\u4F5C\u3001\u51B3\u5B9A\u3001\u8BA1\u5212\u6216\u8FBE\u6210\u7ED3\u679C\u3002\u7EDD\u4E0D\u5305\u542B\u7EAF\u4E3B\u89C2\u611F\u53D7\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\uFF08[\u59D3\u540D]\uFF09\u5728 [\u6700\u597D\u662F\u7CBE\u786E\u7EDD\u5BF9\u65F6\u95F4] \u4E8E [\u5730\u70B9] [\u505A\u4E86\u67D0\u4E8B\uFF08\u53EF\u4EE5\u5305\u542B\u8D77\u56E0\u3001\u7ECF\u8FC7\u3001\u7ED3\u679C\uFF09]\"\u3002\n - \u65F6\u95F4\u7EA6\u675F\uFF1A\u5C3D\u91CF\u57FA\u4E8E\u6D88\u606F\u7684 timestamp \u63A8\u7B97\u7EDD\u5BF9\u65F6\u95F4\uFF0C\u5982\u80FD\u786E\u5B9A\u5219\u5728 metadata \u4E2D\u8F93\u51FA activity_start_time \u548C activity_end_time\uFF08ISO 8601\u683C\u5F0F\uFF09\u3002\u65E0\u6CD5\u786E\u5B9A\u65F6\u53EF\u7701\u7565\u3002\n - \u6253\u5206 (priority)\uFF1A80-100\uFF08\u91CD\u8981\u4E8B\u4EF6/\u8BA1\u5212\uFF09\uFF1B60-70\uFF08\u4E00\u822C\u5B8C\u6574\u6D3B\u52A8\uFF09\uFF1B<60\uFF08\u7410\u788E\u4E8B\u9879\uFF0C\u76F4\u63A5\u4E22\u5F03\uFF09\u3002\n\n3. \u5168\u5C40\u6307\u4EE4\u8BB0\u5FC6 (type: \"instruction\")\n - \u5B9A\u4E49\uFF1A\u7528\u6237\u5BF9 AI \u63D0\u51FA\u7684\u957F\u671F\u884C\u4E3A\u89C4\u5219\u3001\u683C\u5F0F\u504F\u597D\u3001\u8BED\u6C14\u63A7\u5236\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\u8981\u6C42/\u5E0C\u671B AI \u4EE5\u540E\u56DE\u7B54\u65F6...\"\n - \u89E6\u53D1\u8BCD\uFF1A\u4EE5\u540E\u90FD\u3001\u4ECE\u73B0\u5728\u5F00\u59CB\u3001\u8BB0\u4F4F\u3001\u5FC5\u987B\u3002\n - \u6253\u5206 (priority)\uFF1A-1\uFF08\u6781\u5176\u4E25\u683C\u7684\u5168\u5C40\u6B7B\u547D\u4EE4\uFF09\uFF1B90-100\uFF08\u6838\u5FC3\u884C\u4E3A\u89C4\u5219\uFF09\uFF1B70-80\uFF08\u91CD\u8981\u8981\u6C42\uFF09\uFF1B<70\uFF08\u4E34\u65F6\u8981\u6C42\uFF0C\u76F4\u63A5\u4E22\u5F03\uFF09\u3002\n\n---\n\n### \u4E0D\u5E94\u8BE5\u63D0\u53D6\u7684\u5185\u5BB9\n- \u7410\u788E\u95F2\u804A\u3001\u95EE\u5019\uFF1B\u4E34\u65F6\u6027\u7684\u7EAF\u5DE5\u5177\u6027\u8BF7\u6C42\uFF08\u5982\"\u8FD9\u6B21\u5E2E\u6211\u7FFB\u8BD1\u4E00\u4E0B\"\uFF09\n- \u4E00\u6B21\u6027\u64CD\u4F5C\u6307\u4EE4\uFF08\u5982\"\u8FD9\u6B21\u3001\u672C\u5355\"\u76F8\u5173\uFF09\n- \u91CD\u590D\u7684\u5185\u5BB9\uFF1BAI\u52A9\u624B\u81EA\u8EAB\u7684\u884C\u4E3A\u6216\u8F93\u51FA\n- \u4E0D\u5C5E\u4E8E\u4EE5\u4E0A3\u7C7B\u7684\u4FE1\u606F\n- \u7EAF\u4E3B\u89C2\u611F\u53D7\uFF08\u4E0D\u5E26\u5BA2\u89C2\u4E8B\u4EF6\u7684\u60C5\u7EEA\u8868\u8FBE\uFF09\n\n---\n\n### \u4EFB\u52A1\u4E09\uFF1A\u8F93\u51FA\u683C\u5F0F\u89C4\u8303\uFF08JSON\uFF09\n\u8FD4\u56DE\u4E14\u4EC5\u8FD4\u56DE\u4E00\u4E2A\u5408\u6CD5\u7684 JSON \u6570\u7EC4\u3002\u6570\u7EC4\u7684\u6BCF\u4E00\u9879\u662F\u4E00\u4E2A\u60C5\u5883\uFF0C\u5305\u542B\u8BE5\u60C5\u5883\u7684\u6D88\u606F\u8303\u56F4\u548C\u62BD\u53D6\u5230\u7684\u8BB0\u5FC6\uFF1A\n\n[\n {\n \"scene_name\": \"\u5F53\u524D\u751F\u6210\u6216\u7EE7\u627F\u7684\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"\u5C5E\u4E8E\u8BE5\u60C5\u5883\u7684\u6D88\u606FID\u5217\u8868\"],\n \"memories\": [\n {\n \"content\": \"\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u8BB0\u5FC6\u9648\u8FF0\uFF08\u6309\u5BF9\u5E94\u7C7B\u578B\u7684\u53E5\u5F0F\u8981\u6C42\uFF09\",\n \"type\": \"persona|episodic|instruction\",\n \"priority\": 80,\n \"source_message_ids\": [\"\u6D88\u606FID_1\", \"\u6D88\u606FID_2\"],\n \"metadata\": {}\n }\n ]\n }\n]\n\nmetadata \u5B57\u6BB5\u8BF4\u660E\uFF1A\n- episodic \u7C7B\u578B\uFF1A\u5982\u80FD\u786E\u5B9A\u6D3B\u52A8\u65F6\u95F4\uFF0C\u586B\u5165 {\"activity_start_time\": \"ISO8601\", \"activity_end_time\": \"ISO8601\"}\n- \u5176\u4ED6\u7C7B\u578B\u6216\u65E0\u6CD5\u786E\u5B9A\u65F6\u95F4\uFF1A\u8F93\u51FA\u7A7A\u5BF9\u8C61 {}\n\n\u5982\u679C\u6574\u6BB5\u5BF9\u8BDD\u65E0\u6709\u610F\u4E49\u7684\u8BB0\u5FC6\uFF0C\u4E5F\u8981\u8F93\u51FA\u60C5\u5883\u5206\u5272\u7ED3\u679C\uFF0Cmemories \u4E3A\u7A7A\u6570\u7EC4\uFF1A\n[\n {\n \"scene_name\": \"\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"id1\", \"id2\"],\n \"memories\": []\n }\n]\n\n\u8BF7\u4E25\u683C\u6309\u4E0A\u8FF0 JSON \u6570\u7EC4\u683C\u5F0F\u8F93\u51FA\uFF0C\u4E0D\u8981\u8F93\u51FA\u4EFB\u4F55\u989D\u5916\u7684 Markdown \u4EE3\u7801\u5757\u4FEE\u9970\u7B26\uFF08\u5982 ```json\uFF09\u6216\u89E3\u91CA\u6587\u672C\u3002";
8
+ export declare const EXTRACT_WORK_MEMORIES_SYSTEM_PROMPT = "\u4F60\u662F\u4E13\u4E1A\u7684\"\u5DE5\u4F5C\u60C5\u5883\u5207\u5206\u4E0E\u56E2\u961F\u5171\u4EAB\u8BB0\u5FC6\u63D0\u53D6\u4E13\u5BB6\"\u3002\n\u4F60\u7684\u4EFB\u52A1\u662F\u5206\u6790\u591A\u4EBA\u5DE5\u4F5C\u6D88\u606F\uFF0C\u5224\u65AD\u5DE5\u4F5C\u60C5\u5883\u5207\u6362\uFF0C\u5E76\u4ECE\u4E2D\u63D0\u53D6\u53EF\u5728\u9879\u76EE\u56E2\u961F\u5185\u5171\u4EAB\u7684\u7ED3\u6784\u5316\u5DE5\u4F5C\u8BB0\u5FC6\u3002\n\n\u672C\u4EFB\u52A1\u9762\u5411\u5DE5\u4F5C\u573A\u5408\u7684\u56E2\u961F\u534F\u4F5C\u573A\u666F\u3002\u4F60\u5E94\u91CD\u70B9\u63D0\u53D6\u9879\u76EE\u4E8B\u5B9E\u3001\u4EFB\u52A1\u8FDB\u5C55\u3001\u51B3\u7B56\u7ED3\u8BBA\u3001\u5DE5\u4F5C\u65B9\u6CD5\u3001SOP\u3001\u7981\u5FCC\u3001\u8BBE\u8BA1\u601D\u8DEF\u3001\u4EA4\u4ED8\u7269\u7B49\u5BF9\u56E2\u961F\u540E\u7EED\u534F\u4F5C\u548C Agent \u6267\u884C\u6709\u957F\u671F\u4EF7\u503C\u7684\u4FE1\u606F\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A\u6240\u6709\u81EA\u7531\u6587\u672C\u5B57\u6BB5\uFF08`scene_name`\u3001memory `content`\uFF09\u4F7F\u7528\u4E0E\u5F85\u63D0\u53D6\u6D88\u606F\u4E3B\u5BFC\u8BED\u8A00\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n---\n\n### \u4EFB\u52A1\u4E00\uFF1A\u5DE5\u4F5C\u60C5\u5883\u5207\u5206\uFF08Work Scene Segmentation\uFF09\n\n\u5206\u6790\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\uFF0C\u7ED3\u5408\u3010\u4E0A\u4E00\u4E2A\u60C5\u5883\u3011\u548C\u3010\u80CC\u666F\u6D88\u606F\u3011\uFF0C\u5224\u65AD\u5F53\u524D\u6D88\u606F\u5C5E\u4E8E\u54EA\u4E2A\u5DE5\u4F5C\u60C5\u5883\u3002\n\n\u3010\u60C5\u5883\u5B9A\u4E49\u3011\n\u4E00\u4E2A\u60C5\u5883\u662F\u56F4\u7ED5\u540C\u4E00\u4E2A\u9879\u76EE\u3001\u4EFB\u52A1\u3001\u6A21\u5757\u3001\u9700\u6C42\u3001\u95EE\u9898\u3001\u51B3\u7B56\u3001\u4E8B\u6545\u3001\u5BA2\u6237\u573A\u666F\u6216\u5DE5\u4F5C\u76EE\u6807\u5C55\u5F00\u7684\u4E00\u7EC4\u6D88\u606F\u3002\n\n\u3010\u7EE7\u627F\u6761\u4EF6\u3011\n\u5982\u679C\u65B0\u6D88\u606F\u4ECD\u5728\u5EF6\u7EED\u4E0A\u4E00\u4E2A\u9879\u76EE\u3001\u4EFB\u52A1\u3001\u9700\u6C42\u3001\u95EE\u9898\u6216\u5DE5\u4F5C\u76EE\u6807\uFF0C\u5219\u6CBF\u7528\u4E0A\u4E00\u4E2A\u60C5\u5883\u3002\n\n\u3010\u5207\u6362\u6761\u4EF6\u3011\n\u51FA\u73B0\u4EE5\u4E0B\u60C5\u51B5\u4E4B\u4E00\uFF0C\u5E94\u5207\u6362\u6216\u521B\u5EFA\u65B0\u7684\u60C5\u5883\uFF1A\n1. \u8BA8\u8BBA\u5BF9\u8C61\u53D8\u6210\u53E6\u4E00\u4E2A\u9879\u76EE\u3001\u6A21\u5757\u3001\u9700\u6C42\u3001\u5BA2\u6237\u3001Issue\u3001PR\u3001\u5B9E\u9A8C\u3001\u4E8B\u6545\u6216\u4EA4\u4ED8\u7269\u3002\n2. \u5DE5\u4F5C\u76EE\u6807\u53D1\u751F\u660E\u663E\u53D8\u5316\uFF0C\u4F8B\u5982\u4ECE\"\u9700\u6C42\u8BA8\u8BBA\"\u5207\u6362\u5230\"\u4E0A\u7EBF\u6392\u671F\"\u3002\n3. \u660E\u786E\u51FA\u73B0\u65B0\u7684\u72EC\u7ACB\u4EFB\u52A1\u3001\u51B3\u7B56\u7EBF\u7A0B\u6216\u95EE\u9898\u6392\u67E5\u7EBF\u7A0B\u3002\n4. \u591A\u4E2A\u5DE5\u4F5C\u8BAE\u9898\u5728\u540C\u4E00\u6279\u6D88\u606F\u4E2D\u8FDE\u7EED\u51FA\u73B0\uFF0C\u5E94\u62C6\u5206\u4E3A\u591A\u4E2A\u60C5\u5883\u3002\n\n\u3010\u547D\u540D\u89C4\u5219\u3011\n- \u60C5\u5883\u540D\u79F0\u5FC5\u987B\u56F4\u7ED5\u5DE5\u4F5C\u5BF9\u8C61\u547D\u540D\u3002\n- \u63A8\u8350\u683C\u5F0F\uFF1A\"\u56E2\u961F\u5728\u56F4\u7ED5[\u9879\u76EE/\u6A21\u5757/\u8BAE\u9898]\u63A8\u8FDB[\u76EE\u6807\u6D3B\u52A8]\"\u3002\n- \u957F\u5EA6\u7EA6 30-50 \u4E2A\u5B57\u7B26\u6216\u7B49\u4EF7\u957F\u5EA6\uFF0C\u5355\u53E5\uFF0C\u5168\u5C40\u552F\u4E00\u3002\n\n---\n\n### \u4EFB\u52A1\u4E8C\uFF1A\u56E2\u961F\u5171\u4EAB\u5DE5\u4F5C\u8BB0\u5FC6\u63D0\u53D6\uFF08Work Memory Extraction\uFF09\n\n\u7ED3\u5408\u80CC\u666F\u548C\u5F53\u524D\u60C5\u5883\uFF0C\u4EC5\u4ECE\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\u4E2D\u63D0\u53D6\u53EF\u5171\u4EAB\u7684\u6838\u5FC3\u5DE5\u4F5C\u4FE1\u606F\u3002\n\n\u3010\u901A\u7528\u63D0\u53D6\u539F\u5219\u3011\n\n1. \u9762\u5411\u5DE5\u4F5C\u534F\u4F5C\uFF1A\n - \u63D0\u53D6\u51FA\u7684\u8BB0\u5FC6\u5E94\u80FD\u5E2E\u52A9\u56E2\u961F\u6210\u5458\u6216 Agent \u5728\u540E\u7EED\u4EFB\u52A1\u4E2D\u7406\u89E3\u9879\u76EE\u80CC\u666F\u3001\u63A5\u7EED\u4EFB\u52A1\u3001\u590D\u7528\u7ECF\u9A8C\u6216\u907F\u514D\u91CD\u590D\u9519\u8BEF\u3002\n - \u4E0D\u63D0\u53D6\u666E\u901A\u5BD2\u6684\u3001\u95F2\u804A\u3001\u4E34\u65F6\u60C5\u7EEA\u8868\u8FBE\u3001\u4E00\u6B21\u6027\u5DE5\u5177\u8BF7\u6C42\u3002\n\n2. \u9762\u5411\u56E2\u961F\u5171\u4EAB\uFF1A\n - \u63D0\u53D6\u5185\u5BB9\u9ED8\u8BA4\u4F1A\u5728\u9879\u76EE\u56E2\u961F\u5185\u5171\u4EAB\u3002\n - \u53EA\u63D0\u53D6\u9002\u5408\u56E2\u961F\u5171\u4EAB\u7684\u5DE5\u4F5C\u5185\u5BB9\u3002\n - \u4E0D\u63D0\u53D6\u4E0E\u5DE5\u4F5C\u65E0\u5173\u7684\u4E2A\u4EBA\u504F\u597D\u3001\u79C1\u4EBA\u751F\u6D3B\u6216\u654F\u611F\u4FE1\u606F\u3002\n\n3. \u72EC\u7ACB\u5B8C\u6574\uFF1A\n - \u6BCF\u6761\u8BB0\u5FC6\u5FC5\u987B\u8DF3\u51FA\u5F53\u524D\u5BF9\u8BDD\u4ECD\u80FD\u7406\u89E3\u3002\n - content \u5FC5\u987B\u5305\u542B\u6E05\u6670\u4E3B\u4F53\u3001\u5DE5\u4F5C\u5BF9\u8C61\u3001\u7ED3\u8BBA\u3001\u72B6\u6001\u6216\u65B9\u6CD5\u3002\n - \u4E0D\u8981\u4F7F\u7528\"\u8FD9\u4E2A\"\u3001\"\u90A3\u4E2A\"\u3001\"\u4E0A\u9762\u8BF4\u7684\"\u7B49\u4F9D\u8D56\u4E0A\u4E0B\u6587\u7684\u8868\u8FBE\u3002\n\n4. \u51C6\u786E\u5F52\u56E0\uFF1A\n - \u67D0\u4EBA\u63D0\u51FA\u7684\u5EFA\u8BAE\u3001\u62C5\u5FE7\u3001\u5224\u65AD\uFF0C\u4E0D\u7B49\u4E8E\u56E2\u961F\u51B3\u7B56\u3002\n - \u53EA\u6709\u51FA\u73B0\u660E\u786E\u786E\u8BA4\u3001\u62CD\u677F\u3001\u91C7\u7EB3\u3001\u6267\u884C\u5B89\u6392\u65F6\uFF0C\u624D\u80FD\u5199\u6210\u786E\u5B9A\u7ED3\u8BBA\u3002\n - \u672A\u786E\u8BA4\u5185\u5BB9\u5E94\u8868\u8FBE\u4E3A\"\u56E2\u961F\u6B63\u5728\u8BA8\u8BBA...\"\u3001\"\u67D0\u65B9\u6848\u4ECD\u5F85\u786E\u8BA4...\"\u3001\"\u5B58\u5728\u67D0\u98CE\u9669...\"\u3002\n\n5. \u5F52\u7EB3\u5408\u5E76\uFF1A\n - \u5F3A\u5173\u8054\u7684\u591A\u6761\u6D88\u606F\u5E94\u5408\u5E76\u6210\u4E00\u6761\u5B8C\u6574\u8BB0\u5FC6\u3002\n - \u4E0D\u8981\u628A\u540C\u4E00\u4E2A\u5DE5\u4F5C\u7ED3\u8BBA\u62C6\u6210\u591A\u4E2A\u788E\u7247\u3002\n - \u4F46\u4E0D\u540C\u5DE5\u4F5C\u5BF9\u8C61\u3001\u4E0D\u540C\u4EFB\u52A1\u3001\u4E0D\u540C\u65B9\u6CD5\u8BBA\u5E94\u5206\u5F00\u63D0\u53D6\u3002\n\n6. \u53EA\u4ECE\u65B0\u6D88\u606F\u63D0\u53D6\uFF1A\n - \u3010\u80CC\u666F\u6D88\u606F\u3011\u53EA\u7528\u4E8E\u7406\u89E3\u4E0A\u4E0B\u6587\u3001\u6307\u4EE3\u5173\u7CFB\u548C\u65F6\u95F4\u3002\n - \u4E25\u7981\u4ECE\u80CC\u666F\u6D88\u606F\u4E2D\u65B0\u589E\u63D0\u53D6\u8BB0\u5FC6\u3002\n - source_message_ids \u5FC5\u987B\u53EA\u5305\u542B\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\u4E2D\u7684 message id\u3002\n\n7. AI / Agent \u8F93\u51FA\u5904\u7406\uFF1A\n - \u4E0D\u8981\u628A AI \u7684\u5EFA\u8BAE\u81EA\u52A8\u5F53\u6210\u56E2\u961F\u4E8B\u5B9E\u6216\u56E2\u961F\u51B3\u7B56\u3002\n - \u53EA\u6709\u5F53\u4EBA\u7C7B\u6210\u5458\u91C7\u7EB3\u3001\u786E\u8BA4\uFF0C\u6216 Agent \u8F93\u51FA\u672C\u8EAB\u662F\u660E\u786E\u7684\u5DE5\u5177\u6267\u884C\u7ED3\u679C\u3001\u4EA4\u4ED8\u7269\u3001\u5B9E\u9A8C\u7ED3\u679C\u65F6\uFF0C\u624D\u53EF\u4EE5\u63D0\u53D6\u3002\n - AI \u751F\u6210\u7684\u8349\u6848\u3001\u65B9\u6848\u3001\u5206\u6790\uFF0C\u5982\u88AB\u660E\u786E\u4F5C\u4E3A\u540E\u7EED\u5DE5\u4F5C\u8D44\u4EA7\u4F7F\u7528\uFF0C\u53EF\u63D0\u53D6\u4E3A work_artifact \u6216 work_method\u3002\n\n---\n\n### \u652F\u6301\u63D0\u53D6\u7684\u56DB\u7C7B\u5DE5\u4F5C\u8BB0\u5FC6\n\nmemory `type` \u5FC5\u987B\u4ECE\u4EE5\u4E0B\u679A\u4E3E\u4E2D\u9009\u62E9\uFF1A\n\n1. \u5DE5\u4F5C\u4E8B\u5B9E\uFF08type: \"work_fact\"\uFF09\n\n\u5B9A\u4E49\uFF1A\n\u5173\u4E8E\u9879\u76EE\u3001\u7CFB\u7EDF\u3001\u4E1A\u52A1\u3001\u5BA2\u6237\u3001\u9700\u6C42\u3001\u51B3\u7B56\u3001\u72B6\u6001\u3001\u98CE\u9669\u3001\u7EA6\u675F\u3001\u5B9E\u9A8C\u7ED3\u679C\u7684\u4E8B\u5B9E\u6027\u4FE1\u606F\u3002\n\n\u9002\u5408\u63D0\u53D6\uFF1A\n- \u9879\u76EE\u76EE\u6807\u3001\u4EA7\u54C1\u9700\u6C42\u3001\u6280\u672F\u65B9\u6848\u3001\u67B6\u6784\u7EA6\u675F\u3001\u5BA2\u6237\u53CD\u9988\u3001\u51B3\u7B56\u7ED3\u8BBA\u3001\u5F53\u524D\u72B6\u6001\u3001\u98CE\u9669\u548C\u963B\u585E\u3001\u5B9E\u9A8C\u7ED3\u679C\u3001\u672F\u8BED\u5B9A\u4E49\u3001\u7CFB\u7EDF\u4E8B\u5B9E\n\npriority\uFF1A\n- 90-100\uFF1A\u5173\u952E\u51B3\u7B56\u3001\u6838\u5FC3\u9700\u6C42\u3001\u957F\u671F\u7EA6\u675F\u3001\u91CD\u8981\u98CE\u9669\u3002\n- 70-89\uFF1A\u5BF9\u5F53\u524D\u9879\u76EE\u6709\u6301\u7EED\u4EF7\u503C\u7684\u4E00\u822C\u4E8B\u5B9E\u3002\n- <70\uFF1A\u7EC6\u788E\u3001\u4E34\u65F6\u3001\u4F4E\u5F71\u54CD\u4E8B\u5B9E\uFF0C\u76F4\u63A5\u4E22\u5F03\u3002\n\n---\n\n2. \u5DE5\u4F5C\u4EFB\u52A1\uFF08type: \"work_task\"\uFF09\n\n\u5B9A\u4E49\uFF1A\n\u9700\u8981\u540E\u7EED\u6267\u884C\u3001\u8DDF\u8FDB\u3001\u786E\u8BA4\u6216\u4EA4\u4ED8\u7684\u4EFB\u52A1\u3001\u884C\u52A8\u9879\u3001\u8D23\u4EFB\u5206\u5DE5\u3002\n\n\u9002\u5408\u63D0\u53D6\uFF1A\n- \u5F85\u529E\u4E8B\u9879\u3001owner \u660E\u786E\u7684\u4EFB\u52A1\u3001deadline \u660E\u786E\u7684\u4EFB\u52A1\u3001\u9700\u8981\u8DDF\u8FDB\u7684\u95EE\u9898\u3001\u963B\u585E\u4E2D\u7684\u4E8B\u9879\u3001\u4E0B\u4E00\u6B65\u8BA1\u5212\u3001\u4EFB\u52A1\u72B6\u6001\u53D8\u5316\n\npriority\uFF1A\n- 90-100\uFF1A\u963B\u585E\u4EA4\u4ED8\u3001\u6709\u660E\u786E deadline\u3001\u5F71\u54CD\u5173\u952E\u8DEF\u5F84\u7684\u4EFB\u52A1\u3002\n- 70-89\uFF1A\u6709\u660E\u786E owner \u6216\u660E\u786E\u540E\u7EED\u52A8\u4F5C\u7684\u4E00\u822C\u4EFB\u52A1\u3002\n- <70\uFF1A\u6A21\u7CCA\u3001\u4E34\u65F6\u3001\u65E0\u660E\u786E\u540E\u7EED\u52A8\u4F5C\u7684\u5F85\u529E\uFF0C\u76F4\u63A5\u4E22\u5F03\u3002\n\nmetadata \u5EFA\u8BAE\uFF1A\n- \u5982\u80FD\u786E\u5B9A owner\uFF0C\u586B\u5165 {\"owner\": \"\u540D\u79F0\u6216ID\"}\u3002\n- \u5982\u80FD\u786E\u5B9A deadline\uFF0C\u586B\u5165 {\"deadline\": \"ISO8601\"}\u3002\n- \u5982\u80FD\u786E\u5B9A\u72B6\u6001\uFF0C\u586B\u5165 {\"status\": \"todo|doing|done|blocked|deferred|cancelled\"}\u3002\n\n---\n\n3. \u5DE5\u4F5C\u65B9\u6CD5\uFF08type: \"work_method\"\uFF09\n\n\u5B9A\u4E49\uFF1A\n\u56E2\u961F\u5728\u5DE5\u4F5C\u4E2D\u5F62\u6210\u7684\u53EF\u590D\u7528\u65B9\u6CD5\u3001SOP\u3001\u6D41\u7A0B\u3001\u539F\u5219\u3001\u7981\u5FCC\u3001\u8BBE\u8BA1\u601D\u8DEF\u3001\u7ECF\u9A8C\u6559\u8BAD\u3001\u5224\u65AD\u6807\u51C6\u3001Agent \u884C\u4E3A\u89C4\u5219\u3002\n\n\u8FD9\u662F\u56E2\u961F\u957F\u671F\u5DE5\u4F5C\u8BB0\u5FC6\u4E2D\u6700\u91CD\u8981\u7684\u7C7B\u578B\u4E4B\u4E00\u3002\u5B83\u4E0D\u53EA\u662F\u8BB0\u5F55\u53D1\u751F\u4E86\u4EC0\u4E48\uFF0C\u800C\u662F\u8BB0\u5F55\u4EE5\u540E\u9047\u5230\u7C7B\u4F3C\u4EFB\u52A1\u5E94\u8BE5\u600E\u4E48\u505A\u3001\u4E0D\u8981\u600E\u4E48\u505A\u3001\u6309\u4EC0\u4E48\u539F\u5219\u5224\u65AD\u3002\n\n\u9002\u5408\u63D0\u53D6\uFF1A\n- SOP\u3001\u534F\u4F5C\u6D41\u7A0B\u3001\u8BBE\u8BA1\u539F\u5219\u3001\u6280\u672F\u8DEF\u7EBF\u9009\u62E9\u601D\u8DEF\u3001\u8BC4\u4F30\u6807\u51C6\u3001\u98CE\u9669\u89C4\u907F\u89C4\u5219\u3001\u7981\u5FCC\u548C\u8FB9\u754C\u3001\u590D\u7528\u7ECF\u9A8C\u3001Agent \u6267\u884C\u7B56\u7565\u3001Prompt \u7F16\u5199\u539F\u5219\u3001\u9879\u76EE\u65B9\u6CD5\u8BBA\n\npriority\uFF1A\n- 90-100\uFF1A\u957F\u671F\u7A33\u5B9A\u3001\u53EF\u8DE8\u4EFB\u52A1\u590D\u7528\u3001\u5F71\u54CD Agent \u884C\u4E3A\u6216\u56E2\u961F\u6D41\u7A0B\u7684\u6838\u5FC3\u65B9\u6CD5\u3002\n- 70-89\uFF1A\u5BF9\u5F53\u524D\u9879\u76EE\u540E\u7EED\u5DE5\u4F5C\u6709\u660E\u663E\u590D\u7528\u4EF7\u503C\u7684\u65B9\u6CD5\u3002\n- <70\uFF1A\u8FC7\u4E8E\u4E34\u65F6\u3001\u6A21\u7CCA\u6216\u53EA\u9002\u7528\u4E8E\u4E00\u6B21\u6027\u64CD\u4F5C\u7684\u65B9\u6CD5\uFF0C\u76F4\u63A5\u4E22\u5F03\u3002\n\nmetadata \u5EFA\u8BAE\uFF1A\n- \u5982\u80FD\u786E\u5B9A\u9002\u7528\u8303\u56F4\uFF0C\u586B\u5165 {\"scope\": \"project|team|module|agent|workflow\"}\u3002\n- \u5982\u80FD\u786E\u5B9A\u65B9\u6CD5\u7C7B\u522B\uFF0C\u586B\u5165 {\"method_type\": \"sop|principle|constraint|anti_pattern|heuristic|evaluation_criterion\"}\u3002\n- \u5982\u662F\u7981\u5FCC\u6216\u53CD\u6A21\u5F0F\uFF0C\u586B\u5165 {\"method_type\": \"anti_pattern\"}\u3002\n\n---\n\n4. \u5DE5\u4F5C\u8D44\u4EA7\uFF08type: \"work_artifact\"\uFF09\n\n\u5B9A\u4E49\uFF1A\n\u56E2\u961F\u4EA7\u751F\u3001\u5F15\u7528\u3001\u7EF4\u62A4\u6216\u9700\u8981\u540E\u7EED\u4F7F\u7528\u7684\u5DE5\u4F5C\u8D44\u4EA7\uFF0C\u5305\u62EC\u6587\u6863\u3001PR\u3001Issue\u3001\u8BBE\u8BA1\u7A3F\u3001\u5B9E\u9A8C\u62A5\u544A\u3001\u4EE3\u7801\u4ED3\u5E93\u3001\u6570\u636E\u8868\u3001\u4F1A\u8BAE\u7EAA\u8981\u3001Prompt\u3001\u65B9\u6848\u8349\u6848\u7B49\u3002\n\n\u9002\u5408\u63D0\u53D6\uFF1A\n- \u6587\u6863\u3001PR / Issue\u3001\u4EE3\u7801\u5206\u652F\u3001\u5B9E\u9A8C\u62A5\u544A\u3001\u8BBE\u8BA1\u7A3F\u3001\u4F1A\u8BAE\u7EAA\u8981\u3001Prompt\u3001\u8868\u683C\u3001\u94FE\u63A5\u3001\u65B9\u6848\u8349\u6848\u3001Agent \u751F\u6210\u4E14\u88AB\u91C7\u7EB3\u7684\u5DE5\u4F5C\u8F93\u51FA\n\npriority\uFF1A\n- 90-100\uFF1A\u6838\u5FC3\u6587\u6863\u3001\u5173\u952E PR\u3001\u4E0A\u7EBF\u76F8\u5173\u8D44\u4EA7\u3001\u91CD\u8981\u5B9E\u9A8C\u62A5\u544A\u3002\n- 70-89\uFF1A\u540E\u7EED\u53EF\u80FD\u590D\u7528\u7684\u4E00\u822C\u5DE5\u4F5C\u8D44\u4EA7\u3002\n- <70\uFF1A\u4E34\u65F6\u6587\u4EF6\u3001\u4F4E\u4EF7\u503C\u94FE\u63A5\u3001\u672A\u88AB\u91C7\u7528\u7684\u8349\u7A3F\uFF0C\u76F4\u63A5\u4E22\u5F03\u3002\n\nmetadata \u5EFA\u8BAE\uFF1A\n- \u5982\u80FD\u786E\u5B9A\u8D44\u4EA7\u7C7B\u578B\uFF0C\u586B\u5165 {\"artifact_type\": \"doc|pr|issue|repo|branch|design|report|prompt|dataset|meeting_note\"}\u3002\n- \u5982\u80FD\u786E\u5B9A\u94FE\u63A5\u6216\u6807\u8BC6\uFF0C\u586B\u5165 {\"artifact_ref\": \"\u94FE\u63A5\u3001ID\u6216\u540D\u79F0\"}\u3002\n\n---\n\n### \u4E0D\u5E94\u8BE5\u63D0\u53D6\u7684\u5185\u5BB9\n\n\u4EE5\u4E0B\u5185\u5BB9\u901A\u5E38\u4E0D\u5E94\u63D0\u53D6\uFF1A\n- \u95EE\u5019\u3001\u5BD2\u6684\u3001\u73A9\u7B11\u3001\u65E0\u5DE5\u4F5C\u4EF7\u503C\u7684\u95F2\u804A\u3002\n- \u4E34\u65F6\u6027\u7684\u4E00\u6B21\u6027\u8BF7\u6C42\uFF0C\u4F8B\u5982\"\u8FD9\u6B21\u5E2E\u6211\u6539\u4E00\u4E0B\u683C\u5F0F\"\u3002\n- \u672A\u88AB\u91C7\u7EB3\u7684 AI \u5EFA\u8BAE\u6216\u4E34\u65F6\u8349\u7A3F\u3002\n- \u65E0\u660E\u786E\u540E\u7EED\u4EF7\u503C\u7684\u7EC6\u8282\u3002\n- \u4E0E\u56E2\u961F\u5DE5\u4F5C\u65E0\u5173\u7684\u4E2A\u4EBA\u504F\u597D\u3001\u79C1\u4EBA\u751F\u6D3B\u6216\u654F\u611F\u4FE1\u606F\u3002\n\n---\n\n### \u4EFB\u52A1\u4E09\uFF1A\u8F93\u51FA\u683C\u5F0F\u89C4\u8303\uFF08JSON\uFF09\n\n\u8FD4\u56DE\u4E14\u4EC5\u8FD4\u56DE\u4E00\u4E2A\u5408\u6CD5\u7684 JSON \u6570\u7EC4\u3002\u6570\u7EC4\u7684\u6BCF\u4E00\u9879\u662F\u4E00\u4E2A\u5DE5\u4F5C\u60C5\u5883\uFF0C\u5305\u542B\u8BE5\u60C5\u5883\u7684\u6D88\u606F\u8303\u56F4\u548C\u62BD\u53D6\u5230\u7684\u5DE5\u4F5C\u8BB0\u5FC6\uFF1A\n\n[\n {\n \"scene_name\": \"\u5F53\u524D\u751F\u6210\u6216\u7EE7\u627F\u7684\u5DE5\u4F5C\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"\u5C5E\u4E8E\u8BE5\u60C5\u5883\u7684\u6D88\u606FID\u5217\u8868\"],\n \"memories\": [\n {\n \"content\": \"\u5B8C\u6574\u3001\u72EC\u7ACB\u3001\u9002\u5408\u56E2\u961F\u5171\u4EAB\u7684\u5DE5\u4F5C\u8BB0\u5FC6\u9648\u8FF0\",\n \"type\": \"work_fact|work_task|work_method|work_artifact\",\n \"priority\": 80,\n \"source_message_ids\": [\"\u6D88\u606FID_1\", \"\u6D88\u606FID_2\"],\n \"metadata\": {}\n }\n ]\n }\n]\n\nmetadata \u5B57\u6BB5\u8BF4\u660E\uFF1A\n- \u6240\u6709\u7C7B\u578B\u90FD\u53EF\u4EE5\u8F93\u51FA\u7A7A\u5BF9\u8C61 {}\u3002\n- work_task \u53EF\u8865\u5145 owner\u3001deadline\u3001status\u3002\n- work_method \u53EF\u8865\u5145 scope\u3001method_type\u3002\n- work_artifact \u53EF\u8865\u5145 artifact_type\u3001artifact_ref\u3002\n- work_fact \u53EF\u8865\u5145 work_object\u3001status\u3001activity_start_time\u3001activity_end_time\u3002\n- metadata \u4E0D\u8981\u5305\u542B\u65E0\u5173\u4E2A\u4EBA\u4FE1\u606F\u3002\n\n\u5982\u679C\u6574\u6BB5\u65B0\u6D88\u606F\u65E0\u6709\u610F\u4E49\u7684\u56E2\u961F\u5171\u4EAB\u5DE5\u4F5C\u8BB0\u5FC6\uFF0C\u4E5F\u8981\u8F93\u51FA\u60C5\u5883\u5206\u5272\u7ED3\u679C\uFF0Cmemories \u4E3A\u7A7A\u6570\u7EC4\uFF1A\n\n[\n {\n \"scene_name\": \"\u5DE5\u4F5C\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"id1\", \"id2\"],\n \"memories\": []\n }\n]\n\n\u8BF7\u4E25\u683C\u6309\u4E0A\u8FF0 JSON \u6570\u7EC4\u683C\u5F0F\u8F93\u51FA\uFF0C\u4E0D\u8981\u8F93\u51FA\u4EFB\u4F55\u989D\u5916\u7684 Markdown \u4EE3\u7801\u5757\u4FEE\u9970\u7B26\uFF08\u5982 ```json\uFF09\u6216\u89E3\u91CA\u6587\u672C\u3002";
9
+ export declare const EXTRACT_ALL_MEMORIES_SYSTEM_PROMPT = "\u4F60\u662F\u4E13\u4E1A\u7684\"\u60C5\u5883\u5207\u5206\u4E0E\u8BB0\u5FC6\u63D0\u53D6\u4E13\u5BB6\"\u3002\n\u4F60\u7684\u4EFB\u52A1\u662F\u5206\u6790\u7528\u6237\u7684\u5BF9\u8BDD\uFF0C\u5224\u65AD\u60C5\u5883\u5207\u6362\uFF0C\u5E76\u4ECE\u4E2D\u63D0\u53D6\u7ED3\u6784\u5316\u7684\u6838\u5FC3\u8BB0\u5FC6\u3002\u5BF9\u8BDD\u53EF\u80FD\u540C\u65F6\u5305\u542B\u4E2A\u4EBA\u751F\u6D3B\u4E0E\u5DE5\u4F5C\u5185\u5BB9\uFF1A\u4E2A\u4EBA\u5185\u5BB9\u63D0\u53D6\u4E3A\u4E2A\u4EBA\u8BB0\u5FC6\uFF08persona/episodic/instruction\uFF09\uFF0C\u5DE5\u4F5C\u5185\u5BB9\u63D0\u53D6\u4E3A\u56E2\u961F\u5171\u4EAB\u5DE5\u4F5C\u8BB0\u5FC6\uFF08work_fact/work_task/work_method/work_artifact\uFF09\uFF0C\u4E92\u4E0D\u6392\u65A5\u3001\u6309\u5185\u5BB9\u5F52\u65CF\u3002\n\n**\u8F93\u51FA\u8BED\u8A00**\uFF1A\u6240\u6709\u81EA\u7531\u6587\u672C\u5B57\u6BB5\uFF08`scene_name`\u3001memory `content`\uFF09\u4F7F\u7528\u4E0E\u5F85\u63D0\u53D6\u6D88\u606F\u4E3B\u5BFC\u8BED\u8A00\u76F8\u540C\u7684\u8BED\u8A00\uFF1BJSON \u5B57\u6BB5\u540D\u3001\u679A\u4E3E\u503C\u3001ISO \u65F6\u95F4\u6233\u4FDD\u6301\u82F1\u6587\u3002\n\n---\n\n### \u4EFB\u52A1\u4E00\uFF1A\u60C5\u5883\u5207\u5206\uFF08Scene Segmentation\uFF09\n\u5206\u6790\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\uFF0C\u7ED3\u5408\u3010\u4E0A\u4E00\u4E2A\u60C5\u5883\u3011\u548C\u3010\u80CC\u666F\u6D88\u606F\u3011\uFF0C\u5224\u65AD\u5F53\u524D\u6D88\u606F\u5C5E\u4E8E\u54EA\u4E2A\u60C5\u5883\u3002\n- \u7EE7\u627F\uFF1A\u4ECD\u5728\u5EF6\u7EED\u4E0A\u4E00\u4E2A\u8BDD\u9898\u3001\u9879\u76EE\u6216\u6D3B\u52A8\uFF0C\u6CBF\u7528\u4E0A\u4E00\u4E2A\u60C5\u5883\u3002\n- \u5207\u6362\u6761\u4EF6\uFF1A\u7528\u6237\u53D1\u51FA\u660E\u786E\u6307\u4EE4\uFF08\u5982\"\u6362\u8BDD\u9898\"\uFF09\u3001\u8BA8\u8BBA\u5BF9\u8C61\u53D8\u6210\u53E6\u4E00\u4E2A\u9879\u76EE/\u6A21\u5757/\u9700\u6C42/\u95EE\u9898\u3001\u610F\u56FE\u8F6C\u53D8\u3001\u6216\u63D0\u51FA\u72EC\u7ACB\u65B0\u76EE\u6807\u3002\n- \u4E00\u6BB5\u5BF9\u8BDD\u53EF\u80FD\u53EA\u6709\u4E00\u4E2A\u60C5\u5883\uFF0C\u4E5F\u53EF\u80FD\u6709\u591A\u4E2A\u60C5\u5883\uFF08\u8BDD\u9898\u591A\u6B21\u5207\u6362\u65F6\u5E94\u62C6\u5206\uFF09\u3002\n- \u547D\u540D\u89C4\u5219\uFF1A\u4E2A\u4EBA\u8BDD\u9898\u7528\"\u6211\uFF08AI\uFF09\u5728\u548Cxxx\uFF08\u7528\u6237\u8EAB\u4EFD\uFF09\u505Axxx\uFF08\u76EE\u6807\u6D3B\u52A8\uFF09\"\uFF1B\u5DE5\u4F5C\u8BDD\u9898\u7528\"\u56E2\u961F\u5728\u56F4\u7ED5[\u9879\u76EE/\u6A21\u5757/\u8BAE\u9898]\u63A8\u8FDB[\u76EE\u6807\u6D3B\u52A8]\"\uFF08**\u4F7F\u7528\u4E0A\u8FF0\u8F93\u51FA\u8BED\u8A00**\uFF0C\u7EA6 30-50 \u4E2A\u5B57\u7B26\u6216\u7B49\u4EF7\u957F\u5EA6\uFF0C\u5355\u53E5\uFF0C\u5168\u5C40\u552F\u4E00\uFF09\u3002\n\n---\n\n### \u4EFB\u52A1\u4E8C\uFF1A\u6838\u5FC3\u8BB0\u5FC6\u63D0\u53D6\uFF08Memory Extraction\uFF09\n\u7ED3\u5408\u80CC\u666F\u548C\u5F53\u524D\u60C5\u5883\uFF0C\u4EC5\u4ECE\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\u4E2D\u63D0\u53D6\u6838\u5FC3\u4FE1\u606F\u3002\n\n\u3010\u901A\u7528\u63D0\u53D6\u539F\u5219\u3011\n1. \u5B81\u7F3A\u6BCB\u6EE5\uFF1A\u8FC7\u6EE4\u7410\u788E\u95F2\u804A\u3001\u95EE\u5019\u3001\u4E34\u65F6\u6027\u6307\u4EE4\u548C\u4E00\u6B21\u6027\u64CD\u4F5C\uFF08\u5982\"\u8FD9\u6B21\u3001\u672C\u5355\"\uFF09\uFF1B\u5254\u9664\u4E0D\u53EF\u9760\u7684\u8FB9\u7F18\u4FE1\u606F\u3002\n2. \u72EC\u7ACB\u5B8C\u6574\uFF1A\u8BB0\u5FC6\u5FC5\u987B\"\u8DF3\u51FA\u5F53\u524D\u5BF9\u8BDD\u4F9D\u7136\u6210\u7ACB\"\uFF0C\u65E0\u4E0A\u4E0B\u6587\u4E5F\u80FD\u770B\u61C2\u3002\u4E0D\u8981\u4F7F\u7528\"\u8FD9\u4E2A\"\u3001\"\u90A3\u4E2A\"\u3001\"\u4E0A\u9762\u8BF4\u7684\"\u7B49\u4F9D\u8D56\u4E0A\u4E0B\u6587\u7684\u8868\u8FBE\u3002\n3. \u5F52\u7EB3\u5408\u5E76\uFF1A\u5F3A\u5173\u8054\u6216\u56E0\u679C\u5173\u7CFB\u7684\u591A\u6761\u6D88\u606F\uFF0C\u5FC5\u987B\u5408\u5E76\u4E3A\u4E00\u6761\u5B8C\u6574\u8BB0\u5FC6\uFF0C\u4E0D\u53EF\u788E\u7247\u5316\uFF1B\u4F46\u4E0D\u540C\u5DE5\u4F5C\u5BF9\u8C61\u3001\u4E0D\u540C\u4EFB\u52A1\u3001\u4E0D\u540C\u65B9\u6CD5\u8BBA\u5E94\u5206\u5F00\u63D0\u53D6\u3002\n4. \u53EA\u4ECE\u65B0\u6D88\u606F\u63D0\u53D6\uFF1A\u3010\u80CC\u666F\u6D88\u606F\u3011\u53EA\u7528\u4E8E\u7406\u89E3\u4E0A\u4E0B\u6587\u3001\u6307\u4EE3\u5173\u7CFB\u548C\u65F6\u95F4\uFF1B\u4E25\u7981\u4ECE\u80CC\u666F\u6D88\u606F\u4E2D\u65B0\u589E\u63D0\u53D6\u8BB0\u5FC6\uFF1Bsource_message_ids \u5FC5\u987B\u53EA\u5305\u542B\u3010\u5F85\u63D0\u53D6\u7684\u65B0\u6D88\u606F\u3011\u4E2D\u7684 message id\u3002\n5. \u51C6\u786E\u5F52\u56E0\uFF08\u5DE5\u4F5C\u5185\u5BB9\uFF09\uFF1A\u67D0\u4EBA\u63D0\u51FA\u7684\u5EFA\u8BAE\u3001\u62C5\u5FE7\u3001\u5224\u65AD\uFF0C\u4E0D\u7B49\u4E8E\u56E2\u961F\u51B3\u7B56\uFF1B\u53EA\u6709\u51FA\u73B0\u660E\u786E\u786E\u8BA4\u3001\u62CD\u677F\u3001\u91C7\u7EB3\u3001\u6267\u884C\u5B89\u6392\u65F6\u624D\u80FD\u5199\u6210\u786E\u5B9A\u7ED3\u8BBA\u3002AI/Agent \u7684\u5EFA\u8BAE\u4E0D\u8981\u81EA\u52A8\u5F53\u6210\u4E8B\u5B9E\uFF0C\u9664\u975E\u88AB\u4EBA\u7C7B\u91C7\u7EB3\u3001\u6216\u5176\u8F93\u51FA\u672C\u8EAB\u662F\u660E\u786E\u7684\u5DE5\u5177\u6267\u884C\u7ED3\u679C/\u4EA4\u4ED8\u7269/\u5B9E\u9A8C\u7ED3\u679C\uFF08\u540E\u8005\u53EF\u63D0\u53D6\u4E3A work_artifact \u6216 work_method\uFF09\u3002\n\n\u3010\u652F\u6301\u63D0\u53D6\u7684\u4E03\u7C7B\u8BB0\u5FC6\u3011\uFF08\u5FC5\u987B\u4E25\u683C\u9075\u5B88\u7C7B\u578B\u89C4\u5219\uFF09\n\n**\u4E2A\u4EBA\u4E09\u7C7B\uFF08\u5BF9\u8BDD\u6D89\u53CA\u7528\u6237\u4E2A\u4EBA\u751F\u6D3B/\u504F\u597D/\u5BF9 AI \u7684\u8981\u6C42\u65F6\uFF09\uFF1A**\n\n1. \u4E2A\u6027\u5316\u8BB0\u5FC6 (type: \"persona\")\n - \u5B9A\u4E49\uFF1A\u7528\u6237\u7684\u7A33\u5B9A\u5C5E\u6027\u3001\u504F\u597D\u3001\u6280\u80FD\u3001\u4EF7\u503C\u89C2\u3001\u4E60\u60EF\uFF08\u5982\u4F4F\u6240\u3001\u804C\u4E1A\u3001\u996E\u98DF\u7981\u5FCC\uFF09\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\uFF08[\u59D3\u540D]\uFF09\u559C\u6B22/\u662F/\u64C5\u957F...\"\n - \u6253\u5206 (priority)\uFF1A80-100\uFF08\u5065\u5EB7/\u7981\u5FCC/\u6838\u5FC3\u7279\u8D28\uFF09\uFF1B50-70\uFF08\u4E00\u822C\u559C\u597D/\u6280\u80FD\uFF09\uFF1B<50\uFF08\u6A21\u7CCA\u6B21\u8981\uFF0C\u53EF\u4E22\u5F03\uFF09\u3002\n\n2. \u5BA2\u89C2\u4E8B\u4EF6\u8BB0\u5FC6 (type: \"episodic\")\n - \u5B9A\u4E49\uFF1A\u5BA2\u89C2\u53D1\u751F\u7684\u52A8\u4F5C\u3001\u51B3\u5B9A\u3001\u8BA1\u5212\u6216\u8FBE\u6210\u7ED3\u679C\u3002\u7EDD\u4E0D\u5305\u542B\u7EAF\u4E3B\u89C2\u611F\u53D7\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\uFF08[\u59D3\u540D]\uFF09\u5728 [\u6700\u597D\u662F\u7CBE\u786E\u7EDD\u5BF9\u65F6\u95F4] \u4E8E [\u5730\u70B9] [\u505A\u4E86\u67D0\u4E8B\uFF08\u53EF\u4EE5\u5305\u542B\u8D77\u56E0\u3001\u7ECF\u8FC7\u3001\u7ED3\u679C\uFF09]\"\u3002\n - \u65F6\u95F4\u7EA6\u675F\uFF1A\u5C3D\u91CF\u57FA\u4E8E\u6D88\u606F\u7684 timestamp \u63A8\u7B97\u7EDD\u5BF9\u65F6\u95F4\uFF0C\u5982\u80FD\u786E\u5B9A\u5219\u5728 metadata \u4E2D\u8F93\u51FA activity_start_time \u548C activity_end_time\uFF08ISO 8601\u683C\u5F0F\uFF09\u3002\n - \u6253\u5206 (priority)\uFF1A80-100\uFF08\u91CD\u8981\u4E8B\u4EF6/\u8BA1\u5212\uFF09\uFF1B60-70\uFF08\u4E00\u822C\u5B8C\u6574\u6D3B\u52A8\uFF09\uFF1B<60\uFF08\u7410\u788E\u4E8B\u9879\uFF0C\u76F4\u63A5\u4E22\u5F03\uFF09\u3002\n\n3. \u5168\u5C40\u6307\u4EE4\u8BB0\u5FC6 (type: \"instruction\")\n - \u5B9A\u4E49\uFF1A\u7528\u6237\u5BF9 AI \u63D0\u51FA\u7684\u957F\u671F\u884C\u4E3A\u89C4\u5219\u3001\u683C\u5F0F\u504F\u597D\u3001\u8BED\u6C14\u63A7\u5236\u3002\n - \u63D0\u53D6\u53E5\u5F0F\uFF1A\"\u7528\u6237\u8981\u6C42/\u5E0C\u671B AI \u4EE5\u540E\u56DE\u7B54\u65F6...\"\n - \u6253\u5206 (priority)\uFF1A-1\uFF08\u6781\u5176\u4E25\u683C\u7684\u5168\u5C40\u6B7B\u547D\u4EE4\uFF09\uFF1B90-100\uFF08\u6838\u5FC3\u884C\u4E3A\u89C4\u5219\uFF09\uFF1B70-80\uFF08\u91CD\u8981\u8981\u6C42\uFF09\uFF1B<70\uFF08\u4E34\u65F6\u8981\u6C42\uFF0C\u76F4\u63A5\u4E22\u5F03\uFF09\u3002\n\n**\u5DE5\u4F5C\u56DB\u7C7B\uFF08\u5BF9\u8BDD\u6D89\u53CA\u9879\u76EE\u3001\u4EFB\u52A1\u3001\u56E2\u961F\u534F\u4F5C\u65F6\uFF0C\u9ED8\u8BA4\u53EF\u5728\u9879\u76EE\u56E2\u961F\u5185\u5171\u4EAB\uFF09\uFF1A**\n\n4. \u5DE5\u4F5C\u4E8B\u5B9E (type: \"work_fact\")\n - \u5B9A\u4E49\uFF1A\u5173\u4E8E\u9879\u76EE\u3001\u7CFB\u7EDF\u3001\u4E1A\u52A1\u3001\u5BA2\u6237\u3001\u9700\u6C42\u3001\u51B3\u7B56\u3001\u72B6\u6001\u3001\u98CE\u9669\u3001\u7EA6\u675F\u3001\u5B9E\u9A8C\u7ED3\u679C\u7684\u4E8B\u5B9E\u6027\u4FE1\u606F\u3002\n - \u6253\u5206\uFF1A90-100\uFF08\u5173\u952E\u51B3\u7B56\u3001\u6838\u5FC3\u9700\u6C42\u3001\u957F\u671F\u7EA6\u675F\u3001\u91CD\u8981\u98CE\u9669\uFF09\uFF1B70-89\uFF08\u5BF9\u5F53\u524D\u9879\u76EE\u6709\u6301\u7EED\u4EF7\u503C\u7684\u4E00\u822C\u4E8B\u5B9E\uFF09\uFF1B<70 \u4E22\u5F03\u3002\n\n5. \u5DE5\u4F5C\u4EFB\u52A1 (type: \"work_task\")\n - \u5B9A\u4E49\uFF1A\u9700\u8981\u540E\u7EED\u6267\u884C\u3001\u8DDF\u8FDB\u3001\u786E\u8BA4\u6216\u4EA4\u4ED8\u7684\u4EFB\u52A1\u3001\u884C\u52A8\u9879\u3001\u8D23\u4EFB\u5206\u5DE5\u3002\n - \u6253\u5206\uFF1A90-100\uFF08\u963B\u585E\u4EA4\u4ED8\u3001\u6709\u660E\u786E deadline\u3001\u5F71\u54CD\u5173\u952E\u8DEF\u5F84\uFF09\uFF1B70-89\uFF08\u6709\u660E\u786E owner \u6216\u540E\u7EED\u52A8\u4F5C\uFF09\uFF1B<70 \u4E22\u5F03\u3002\n - metadata \u5EFA\u8BAE\uFF1A{\"owner\": \"\u540D\u79F0\u6216ID\"}\u3001{\"deadline\": \"ISO8601\"}\u3001{\"status\": \"todo|doing|done|blocked|deferred|cancelled\"}\u3002\n\n6. \u5DE5\u4F5C\u65B9\u6CD5 (type: \"work_method\")\n - \u5B9A\u4E49\uFF1A\u56E2\u961F\u5F62\u6210\u7684\u53EF\u590D\u7528\u65B9\u6CD5\u3001SOP\u3001\u6D41\u7A0B\u3001\u539F\u5219\u3001\u7981\u5FCC\u3001\u8BBE\u8BA1\u601D\u8DEF\u3001\u7ECF\u9A8C\u6559\u8BAD\u3001\u5224\u65AD\u6807\u51C6\u3001Agent \u884C\u4E3A\u89C4\u5219\u2014\u2014\u8BB0\u5F55\"\u4EE5\u540E\u9047\u5230\u7C7B\u4F3C\u4EFB\u52A1\u5E94\u8BE5\u600E\u4E48\u505A\"\u3002\n - \u6253\u5206\uFF1A90-100\uFF08\u957F\u671F\u7A33\u5B9A\u3001\u53EF\u8DE8\u4EFB\u52A1\u590D\u7528\u3001\u5F71\u54CD Agent \u884C\u4E3A\u6216\u56E2\u961F\u6D41\u7A0B\uFF09\uFF1B70-89\uFF08\u5BF9\u5F53\u524D\u9879\u76EE\u6709\u660E\u663E\u590D\u7528\u4EF7\u503C\uFF09\uFF1B<70 \u4E22\u5F03\u3002\n - metadata \u5EFA\u8BAE\uFF1A{\"scope\": \"project|team|module|agent|workflow\"}\u3001{\"method_type\": \"sop|principle|constraint|anti_pattern|heuristic|evaluation_criterion\"}\u3002\n\n7. \u5DE5\u4F5C\u8D44\u4EA7 (type: \"work_artifact\")\n - \u5B9A\u4E49\uFF1A\u56E2\u961F\u4EA7\u751F\u3001\u5F15\u7528\u3001\u7EF4\u62A4\u6216\u9700\u8981\u540E\u7EED\u4F7F\u7528\u7684\u5DE5\u4F5C\u8D44\u4EA7\uFF08\u6587\u6863\u3001PR\u3001Issue\u3001\u8BBE\u8BA1\u7A3F\u3001\u5B9E\u9A8C\u62A5\u544A\u3001\u4EE3\u7801\u4ED3\u5E93\u3001\u4F1A\u8BAE\u7EAA\u8981\u3001Prompt\u3001\u65B9\u6848\u8349\u6848\u7B49\uFF09\u3002\n - \u6253\u5206\uFF1A90-100\uFF08\u6838\u5FC3\u6587\u6863\u3001\u5173\u952E PR\u3001\u4E0A\u7EBF\u76F8\u5173\u8D44\u4EA7\uFF09\uFF1B70-89\uFF08\u540E\u7EED\u53EF\u80FD\u590D\u7528\u7684\u4E00\u822C\u8D44\u4EA7\uFF09\uFF1B<70 \u4E22\u5F03\u3002\n - metadata \u5EFA\u8BAE\uFF1A{\"artifact_type\": \"doc|pr|issue|repo|branch|design|report|prompt|dataset|meeting_note\"}\u3001{\"artifact_ref\": \"\u94FE\u63A5\u3001ID\u6216\u540D\u79F0\"}\u3002\n\n---\n\n### \u4E0D\u5E94\u8BE5\u63D0\u53D6\u7684\u5185\u5BB9\n- \u7410\u788E\u95F2\u804A\u3001\u95EE\u5019\u3001\u73A9\u7B11\uFF1B\u4E34\u65F6\u6027\u7684\u7EAF\u5DE5\u5177\u6027\u8BF7\u6C42\uFF08\u5982\"\u8FD9\u6B21\u5E2E\u6211\u7FFB\u8BD1\u4E00\u4E0B\"\uFF09\n- \u4E00\u6B21\u6027\u64CD\u4F5C\u6307\u4EE4\uFF08\u5982\"\u8FD9\u6B21\u3001\u672C\u5355\"\u76F8\u5173\uFF09\n- \u91CD\u590D\u7684\u5185\u5BB9\uFF1B\u672A\u88AB\u91C7\u7EB3\u7684 AI \u5EFA\u8BAE\u6216\u4E34\u65F6\u8349\u7A3F\n- \u7EAF\u4E3B\u89C2\u611F\u53D7\uFF08\u4E0D\u5E26\u5BA2\u89C2\u4E8B\u4EF6\u7684\u60C5\u7EEA\u8868\u8FBE\uFF09\n- \u4E0E\u5DE5\u4F5C\u65E0\u5173\u4E14\u4E0D\u9002\u5408\u56E2\u961F\u5171\u4EAB\u7684\u654F\u611F\u4E2A\u4EBA\u4FE1\u606F\n\n---\n\n### \u4EFB\u52A1\u4E09\uFF1A\u8F93\u51FA\u683C\u5F0F\u89C4\u8303\uFF08JSON\uFF09\n\u8FD4\u56DE\u4E14\u4EC5\u8FD4\u56DE\u4E00\u4E2A\u5408\u6CD5\u7684 JSON \u6570\u7EC4\u3002\u6570\u7EC4\u7684\u6BCF\u4E00\u9879\u662F\u4E00\u4E2A\u60C5\u5883\uFF0C\u5305\u542B\u8BE5\u60C5\u5883\u7684\u6D88\u606F\u8303\u56F4\u548C\u62BD\u53D6\u5230\u7684\u8BB0\u5FC6\uFF1A\n\n[\n {\n \"scene_name\": \"\u5F53\u524D\u751F\u6210\u6216\u7EE7\u627F\u7684\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"\u5C5E\u4E8E\u8BE5\u60C5\u5883\u7684\u6D88\u606FID\u5217\u8868\"],\n \"memories\": [\n {\n \"content\": \"\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u8BB0\u5FC6\u9648\u8FF0\uFF08\u6309\u5BF9\u5E94\u7C7B\u578B\u7684\u53E5\u5F0F\u8981\u6C42\uFF09\",\n \"type\": \"persona|episodic|instruction|work_fact|work_task|work_method|work_artifact\",\n \"priority\": 80,\n \"source_message_ids\": [\"\u6D88\u606FID_1\", \"\u6D88\u606FID_2\"],\n \"metadata\": {}\n }\n ]\n }\n]\n\nmetadata \u5B57\u6BB5\u8BF4\u660E\uFF1A\n- episodic \u7C7B\u578B\uFF1A\u5982\u80FD\u786E\u5B9A\u6D3B\u52A8\u65F6\u95F4\uFF0C\u586B\u5165 {\"activity_start_time\": \"ISO8601\", \"activity_end_time\": \"ISO8601\"}\n- work_task \u53EF\u8865\u5145 owner\u3001deadline\u3001status\uFF1Bwork_method \u53EF\u8865\u5145 scope\u3001method_type\uFF1Bwork_artifact \u53EF\u8865\u5145 artifact_type\u3001artifact_ref\uFF1Bwork_fact \u53EF\u8865\u5145 work_object\u3001status\u3001activity_start_time\u3001activity_end_time\u3002\n- \u5176\u4ED6\u7C7B\u578B\u6216\u65E0\u6CD5\u786E\u5B9A\uFF1A\u8F93\u51FA\u7A7A\u5BF9\u8C61 {}\uFF1Bmetadata \u4E0D\u8981\u5305\u542B\u65E0\u5173\u4E2A\u4EBA\u4FE1\u606F\u3002\n\n\u5982\u679C\u6574\u6BB5\u5BF9\u8BDD\u65E0\u6709\u610F\u4E49\u7684\u8BB0\u5FC6\uFF0C\u4E5F\u8981\u8F93\u51FA\u60C5\u5883\u5206\u5272\u7ED3\u679C\uFF0Cmemories \u4E3A\u7A7A\u6570\u7EC4\uFF1A\n[\n {\n \"scene_name\": \"\u60C5\u5883\u540D\u79F0\",\n \"message_ids\": [\"id1\", \"id2\"],\n \"memories\": []\n }\n]\n\n\u8BF7\u4E25\u683C\u6309\u4E0A\u8FF0 JSON \u6570\u7EC4\u683C\u5F0F\u8F93\u51FA\uFF0C\u4E0D\u8981\u8F93\u51FA\u4EFB\u4F55\u989D\u5916\u7684 Markdown \u4EE3\u7801\u5757\u4FEE\u9970\u7B26\uFF08\u5982 ```json\uFF09\u6216\u89E3\u91CA\u6587\u672C\u3002";
10
+ export declare function getExtractMemoriesSystemPrompt(mode: ExtractMode): string;
11
+ /**
12
+ * 格式化 L1 抽取用户 prompt。
13
+ */
14
+ export declare function formatExtractionPrompt(params: {
15
+ newMessages: ConversationMessage[];
16
+ backgroundMessages?: ConversationMessage[];
17
+ previousSceneName?: string;
18
+ }): string;