Skip to content
看累了听个音乐吧

3.3 Auto Memory 自动记忆

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.mdAuto 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 这些概念整合起来,讲几个实战中管理上下文的具体策略。

基于 CC BY-NC-SA 4.0 协议发布