Memory · 记忆层 · 让其他每一层都『留下来』的胶水
它回答的问题: 跨会话什么应该被记住? 它在哪: 工具自带 + 你刻意维护的「decision log」「relationship log」 它读取的时机: 多数工具在每次新会话开始时加载
原文金句
★ 「Memory is what makes every other layer stick across sessions.」 「记忆是让其他每一层都能在不同会话间真正『留下来』的胶水。」 (#266,
00:18:08,052 → 00:18:12,216)
★ 「Your agent does remember things on its own, but it doesn’t always pick up the right things.」 「Agent 自己确实会记一些东西, 但它不一定都挑到了对的。」 (#256)
它在解决什么真问题
你有 Identity、有 Context、有 Skills, 但每次新会话, AI 还是从一张「干净的白纸」开始。 它不记得:
- 你昨天做了哪个决定
- 它上周帮你起草的邮件你最后改成了什么样
- 你已经告诉过它你不喜欢被叫 「Sir」, 三次了
Memory 层的本质是: 把跨会话有用的、agent 自己挑不准的事, 刻意记下来。
这一层正在以「天」为单位变化
「记忆这条赛道几乎每天都在变化。」 (#232) 「某个工具今天的局限, 下次你再去看新版本时大概率已经被解决了。」 (#235-236)
现状(2026-05-09):
| 工具 | 记忆机制 | 文件路径 / 位置 |
|---|---|---|
| Claude Code v2.1.59+ | Auto Memory + Auto Dream(GC) | ~/.claude/projects/<p>/memory/MEMORY.md(首 200 行 / 25KB 每会话加载)+ 主题文件 |
| Codex | Memories + Chronicle | ~/.codex/memories/(摘要 / 持久条目 / 最近输入 / 证据); Chronicle 通过屏幕截图引导记忆 |
| Cursor | Project Memory(opt-in) | 基于「上次跑过的 outcome」记忆 |
| Windsurf | 原生 Memory 功能 | ~/.codeium/windsurf/memories/global_rules.md |
| Hermes | FTS5 跨会话持久记忆 | 数据库后端 |
| OpenCode | ❌ 无原生记忆 | 需手维护 AGENTS.md 或挂 soul.md |
| GitHub Copilot | ❌ 无原生跨会话记忆 | 仅 instructions 文件(静态) |
观察: Memory 是 7 层里最分裂的一层。 OpenCode 和 Copilot 至今没有原生记忆。 这恰好印证了 Nufar 的观点:这一层正在每周更新, 但还有大缺口。
Nufar 给的 3 条实操建议
1. 先理解你这款工具的记忆怎么工作 (#242-247)
直接问它: 「Explain how your memory system works. What do you remember between sessions? What do you forget?」
这一步很多人跳过, 直接抱怨「它怎么又忘了」。 Nufar 的态度:你得先知道自己在跟什么打交道, 才能去改进它。
2. 对「什么被记住」保持刻意 (#255-258)
Agent 自己记不一定对。 关键时刻主动告诉它该记住什么:
触发时刻 1: 一个重大决策定下来时
→ 「记住:我们决定 Q3 不做 X 功能, 因为 [原因 1, 2]。
考虑过的备选是 Y 和 Z, 否决理由是 ...」
触发时刻 2: 优先级转变时
→ 「从今天起, [项目 A] 降级, [项目 B] 升为首要。 触发原因:...」
触发时刻 3: 一段非常长的会话结束时
→ 「这次会话最重要的 3 个结论是: ...。 把这些写进 memory。」
3. 为关键场景建专门记忆文件 (#268-273)
Chief of Staff 案例需要的专门记忆:
- Decision Log — 决定了什么 / 为什么 / 当时考虑过的备选
- Working Process Learning — 你和 AI 协作模式的演化(它学到了什么、它仍然做错的)
- Relationship Context — 和某位特定 stakeholder 的对话进展、他们对什么反应好
落地步骤(给你今天的 30 分钟)
Step 1 · 摸底你工具的记忆(5 分钟)
打开你主用的 AI 工具,问:
解释你的记忆系统是怎么工作的。
- 你在不同会话之间记得什么?
- 你会忘掉什么?
- 我能直接看到你存了什么吗?如果能,文件在哪?
- 我怎么主动让你记住一件事?
Step 2 · 建 4 个专门记忆文件(15 分钟)
把以下文件创建到你的工作目录(可以放在 memory/ 下):
memory/
├── decisions.md # 决策日志
├── process-notes.md # 工作流学习
├── relationships.md # 关系上下文
└── lessons.md # 我学到的关于这套 OS 的经验
每个文件用同样的结构:
# Decisions Log
## 2026-05-09
- **决定**: ...
- **为什么**: ...
- **考虑过的备选**: ...
- **谁参与了**: ...
## 2026-05-08
...
Step 3 · 用一次,看效果(10 分钟)
新开会话, 让 agent 读这些文件, 问它: 「基于我的 decisions log, 这周哪些事情可能与上周的决策矛盾?」
如果它给得出有用的回答, 这一层就开始 work 了。
常见坑
| 坑 | 现象 | 怎么避 |
|---|---|---|
| 过度依赖工具自带记忆 | 工具自己挑没挑到的关键决策 silently 丢了 | 每个重大决定主动写进 decisions.md |
| 记得太多 | memory 文件膨胀到 5000 行 | 只记「需要跨会话的、agent 自己挑不准的」 |
| 不分类堆一起 | 一个 memory.md 杂烩 | 至少分 decisions / process / relationships 3 类 |
| 不看不复盘 | 写了不打开 | 每周扫一次, 删过期、合并重复 |
| 跨工具不同步 | Claude Code 记了, Codex 不知道 | 用纯 markdown + 显式 import, 不依赖工具自带的私有格式 |
🟢 译者点评
🟢 Memory 这一层最容易被「工具自带就够了」的错觉骗到。 我自己用 Claude Code 自带的 automemory 半年, 它确实记住了我的工作偏好, 但关键决策、跨项目的重要约定、被否决的备选方案几乎从来没被自动记住。 Nufar 的「刻意记忆」 这一条是真的要照做。
🟢 decisions.md 是 ROI 最高的一份记忆文件。 强烈建议从这一份开始。 三个月后回头看, 它本身就成了你这一年的决策日志, 价值已经超越「让 AI 记住」 这一个用途。
🟢 「memory 是其他每一层的胶水」 这个比喻非常准。 没有 memory, 你 Identity 写得再好、Context 维护得再勤、Skill 调得再准, 每次会话都从零开始, 累积不上来。 这就是为什么这套精读建议你先搭 1-3 层最小可行版, 然后立刻把 memory 加上, 而不是把 7 层都搭好再说。
🔗 立刻去做
→ 完成上面 3 步, 在 memory/decisions.md 里至少写一条。 然后读 05 Connections · 连接层 — 让 AI 触达真实系统。
🔗 延伸阅读
- Claude Code memory docs — automemory + Auto Dream 机制
- Codex Memories + Chronicle — OpenAI 在记忆这块的设计
- Hermes architecture — 跨会话 + procedural memory 的开源参考
- Harrison Chase / LangChain — Memory for Agents 系列博客