kimi-code-memory-mcp-server 0.1.0 → 0.1.2

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 (129) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.en.md +342 -0
  3. package/README.md +267 -125
  4. package/assets/contextFlow.svg +144 -0
  5. package/assets/user-agents.md +111 -0
  6. package/dist/config.d.ts +13 -0
  7. package/dist/config.js +13 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/context/wire-context.d.ts +3 -0
  10. package/dist/context/wire-context.js +20 -50
  11. package/dist/context/wire-context.js.map +1 -1
  12. package/dist/dao/constants.d.ts +33 -0
  13. package/dist/dao/constants.js +17 -0
  14. package/dist/dao/constants.js.map +1 -0
  15. package/dist/dao/index-catalog.d.ts +19 -0
  16. package/dist/dao/index-catalog.js +94 -0
  17. package/dist/dao/index-catalog.js.map +1 -0
  18. package/dist/dao/index-reconciler.d.ts +13 -0
  19. package/dist/dao/index-reconciler.js +162 -0
  20. package/dist/dao/index-reconciler.js.map +1 -0
  21. package/dist/dao/index-store.d.ts +31 -0
  22. package/dist/dao/index-store.js +128 -0
  23. package/dist/dao/index-store.js.map +1 -0
  24. package/dist/dao/index.d.ts +12 -31
  25. package/dist/dao/index.js +50 -404
  26. package/dist/dao/index.js.map +1 -1
  27. package/dist/dao/memory-store.js +2 -10
  28. package/dist/dao/memory-store.js.map +1 -1
  29. package/dist/dao/memory-tree-renderer.d.ts +22 -0
  30. package/dist/dao/memory-tree-renderer.js +75 -0
  31. package/dist/dao/memory-tree-renderer.js.map +1 -0
  32. package/dist/prompts/index.d.ts +26 -0
  33. package/dist/prompts/index.js +103 -0
  34. package/dist/prompts/index.js.map +1 -0
  35. package/dist/refine/adapter.d.ts +6 -0
  36. package/dist/refine/adapter.js +28 -0
  37. package/dist/refine/adapter.js.map +1 -0
  38. package/dist/refine/constants.d.ts +35 -0
  39. package/dist/refine/constants.js +107 -0
  40. package/dist/refine/constants.js.map +1 -0
  41. package/dist/refine/extractor.d.ts +12 -0
  42. package/dist/refine/extractor.js +122 -0
  43. package/dist/refine/extractor.js.map +1 -0
  44. package/dist/refine/store.d.ts +19 -0
  45. package/dist/refine/store.js +139 -0
  46. package/dist/refine/store.js.map +1 -0
  47. package/dist/refine/types.d.ts +56 -0
  48. package/dist/refine/types.js +5 -0
  49. package/dist/refine/types.js.map +1 -0
  50. package/dist/refined-manager.d.ts +10 -56
  51. package/dist/refined-manager.js +22 -341
  52. package/dist/refined-manager.js.map +1 -1
  53. package/dist/resources/index.d.ts +15 -0
  54. package/dist/resources/index.js +134 -0
  55. package/dist/resources/index.js.map +1 -0
  56. package/dist/server.js +46 -2
  57. package/dist/server.js.map +1 -1
  58. package/dist/setup-cli.d.ts +11 -0
  59. package/dist/setup-cli.js +84 -0
  60. package/dist/setup-cli.js.map +1 -0
  61. package/dist/setup.d.ts +33 -0
  62. package/dist/setup.js +206 -0
  63. package/dist/setup.js.map +1 -0
  64. package/dist/tools/context-tools.d.ts +16 -51
  65. package/dist/tools/context-tools.js +247 -55
  66. package/dist/tools/context-tools.js.map +1 -1
  67. package/dist/tools/index.d.ts +5 -827
  68. package/dist/tools/index.js +23 -354
  69. package/dist/tools/index.js.map +1 -1
  70. package/dist/tools/memory-tools.d.ts +4 -60
  71. package/dist/tools/memory-tools.js +129 -79
  72. package/dist/tools/memory-tools.js.map +1 -1
  73. package/dist/tools/system-tools.d.ts +3 -34
  74. package/dist/tools/system-tools.js +86 -32
  75. package/dist/tools/system-tools.js.map +1 -1
  76. package/dist/tools/theme-tools.d.ts +3 -31
  77. package/dist/tools/theme-tools.js +78 -22
  78. package/dist/tools/theme-tools.js.map +1 -1
  79. package/dist/tools/types.d.ts +21 -0
  80. package/dist/tools/types.js +13 -0
  81. package/dist/tools/types.js.map +1 -0
  82. package/dist/types.d.ts +4 -2
  83. package/dist/utils/action-entities.d.ts +16 -0
  84. package/dist/utils/action-entities.js +35 -0
  85. package/dist/utils/action-entities.js.map +1 -0
  86. package/dist/utils/date.d.ts +11 -0
  87. package/dist/utils/date.js +13 -0
  88. package/dist/utils/date.js.map +1 -0
  89. package/dist/utils/file-helpers.d.ts +10 -0
  90. package/dist/utils/file-helpers.js +28 -0
  91. package/dist/utils/file-helpers.js.map +1 -0
  92. package/dist/utils/headings.d.ts +5 -0
  93. package/dist/utils/headings.js +21 -0
  94. package/dist/utils/headings.js.map +1 -0
  95. package/dist/utils/search.d.ts +17 -0
  96. package/dist/utils/search.js +60 -0
  97. package/dist/utils/search.js.map +1 -0
  98. package/dist/utils/tools.d.ts +5 -0
  99. package/dist/utils/tools.js +10 -0
  100. package/dist/utils/tools.js.map +1 -0
  101. package/dist/version.d.ts +1 -1
  102. package/dist/version.js +1 -1
  103. package/dist/vis/api.d.ts +82 -0
  104. package/dist/vis/api.js +212 -0
  105. package/dist/vis/api.js.map +1 -0
  106. package/dist/vis/auto-start.d.ts +12 -0
  107. package/dist/vis/auto-start.js +87 -0
  108. package/dist/vis/auto-start.js.map +1 -0
  109. package/dist/vis/server.d.ts +14 -0
  110. package/dist/vis/server.js +103 -0
  111. package/dist/vis/server.js.map +1 -0
  112. package/dist/vis/static/app.js +395 -0
  113. package/dist/vis/static/index.html +95 -0
  114. package/dist/vis/static/style.css +707 -0
  115. package/dist/vis-cli.d.ts +7 -0
  116. package/dist/vis-cli.js +140 -0
  117. package/dist/vis-cli.js.map +1 -0
  118. package/docs/0.agent-memory-market-research.md +354 -0
  119. package/docs/1.memory-system-proposal-for-kimi-code.md +688 -0
  120. package/docs/2.memory-architecture-overview.md +417 -0
  121. package/docs/3.memory-skill-prompt-design.md +430 -0
  122. package/docs/4.kimi-code-native-evolution-roadmap.md +559 -0
  123. package/docs/5.decision-guard-design-notes.md +500 -0
  124. package/docs/ARCHITECTURE.md +2 -2
  125. package/docs/design-story.md +350 -0
  126. package/docs/three-layer-memory-model.md +153 -0
  127. package/docs/three-layer-memory-model.zh-CN.md +153 -0
  128. package/package.json +14 -6
  129. package/README.zh-CN.md +0 -227
