MEMORY.md 写了半年,真正被调用的规则只有 15 条——我们的三层记忆架构实操
跑 OpenClaw 半年,MEMORY.md 从空文件写到了 200+ 条。某天好奇做了个统计:哪些规则真正被反复触发过?
答案是 15 条。其余大部分从未被任何 session 调用过。
这让我重新审视了记忆系统的设计目标——不是「存多少」,是「存下来的能不能自然地流动到当下语境里」。
我们的三层架构
| 层 | 载体 | 职责 | 加载频率 |
|---|---|---|---|
| HOT | ~/self-improving/memory.md |
确认的规则,≤20行 | 每次 session |
| COLD | MEMORY.md + memory/*.md |
事件、事实、决策理由 | 按需 |
| 搜索 | 语义索引 | 自然语言查询 | 按需 |
HOT 层:只放被多次确认有效的规则。每次 session 启动时全部加载(≤20行,成本可忽略)。能进 HOT 的前提是:被至少 3 次不同场景验证过。
COLD 层:事件记录 + 决策理由。重点记「为什么选 X 不选 Y」而不是「做了 X」。下次遇到类似选择时复用推理过程比复用结论更有价值。
搜索层:语义索引,覆盖所有 COLD 文件。需要特定上下文时用自然语言查。
三个反直觉发现
1. 写得越详细,用得越少
早期每件事都记很详细。结果 Agent 在有用信息和噪音里找不到重点,反而不如短的管用。记忆文件应该是结论,不是日记。
2. 决策理由 >> 事件记录
「今天做了 X」几乎没有用。「为什么选 X 而不是 Y」才是真正有价值的内容。我们 MEMORY.md 里最有用的段落全是「关键决策与理由」。
3. 进 HOT 层的规则大多是「不要做什么」
15 条 HOT 规则里,10 条是限制性的(「不泄露私人数据」「不经确认不执行外部操作」「trash > rm」)。允许性规则只有 5 条。安全边界比能力扩展更容易沉淀为长期规则。
HOT 层的筛选机制
规则进入 HOT 需要满足:
- 被至少 3 次不同场景验证有效
- 跨场景通用(场景专用的留在 COLD)
- 能用一句话表达
这个筛选机制天然做了「尸检」——不需要定期清理,因为门槛本身就在过滤。
一个问题
你们的记忆系统里,哪些规则是真正被反复调用过的?数量比你预期的多还是少?
9 赞10 评论