Claude Code使用教程 第5篇:Memory - Claude是怎么记住你的工程的?

20 阅读3分钟

每次新开对话,Claude 默认是"失忆"的。Memory 系统让它能记住关键信息,跨会话保持上下文,Claude的Memory包含三级体系,前面两级跟之前介绍过的Claude.md有关系,这两个需要用户自己手动设置,第三级是Auto Memory,一般由Claude Code自己管理,当然我们也可以自己给提示让它记录某个东西到Auto Memory中。这篇文章,将从三级Memory体系的角度来介绍整个Claude Code的内存体系。

Memory 三级体系

Claude Code 的 Memory 分三个层级,作用域不同:

层级位置谁写的内容
User Memory~/.claude/CLAUDE.md个人偏好,所有项目通用
Project Memory./CLAUDE.md./.claude/CLAUDE.md项目规范,团队共享
Auto Memory~/.claude/projects/<project>/memory/Claude自动学习,自动积累

加载优先级:Project Memory > User Memory。Auto Memory 始终加载。

CLAUDE.md vs Auto Memory

两种记忆系统互补:

CLAUDE.mdAuto Memory
谁来写你手动写Claude 自动写
存什么指令和规则学习和偏好
作用域项目/用户/组织每个 git 仓库
加载量全部加载前 200 行或 25KB
用途编码规范、工作流、架构构建命令、调试技巧、你纠正过的事

简单说:CLAUDE.md 是你给 Claude 立规矩,Auto Memory 是 Claude 自己做笔记。

User Memory:个人偏好

位置:~/.claude/CLAUDE.md

存你个人的编码偏好,对所有项目生效:

# 我的编码风格

• 缩进用 2 空格
• 优先用 const,不用 var
• 注释用中文
• React 组件用函数式写法

Project Memory:项目规范

位置:项目根目录的 ./CLAUDE.md./.claude/CLAUDE.md

存项目相关的指令,通过 git 分享给团队,在上一篇文章有做过详细的介绍,juejin.cn/post/763548…

这里介绍一个Claude协助帮助生成Project Memory的方法

claude
> /init

这种使用方式比较适合已有的项目,Claude 会分析代码库,自动生成 CLAUDE.md。

Auto Memory:自动记忆

Auto Memory 让 Claude 自己做笔记。它会记录: • 你纠正过它的地方 • 踩过的坑 • 项目特有的构建命令 • 调试技巧

存储位置

~/.claude/projects/<project>/memory/
├── MEMORY.md          # 索引文件,每次对话加载
├── debugging.md       # 调试相关笔记
├── api-conventions.md # API 约定
└── ...

MEMORY.md 是入口文件,前 200 行(或 25KB)会在每次对话开始时加载。

如何产生 Auto Memory 记录

方式一:直接对话

告诉 Claude 记住某件事:

记住:这个项目用 pnpm,不用 npm
记住:API 测试需要先启动本地 Redis

Claude 会判断这个信息是否值得记录到 Auto Memory。

方式二:Claude 主动学习

当 Claude 犯错你纠正它时,它会自动记录:

你:这里应该用 useCallback 包一下,不然每次渲染都会重新创建
Claude:好的,我记住了。[Writing memory]

Claude 会自动把这类学习存到 Auto Memory。

查看 Auto Memory

claude
> /memory

会显示当前加载的所有 Memory 文件,包括 CLAUDE.md 和 Auto Memory。可以直接打开编辑。

或者直接看文件:

cat ~/.claude/projects/*/memory/MEMORY.md

关闭 Auto Memory

默认开启。想关掉的话:

# 方式一:环境变量
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

# 方式二:设置文件
# ~/.claude/settings.json
{
  "autoMemoryEnabled": false
}

最佳实践

场景用什么
编码规范、团队约定Project Memory (CLAUDE.md)
个人偏好User Memory (~/.claude/CLAUDE.md)
Claude 犯错后纠正自动产生 Auto Memory
项目特定命令、技巧让 Claude 自动记录

避坑提示

1. CLAUDE.md 别写太长

超过 200 行会消耗更多上下文,Claude 反而可能没法加载这么多信息,导致它不遵守。精简点。

2. 敏感信息别存 Memory

都是明文文件。API Key、密码这些千万别放进去。

3. 冲突的指令要清理

如果多个 CLAUDE.md 有矛盾,Claude 可能随机选一个遵守。定期清理过时的指令。