看累了听个音乐吧
3.3 Auto Memory 自动记忆

有个东西在帮你默默记笔记
你有没有注意到,用了一段时间之后,Claude Code 对你的项目好像越来越"上手"了?
比如你纠正过它一次"不要用 var,用 const",后来它就再也没用过 var。
或者你跑过一次测试命令,下次它直接就知道该跑哪个命令,不需要你再说。
这不是错觉,这是 Auto Memory 在发挥作用。
Auto Memory 是什么
Auto Memory 是 Claude Code 自己维护的一个记忆文件,存在项目根目录下:
.claude/
└── MEMORY.md ← 这就是 Auto Memory每当 Claude Code 在工作中发现一些值得记下来的东西——你纠正了它的操作、它发现了项目的某个规律、你明确说了某个偏好——它会自动把这些写进这个文件。
下次会话开始时,它会自动加载这个文件的前 200 行。不需要你做任何操作。
它会自动记什么
Auto Memory 倾向于记录这类信息:
- 你纠正它的操作:"用户要求不要用
console.log,改用 logger 模块" - 项目特定的发现:"构建命令是
pnpm build:prod,不是npm run build" - 你的操作偏好:"用户偏好在修改前先用 Plan Mode 规划"
- 环境信息:"项目使用 Node 20,pnpm 8.x"
- 调试洞察:"测试超时问题通常出在
tests/integration/下的异步测试里"
本质上就是:一个有经验的同事会记在便利贴上的那些东西。
它和 CLAUDE.md 的区别
经常有人问:这两个有什么不一样,用哪个?
| CLAUDE.md | Auto Memory | |
|---|---|---|
| 谁写 | 你 | Claude Code 自己 |
| 写什么 | 主动设置的规则和约定 | 工作中自动发现的信息 |
| 需要维护吗 | 需要(定期修剪) | 基本不需要(自动更新) |
| 团队共享吗 | 通常 check in 到 git | 通常不共享(.gitignore) |
| 适合放 | "永远要遵守的规则" | "这个项目的具体情况" |
两者是互补的,不是替代关系。
CLAUDE.md 是你主动告诉它"规矩是什么",Auto Memory 是它自己总结"这个项目的实际情况是什么"。
怎么查看和编辑
Auto Memory 就是一个普通的 Markdown 文件,可以直接打开看:
bash
cat .claude/MEMORY.md也可以直接编辑。如果它记错了什么,或者记了不准确的信息,直接改这个文件就行。
子 Agent 也有自己的记忆
如果你用了 Claude Code 的 Subagents(子代理,后面章节会讲),每个子代理也可以维护自己独立的 Auto Memory,互不干扰。这在处理大型任务时很有用——让负责不同模块的子代理各自积累自己的领域知识。
下一节,我们把上下文窗口、CLAUDE.md、Auto Memory 这些概念整合起来,讲几个实战中管理上下文的具体策略。
