最近一年 AI 编程工具更新很多。
模型更强了。
上下文更长了。
写代码更快了。
终端 Agent、IDE Agent、自动修 Bug、自动补测试,一个接一个地上。
但如果你真的连续用了几周,你会发现一个很现实的问题:
大多数 AI 编程工具最难受的地方,不是能力不够,而是它总“断片”。
你今天刚告诉它:
- 这个项目用 Maven,不用 Gradle
- 前端包管理必须是
pnpm - 提交前一定要跑测试
- 某个接口不能随便改,因为要兼容老版本
- 某个异常上周已经定位过一次
结果你关掉终端,第二天再开,它又像第一次进组。
所以我最近看到 Claude Code 上线 Auto Memory 这件事,第一反应不是“又多了个功能”,而是:
它终于开始补 AI 编程最关键的一块基础能力了。
不是更会写代码。
而是更会延续项目上下文。
为什么我觉得这个功能比很多“模型升级”都更重要
很多人看 AI 工具,先看的是排行榜、推理能力、基准测试。
这些当然重要。
但落到日常开发里,真正决定体验上限的,往往不是“它能不能解一道多难的题”,而是:
它能不能在下一次会话里继续接住你上一次的工作。
这一点如果做不到,模型再强,也还是会不断出现这些低效瞬间:
- 新开会话先花几分钟补背景
- 同样的项目约束要反复说
- 上次已经确认过的结论还要再走一遍
- AI 给出“标准正确但项目错误”的建议
这类问题不会像报错一样立刻炸给你看,
但它会持续吞掉你的注意力。
久了你就会发现,自己不是在和 AI 协作,
而是在反复培训一个短期记忆只有几小时的同事。
Claude Code 之前是怎么解决这个问题的
在 Auto Memory 出来之前,Claude Code 更主要的做法是靠 CLAUDE.md。
也就是在项目根目录放一份说明文档,把规则写进去,让每次新会话启动时自动加载。
比如:
# Build
- Use Maven wrapper
- Run mvnw verify before commit
# Stack
- Java 17
- Spring Boot 3.x
# Conventions
- Service uses interface + impl
- Controller returns R<T>
- Use global exception handler
这个机制本身没有问题,而且到现在依然重要。
因为它解决的是“规则输入”:
- 团队约定能被反复读取
- 规则可以跟仓库一起版本管理
- 新会话不至于完全裸奔
但它也有很明显的边界。
CLAUDE.md 最大的局限,不是麻烦,而是它装不下“经验”
规则文件很适合写这种内容:
- 技术栈是什么
- 构建命令是什么
- 提交流程是什么
- 哪些模式禁止使用
但它不太适合承载另外一类东西:
项目经验。
比如:
- 某个测试在本地失败,多半是 Redis 没启动
- 某个模块不要先改接口,先看适配层
- 某段代码虽然丑,但还背着历史兼容,不能直接删
- 某个问题不是代码错,而是环境变量缺了
这些东西你很难全部手工维护进 CLAUDE.md。
写少了没用。
写多了会臃肿。
过一阵还可能过期。
所以过去 Claude Code 有“规则层”,但没有真正意义上的“经验层”。
而 Auto Memory 补上的,恰恰就是这一层。
Auto Memory 到底是什么
简单说,Auto Memory 就是 Claude Code 开始自动把一部分“值得保留的项目信息”写进本地记忆文件。
这些信息不是放进 Git 仓库,而是放进你本机的 Claude 目录里。
按你给的资料,项目级记忆目录大致长这样:
~/.claude/projects/<项目路径>/memory/
├── MEMORY.md
├── debugging.md
├── api-conventions.md
└── ...
这里可以把它理解成两层:
CLAUDE.md:你和团队维护的规则memory/:Claude 自动沉淀的经验
一个偏静态。
一个偏动态。
一个适合共享。
一个更适合本地持续积累。
这就是为什么我更愿意把它理解成:
Claude Code 的记忆系统终于从“只读规则”,升级成了“规则 + 经验”双层结构。
它会记住哪些东西
从工程角度看,Auto Memory 记住的并不是“通识知识”,而是“你这个项目反复要用到的背景信息”。
典型会包括四类:
1. 项目工作流
- 用什么构建
- 测试怎么跑
- 目录大致怎么分
- 常用命令是什么
2. 环境前置条件
- 调试 API 前要不要先起 Redis
- 本地联调是否依赖 Docker Compose
- 某个 profile 下才能复现什么问题
3. 结构性经验
- 哪个目录不要手改
- 哪个模块边界比较脆
- 哪个类是关键入口
- 哪些历史包袱短期别碰
4. 个人协作偏好
- 你更喜欢先给方案再改代码
- 你习惯提交前先跑测试
- 你对命名、输出格式、工作流有什么明确倾向
注意,这些信息单独看都不算“宏大知识”。
但真正影响日常体验的,往往就是这些细碎但高频的背景。
它为什么不直接全量加载,而是做成主索引 + 主题文件
这个设计我觉得很关键。
按你给的内容,MEMORY.md 会作为主索引,在会话启动时优先读取,而且只加载前 200 行。
超出的内容会拆到 debugging.md、api-conventions.md 之类的主题文件中,按需再读。
这其实说明 Claude Code 在记忆机制上有一个很清楚的取舍:
它要的是“有用的延续”,不是“无差别灌入一堆旧上下文”。
如果所有记忆都在每次启动时全量加载,会有两个问题:
- 上下文成本变高
- 噪音越来越多
所以它做成“启动索引 + 分主题扩展”是合理的。
这和很多工程系统里“热路径先加载、冷数据按需取”的思路很像。
这项能力实际怎么用
如果你的 Claude Code 版本足够新,按你给的资料,至少需要 v2.1.59 及以上。
可以先确认一下:
claude update
claude --version
然后进入项目,在 Claude Code 会话里执行:
/memory
你应该会看到类似这样的面板:
Memory
Auto-memory: on
1. User memory Saved in ~/.claude/CLAUDE.md
2. Project memory Checked in at ./CLAUDE.md
3. Open auto-memory folder
这三个入口分别对应三种不同来源:
- 用户级记忆:跨项目的个人偏好
- 项目规则:仓库中的
CLAUDE.md - 自动记忆目录:Claude 自己整理出来的项目经验
如果要主动告诉它一件事值得长期保留,也可以直接说:
记住这个项目用 pnpm,不用 npm
记住 API 测试前先启动本地 Redis
记住这个仓库提交前必须跑 mvn verify
这种说法本质上是在告诉 Claude:
“这不是一次性聊天内容,这是长期约束。”
怎么验证它是不是已经真正生效
最简单的方法不是去翻目录,而是看它在下一次会话里是不是少问废话。
你可以这样测:
-
先在项目里做一轮真实任务
例如让它写一个接口、补一组测试、排一次失败 -
观察终端提示
如果出现Recalled X memories (ctrl+o to expand),说明它加载了已有记忆 -
展开看一下
通过Ctrl + O看具体召回了哪些内容 -
关掉会话重新打开
再问一个依赖历史背景的问题
例如:
这个项目用什么构建工具?
跑测试前要不要先启动依赖服务?
上次这个模块为什么没继续重构?
如果这些问题它能直接接住,而不是重新让你解释一遍,记忆机制就真的开始起作用了。
什么时候该交给 CLAUDE.md,什么时候该交给 Auto Memory
这是这套机制里最值得实践的一点。
我的建议很简单:
放进 CLAUDE.md 的
- 技术栈
- 目录职责
- 构建命令
- 测试流程
- 提交流程
- 明确禁止事项
- 团队统一规范
更适合 Auto Memory 的
- 最近排障结论
- 本地环境注意事项
- 某些模块的历史包袱
- 反复提到的协作偏好
- 阶段性但高频复用的背景
前者是制度。
后者是经验。
前者要稳定。
后者可以动态演化。
如果你把所有东西都硬塞进一个规则文件,最后只会得到一个越来越长、越来越没人维护的 CLAUDE.md。
可以关闭吗
可以,而且应该知道怎么关。
并不是所有场景都适合记忆。
比如:
- 临时探索性修改
- 一次性实验
- CI/CD 环境
- 你不希望把本次会话污染长期记忆
按你给的资料,可以这样关闭:
当前项目关闭
// .claude/settings.json
{
"autoMemoryEnabled": false
}
全局关闭
// ~/.claude/settings.json
{
"autoMemoryEnabled": false
}
环境变量强制关闭
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1
环境变量优先级最高。
这点对 CI 很重要,因为 CI 追求的是确定性,不是长期记忆。
一定要说的边界:它不是团队知识库的替代品
我觉得这个点必须单独拿出来讲。
Auto Memory 再方便,也不应该替代正式文档:
- README
- 架构文档
- ADR
- 团队开发规范
- 运维手册
它更像 Claude Code 的本地经验层,而不是组织级知识中枢。
还有一条更重要:
不要把敏感信息、密钥、隐私数据、生产环境凭据之类的东西,当作“下次还要用”随手丢进记忆里。
会记,不代表什么都该记。
总结
如果只把 Auto Memory 看成“Claude Code 会自己记笔记了”,其实低估了它的意义。
更准确地说,它补上的是 AI 编程工具里非常核心的一层能力:
让项目上下文可以跨会话延续。
这件事看上去不像模型升级那么显眼,
但对真正高频使用 AI 写代码的人来说,体感影响会非常直接:
- 冷启动更快
- 重复沟通更少
- 项目约束更稳定
- 排障上下文更容易接续
从产品形态上看,这也意味着 Claude Code 正在从“只会响应当前输入”,走向“能持续积累项目经验”。
以前比的是谁更会生成。
接下来比的,很可能是谁更会协作。