微信扫码
添加专属顾问
我要投稿
Claude Code 终于可以记住你的项目了!MEMORY.md功能让跨会话协作更高效,告别重复交代的烦恼。核心内容: 1. 自动记忆功能的工作原理与默认设置 2. MEMORY.md文件的结构与存储位置 3. 200行限制规则与记忆管理技巧
点击上方↗️「活水智能」,关注 + 星标🌟
作者:Youssef Hosni
编译:活水智能
用过 Claude Code 的人大概都有这个体验:关掉会话,第二天回来,Claude 从零开始。你得重新交代项目细节、编码偏好、架构决策,才能回到昨天的进度。
Anthropic 现在推出了 Claude Code 的自动记忆功能(auto-memory),目标很简单:让会话之间的衔接更顺畅。Claude 会在你工作的过程中,自动记录有用的上下文——构建命令、编码偏好、架构选择,甚至你们一起解决过的疑难 bug。
下次打开新会话,这些上下文已经在那里了。你可以从上次停下的地方继续,而不是从头来过。
大多数 Claude Code 用户已经熟悉 CLAUDE.md——用来给 Claude 写指令的文件。自动记忆在此基础上新增了一个文件:MEMORY.md。和 CLAUDE.md 不同,这个文件由 Claude 自己创建和更新,相当于一个跨会话的持续笔记本。
本文将详细介绍自动记忆的工作原理、CLAUDE.md 与 MEMORY.md 的区别、实际测试结果,以及如何控制这个功能。
更新 Claude Code 后,自动记忆默认开启,无需安装或配置。在你工作的过程中,Claude 会默默观察并记录笔记,自行决定哪些信息值得保存到下次会话。
关键在于,这一切不依赖手动输入。Claude 自己判断什么重要,自动记下来。
每个项目有自己的记忆目录,存储在:
~/.claude/projects/ /memory/ 路径基于 Git 仓库根目录,同一仓库内的所有子目录共享同一个记忆位置。如果使用 Git worktree,每个 worktree 有独立的记忆目录。 目录结构通常是这样的:
~/.claude/projects/<project>/memory/
├── MEMORY.md # 主索引,每次会话开始时自动加载
├── debugging.md # 调试历史和常见问题笔记
└── ... # Claude 按需创建的其他主题文件
一个重要细节:新会话启动时,Claude 只会将 MEMORY.md 的前 200 行加载到系统提示中。
当 MEMORY.md 变得太长时,Claude 会把详细笔记拆分到独立的主题文件(如 debugging.md 或 api-conventions.md),保持主文件简短实用。这些额外的主题文件不会在启动时加载,Claude 只在需要时按需读取。
工作流程是这样的:
debugging.md值得注意的是,这不是后台进程——你可以在会话中实时看到 Claude 读写记忆目录。
很多开发者会问:既然已经有 CLAUDE.md 了,为什么还需要 MEMORY.md?
CLAUDE.md 一直是 Claude Code 的一部分,是你写指令、规则和偏好的地方。
MEMORY.md 不一样。你不需要自己写 MEMORY.md,Claude 会自动创建和更新它。
最简单的理解方式:CLAUDE.md 是你给 Claude 的指令,MEMORY.md 是 Claude 自己的笔记本。
在 MEMORY.md 中,Claude 会记录工作中学到的有用上下文:
区别很简单:
两个文件配合使用,让 Claude 在会话开始时就有更好的上下文。一个告诉 Claude 你希望它怎么表现,另一个帮它记住关于你项目的已有认知。
Claude Code 不只依赖 CLAUDE.md 和 MEMORY.md,它实际上通过一个分层记忆系统工作。核心原则是:更具体的指令会覆盖更宽泛的指令。
项目级的 CLAUDE.md 优先于全局用户级记忆。自动记忆也在项目级别,意味着它的作用范围是你和你正在工作的特定项目。
还有一个实用细节:CLAUDE.local.md 会自动加入 .gitignore,适合存放私有的本地设置,比如沙箱 URL、本地测试笔记等不需要团队共享的内容。
打开新的 Claude Code 会话时,Claude 会从多个层级加载上下文:
所以在你写第一条提示之前,Claude 已经对你的项目规范、个人偏好和之前会话的上下文有了基本了解。
确保你使用的是支持自动记忆的版本:
claude update
然后检查版本号,需要 1.0.18 或更高:
claude --version
创建一个测试项目并初始化 Git:
mkdir test-claude-memory && cd test-claude-memory
git init
初始化 Git 很重要,因为 Claude Code 依赖 Git 仓库根目录来确定记忆的存储位置。如果项目不是 Git 仓库,项目级记忆就无法正常工作。
然后在项目中启动 Claude Code:
claude
自动记忆不会因为你打开了会话就创建文件。Claude 需要和你一起做点事情,才会开始记笔记。
在会话中给 Claude 一个任务,比如:
Build a simple RAG pipeline with LangChain
完成后,运行 /memory 命令,你会看到自动记忆已开启,并有三个记忆选项:
~/.claude/CLAUDE.md,这是你的个人偏好文件,跨所有项目生效CLAUDE.md,存放团队级别的上下文输入 /memory 命令时,你会看到:
Auto-memory: on
你可以直接在这里切换开关,无需修改配置文件。选中 Auto-memory: on 这一行按回车,就会切换为 Auto-memory: off。
如果你要做一些不想让 Claude 记住的探索性工作,或者只是一次性会话,这是暂停记忆的最快方式。
关闭 Claude Code,在同一项目中启动新会话,不提供任何上下文,直接问:
What do you know about this project?
Claude 会从 MEMORY.md 中读取之前的记忆,给出项目的详细概述。所有信息都是从上一次会话中自动保存的——这就是自动记忆的实际效果。
自动记忆默认开启,大多数情况下这是合理的设置。但有些场景你可能需要关闭它。
在项目的设置文件中添加:
// .claude/settings.json
{
"autoMemoryEnabled": false
}
只影响当前项目,其他项目不受影响。
在用户级设置文件中添加:
// ~/.claude/settings.json
{
"autoMemoryEnabled": false
}
所有项目都会停用自动记忆。
在 CI 流水线或其他自动化环境中,使用环境变量是最可靠的方式:
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 # 强制关闭
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=0 # 强制开启
这个环境变量会覆盖 /memory 开关和 settings.json 中的设置,确保自动化环境中 Claude 不会保存 CI 会话的笔记。
记忆文件就是普通的 Markdown 文件,你随时可以打开编辑。
最方便的方式是在 Claude Code 中使用 /memory 命令,它会打开记忆文件选择器,让你直接跳转到系统编辑器中编辑。
你也可以从终端直接打开:
open ~/.claude/projects/<project>/memory/MEMORY.md
当你想删除过时的笔记、清理不再相关的条目,或者随着项目变化重新组织记忆时,这个功能很实用。
活水智能,成立于北京,专注通过AI教育、AI软件及高质量社群,持续提升知识工作者的生产力。
🎁 活水智能福利群开放加入
每周独家AI新知、专属优惠券、干货方法论、同学交流心得,更有不定期赠书活动,等你来参与!
👇🏻👇🏻👇🏻
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-03-20
突发!Claude Code 要彻底龙虾化
2026-03-20
为了狠狠嫖Google Antigravity 24 小时,我竟然做这个....
2026-03-19
GPT-5.4 mini 与 GPT-5.4 nano 登陆 Microsoft Foundry (国际版)
2026-03-19
AI的边界,就是人类的领地
2026-03-19
百度这件事我跟别人解释了好多次
2026-03-19
马化腾说的养虾,不只是养虾
2026-03-19
Google 再放大招 对着画布说话就能做设计 Figma 股价爆跌8.8%
2026-03-19
深度分析:Agent Harness/框架到底有没有竞争壁垒?
2026-01-24
2026-01-10
2026-01-01
2026-01-26
2025-12-21
2026-01-09
2026-01-09
2025-12-30
2026-01-23
2026-01-14
2026-03-19
2026-03-19
2026-03-19
2026-03-18
2026-03-17
2026-03-17
2026-03-09
2026-03-08