@@ -0,0 +1,430 @@
1
+ # Memory Skill Prompt 设计文档
2
+
3
+ > 本文档描述如何设计一个 Prompt,让 Agent 从"金鱼脑的临时工"升级为"带档案的老法师"。它建立在 Memory MCP 的工具层之上,解决的不是"记性好不好",而是"行为一致性(Consistency)"的问题。
4
+
5
+ ---
6
+
7
+ ## TL;DR
8
+
9
+ Memory Skill 的核心任务只有三个:
10
+
11
+ 1. **该记的时候记** —— 把决策、规则、知识沉淀到 `memory/`
12
+ 2. **该查的时候查** —— 做决策前先翻档案
13
+ 3. **该整理的时候整理** —— 把 `memory/` 蒸馏成 `essence.md`
14
+
15
+ 所有规则围绕一个目标:让 Agent 的行为依赖于历史沉淀,而不是当前上下文的运气。
16
+
17
+ ---
18
+
19
+ ## 一、设计哲学
20
+
21
+ ### 1.1 为什么是"一致性"而不是"记性"
22
+
23
+ 没有记忆系统时,Agent 的决策是"无根的":
24
+
25
+ - 上一轮刚定好的架构,新开 Session 可能因为 prompt 变化而选相反的路
26
+ - 长周期项目里,周一做 Auth,周三做性能,周五回来 Auth 的上下文已经丢失
27
+ - 上下文窗口溢出后,Agent 会"突然失智"
28
+
29
+ 有了记忆系统后:
30
+
31
+ - 决策有锚点:`memory/decisions/` 保存"我们为什么这样决定"
32
+ - 任务有主题:`themes/` 把散落在多周的 Auth 讨论连成一条线
33
+ - 不会失智:`essence.md` 作为 ≤15KB 的"工作宪法",无论当前对话多乱都能回到核心规则
34
+
35
+ ### 1.2 三层记忆模型
36
+
37
+ ```text
38
+ ┌─────────────────────────────────────────────┐
39
+ │ Layer 1: 工作宪法 │
40
+ │ essence/essence.md (≤15KB) │
41
+ │ 当前什么最重要 │
42
+ └───────────────────┬─────────────────────────┘
43
+ │ 由 organize_memories 提炼
44
+
45
+ ┌─────────────────────────────────────────────┐
46
+ │ Layer 2: 结构化长期记忆 │
47
+ │ memory/ │
48
+ │ ├── decisions/ 关键决策 │
49
+ │ ├── rules/ 协作规则与编码红线 │
50
+ │ └── knowledge/ 项目知识与技术方案 │
51
+ └───────────────────┬─────────────────────────┘
52
+ │ 由 remember / recall / search 操作
53
+
54
+ ┌─────────────────────────────────────────────┐
55
+ │ Layer 3: 对话追溯与主题提炼 │
56
+ │ wire.jsonl → refined/ → themes/ │
57
+ │ 原始记录 每轮摘要 主题视图 │
58
+ └─────────────────────────────────────────────┘
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 二、启动协议(Boot Protocol)
64
+
65
+ 每次新会话开始后、回答用户第一个问题之前,Agent 必须执行:
66
+
67
+ ```text
68
+ Session Start
69
+
70
+
71
+ bootstrap_workspace()
72
+
73
+ ├──► 读取 essence.md → 知道"现在什么重要"
74
+
75
+ ├──► 读取 memoryIndexTree → 知道"我知道什么",关注 [new]
76
+
77
+ ├──► 读取 recentContext → 知道"刚才聊到哪了"
78
+
79
+ └──► 读取 notesRefs → 知道"有没有待处理速记"
80
+
81
+
82
+ 回答用户问题
83
+ ```
84
+
85
+ **纪律**:完成以上步骤前,不要执行任何会改变项目状态的操作(写文件、运行命令等)。
86
+
87
+ ---
88
+
89
+ ## 三、记录规则
90
+
91
+ ### 3.1 什么时候必须 `remember`
92
+
93
+ 出现以下任一信号,立即写入 `memory/`:
94
+
95
+ | 信号 | 用户说法示例 | folder | tag |
96
+ |------|-------------|--------|-----|
97
+ | 决策 | "我们决定用方案 A"、"拍板了" | `memory/decisions/` | `decision` |
98
+ | 规则 | "这里必须…"、"红线是…" | `memory/rules/` | `rule` |
99
+ | 知识 | 首次解释技术选型、接口约定、业务术语 | `memory/knowledge/` | `knowledge` |
100
+ | 修复 | 定位到 bug 根因和修复方案 | `memory/decisions/` 或 `memory/knowledge/` | `fix` |
101
+ | 约定 | 编码风格、目录结构、命名规范 | `memory/rules/` | `convention` |
102
+
103
+ ### 3.2 few-shot 示例
104
+
105
+ **场景:决策**
106
+
107
+ ```text
108
+ 用户:我们决定用 Tauri 的 command 模式做 IPC,不直接暴露 fs。
109
+
110
+ → Agent 调用:
111
+ remember(
112
+ key: "ipc-use-command-pattern",
113
+ folder: "memory/decisions",
114
+ tags: ["decision", "ipc", "tauri"],
115
+ content: |
116
+ IPC 采用 Tauri command 模式,前端通过 invoke 调用 Rust 命令。
117
+
118
+ 原因:避免直接暴露 Node/fs API,减少攻击面。
119
+
120
+ 影响范围:所有前端 ↔ Rust 的通信接口。
121
+
122
+ 相关文件:src/ipc/、src-tauri/src/commands/
123
+ )
124
+
125
+ → Agent 回复:
126
+ "已记录到 memory/decisions/ipc-use-command-pattern。"
127
+ ```
128
+
129
+ ### 3.3 什么时候不要 `remember`
130
+
131
+ 防止记忆库变成垃圾堆:
132
+
133
+ - 临时调试命令或探索性代码
134
+ - 用户未确认的推测
135
+ - 一次性报错(没有形成通用结论)
136
+ - 当前会话的临时上下文(由 `wire.jsonl` 自动捕获)
137
+ - 已经在 `memory/` 中存在的知识
138
+
139
+ **判断口诀**:
140
+
141
+ > 如果这条信息三天后回头看仍然有价值,才写入 `memory/`;否则让它留在 `wire.jsonl` 里。
142
+
143
+ ---
144
+
145
+ ## 四、查询规则
146
+
147
+ ### 4.1 什么时候该"翻旧账"
148
+
149
+ Agent 应在以下节点主动查询记忆:
150
+
151
+ 1. **启动后首次处理该工作区** → `bootstrap_workspace`(已自动执行)
152
+ 2. **要做架构/接口/流程决策前** → `search` 相关 `decision` 和 `rule`
153
+ 3. **用户提到"之前"、"上次"、"我们之前定过"** → `recall` 具体 key 或 `search` 关键词
154
+ 4. **要修改某个已有功能前** → `search` 该功能相关的决策和知识
155
+ 5. **出现与之前结论矛盾的倾向时** → 立即 `search` 验证历史决策
156
+ 6. **主题追溯请求** → 按"主题追溯冷启动规则"执行
157
+
158
+ ### 4.2 few-shot 示例
159
+
160
+ **场景:用户提到历史**
161
+
162
+ ```text
163
+ 用户:我们之前是不是说过不要在前端直接调用 fs?
164
+
165
+ → Agent 调用:
166
+ search(query: "前端 fs", folder: "memory")
167
+
168
+ → 命中 memory/decisions/frontend-no-direct-fs 后调用:
169
+ recall(key: "frontend-no-direct-fs", folder: "memory/decisions")
170
+
171
+ → Agent 回复:
172
+ "是的,根据 memory/decisions/frontend-no-direct-fs,我们决定通过 Tauri command
173
+ 模式暴露文件操作,避免前端直接调用 fs。"
174
+ ```
175
+
176
+ ---
177
+
178
+ ## 五、主题追溯冷启动规则
179
+
180
+ 当用户要求追溯某个主题时,**禁止直接全量提炼所有历史对话**。
181
+
182
+ ### 5.1 标准流程
183
+
184
+ ```text
185
+ 用户:"Auth 流怎么发展到现在的?"
186
+
187
+
188
+ 确认主题范围
189
+ "你指的是登录、注册、Token 刷新还是权限校验?"
190
+
191
+
192
+ 索要关键词种子(1-3 个)
193
+ "比如 auth、token、jwt、refresh"
194
+
195
+
196
+ search_context 粗筛候选 turns
197
+
198
+
199
+ 用户确认 / 补充候选
200
+
201
+
202
+ refine_session_turns 提炼缺失 turns
203
+
204
+
205
+ tag_theme 生成 themes/<theme>.json
206
+
207
+
208
+ trace_theme 输出主题时间线
209
+ ```
210
+
211
+ ### 5.2 禁止行为
212
+
213
+ - 没有关键词种子就全量提炼
214
+ - 把粗筛候选直接当成最终结果,不经过用户确认或至少明示"基于这些候选"
215
+
216
+ ### 5.3 为什么必须冷启动
217
+
218
+ 提炼是按需计算的昂贵操作;用户种子决定召回率,是避免遗漏关键 turns 的前提。同时,盲目提炼会把无关内容混入主题,降低主题视图质量。
219
+
220
+ ---
221
+
222
+ ## 六、整理规则
223
+
224
+ ### 6.1 什么时候整理 `essence.md`
225
+
226
+ - `memory/` 下新增 3-5 条关键决策/规则后
227
+ - 用户说"整理一下记忆"、"更新精要"
228
+ - `essence.md` 接近或超过 15KB
229
+ - 项目完成重要里程碑(版本发布、架构重构完成)
230
+
231
+ ### 6.2 整理流程
232
+
233
+ ```text
234
+ 触发条件满足
235
+
236
+
237
+ organize_memories() 空参调用
238
+
239
+
240
+ 返回 essence.md + memory/ 原材料 + 规则
241
+
242
+
243
+ Agent 生成新的精要 content(≤15KB)
244
+
245
+
246
+ organize_memories(content) 存储
247
+ ```
248
+
249
+ ### 6.3 整理纪律
250
+
251
+ - 关键结论必须 inline 标注来源:`> 来源:memory/decisions/ipc-use-command-pattern`
252
+ - 不删除任何 `memory/` 源文件
253
+ - 超过 15KB 时工具会警告,但允许写入;下次整理时应进一步压缩
254
+ - `notes/` 不参与整理
255
+
256
+ ---
257
+
258
+ ## 七、引用来源的纪律
259
+
260
+ 所有从 `memory/` 召回的关键结论,在回复中必须标注来源:
261
+
262
+ - ✅ "根据 `memory/decisions/ipc-use-command-pattern`,我们决定…"
263
+ - ✅ "如 `essence.md` 中总结的…"
264
+ - ❌ "我们之前决定…"(无来源)
265
+
266
+ 如果记忆与当前情况冲突,不要自动覆盖记忆,而是向用户提出澄清:
267
+
268
+ > "当前方案与 `memory/decisions/xxx` 中记录的决策冲突,是否需要更新该决策?"
269
+
270
+ ---
271
+
272
+ ## 八、记忆卫生检查清单
273
+
274
+ ### 8.1 每次调用 `remember` 前
275
+
276
+ - [ ] 这条信息三天后还有价值吗?
277
+ - [ ] 它属于 `decision` / `rule` / `knowledge` / `fix` / `convention` 之一吗?
278
+ - [ ] 是否已经有重复的记忆?(先 `search`)
279
+ - [ ] `folder` 选对了吗?项目相关不进 `notes/`
280
+ - [ ] `tags` 是否包含最贴切的分类标签?
281
+ - [ ] 正文是否包含决策原因/影响范围/相关文件?
282
+
283
+ ### 8.2 每次做决策前
284
+
285
+ - [ ] 是否已 `search` 相关历史决策?
286
+ - [ ] 是否已检查 `essence.md` 中的核心约束?
287
+ - [ ] 如果与历史记忆冲突,是否已向用户澄清?
288
+
289
+ ---
290
+
291
+ ## 九、决策守卫(Decision Guard)
292
+
293
+ 在你准备执行任何可能改变项目状态的操作之前(写文件、改结构、做选择、引入依赖),必须执行一次决策守卫。
294
+
295
+ ### 9.1 触发条件
296
+
297
+ 满足以下任一条件,必须暂停并主动检索记忆:
298
+
299
+ **决策型触发**:
300
+ - 你要做出架构/接口/数据模型选择
301
+ - 你要引入、删除或替换依赖
302
+ - 你要修改目录结构或移动核心文件
303
+ - 你要删除或重写已有功能
304
+ - 你的方案可能影响多个模块的协作方式
305
+
306
+ **推理性触发(无根盲推)**:
307
+ - 你使用了"我觉得"、"我认为"、"也许"、"暂定"、"先这样"等不确定表达
308
+ - 你引入了新方案但没有引用任何历史决策
309
+ - 你的方案与 `essence.md` 或 `memory/` 中的规则可能矛盾
310
+ - 你使用了新的命名/结构风格,与项目约定不一致
311
+ - 你解释了"为什么这样做"但没有给出具体来源
312
+
313
+ ### 9.2 检索流程
314
+
315
+ ```text
316
+ 准备执行关键动作
317
+
318
+
319
+ 提取关键词(技术实体 + 动作)
320
+
321
+
322
+ 并行查询:
323
+ ├── search(query, folder="memory") → 查决策/规则/知识
324
+ ├── search_context(query) → 查历史对话
325
+ └── 关键词像主题 → trace_theme(theme) → 查主题发展
326
+
327
+
328
+ 评估检索结果
329
+
330
+ ├── 命中且一致 → 引用来源后继续执行
331
+ ├── 命中但矛盾 → 向用户报告冲突,请求澄清
332
+ ├── 未命中但重要 → 询问用户"这是一个新决策,是否记录?"
333
+ └── 未命中且影响小 → 继续执行,但标记为待观察
334
+ ```
335
+
336
+ ### 9.3 关键词提取
337
+
338
+ 从你的当前方案中提取:
339
+ - 技术实体:Tauri、command、IPC、PlayerState、zustand
340
+ - 动作实体:引入、删除、修改、选择、替代
341
+ - 领域实体:frontend、backend、database
342
+
343
+ 生成 2-3 个查询变体,分别投向 `search()` 和 `search_context()`。
344
+
345
+ ### 9.4 最小自检
346
+
347
+ 如果你没时间走完整流程,至少问自己:
348
+
349
+ 1. 这个决定会影响架构、接口或数据模型吗?
350
+ 2. `memory/` 里是否已经有相关决策或规则?
351
+ 3. `essence.md` 里是否有相关约束?
352
+
353
+ 如果任一答案为"是",必须先 `search()` 再执行。
354
+
355
+ ### 9.5 为什么需要决策守卫
356
+
357
+ 没有守卫时,Agent 容易:
358
+ - 新开 Session 就推翻昨天刚定的架构
359
+ - 在长周期项目里反复重新解释"为什么这样设计"
360
+ - 上下文窗口溢出后"突然失智"
361
+
362
+ 决策守卫让 Agent 在**动作之前**就把当前方案与历史沉淀对齐,把一致性从"希望"变成"机制"。
363
+
364
+ ---
365
+
366
+ ## 十、与 MCP 工具的映射
367
+
368
+ | Skill 规则 | MCP 工具 | 作用 |
369
+ |------------|----------|------|
370
+ | 启动协议 | `bootstrap_workspace` | 加载精要、目录树、上下文、速记 |
371
+ | 写入决策/规则/知识 | `remember` | 写入 `memory/` |
372
+ | 精确读取 | `recall` | 按 key+folder 读取 |
373
+ | 关键词搜索 | `search` | 在记忆标题/内容中搜索 |
374
+ | 最近记忆 | `recall_recent` | 读取最近更新的记忆 |
375
+ | 查询历史 | `search_context` | 跨 session 搜索对话 |
376
+ | 加载指定轮次 | `load_turn_context` | 读取具体 turn 的完整内容 |
377
+ | 主题追溯 | `tag_theme` / `trace_theme` / `refine_session_turns` | 主题关联与演化 |
378
+ | 整理精要 | `organize_memories` | 生成/更新 `essence.md` |
379
+ | 同步索引 | `sync_workspace_index` | 重建 `index.json` / 设置 folder 备注 |
380
+
381
+ ---
382
+
383
+ ## 十一、常见误区
384
+
385
+ ### 误区 1:什么都记
386
+
387
+ 记忆库不是垃圾桶。什么都记会导致:
388
+ - `search` 召回噪音大
389
+ - `essence.md` 难以聚焦
390
+ - Agent 被过时信息干扰
391
+
392
+ **解法**:严格执行"三天后是否有价值"判断。
393
+
394
+ ### 误区 2:从不翻旧账
395
+
396
+ 只记不查,记忆系统就失去意义。
397
+
398
+ **解法**:在做任何可能影响架构、接口、流程的决策前,先 `search` 相关历史。
399
+
400
+ ### 误区 3:主题追溯盲跑
401
+
402
+ 没有关键词种子就全量提炼,会:
403
+ - 浪费计算
404
+ - 混入无关 turns
405
+ - 让用户感到 Agent 在"瞎猜"
406
+
407
+ **解法**:坚持冷启动流程,先确认范围再索要关键词。
408
+
409
+ ### 误区 4:记忆与现状冲突时自动覆盖
410
+
411
+ 历史记忆可能是正确的约束,当前用户的临时需求可能是例外。
412
+
413
+ **解法**:标注冲突,向用户澄清,由用户决定是否更新记忆。
414
+
415
+ ---
416
+
417
+ ## 十二、设计口诀
418
+
419
+ > **AGENTS.md 定义你是谁。essence.md 定义现在什么重要。memory/ 定义你知道什么。themes/ 定义知识如何连接。refined/ 定义你实际做了什么。**
420
+ >
421
+ > **memory/ 是自由生长的花园,essence.md 是剪出来的盆景,index.json 是花园的导览图,memoryIndexTree 是导览图上高亮最近改动的批注。**
422
+ >
423
+ > **wire.jsonl 是录音,refined/ 是翻译稿,themes/ 是索引,memory/ 是正典。**
424
+ >
425
+ > **该记则记,该查则查,该整理则整理。不要当金鱼,也不要当囤积狂。**
426
+
427
+ ---
428
+
429
+ *文档生成时间:2026-06-23*
430
+ *描述对象:Memory Skill Prompt 设计*