记忆系统
Claude Code 的持久化记忆怎么跨会话记住你的偏好,洛洛版讲解
洛洛问你一个问题:你有没有对着 Claude Code 说过同一句话三次以上?
洛洛有。"这个项目用 pnpm 不是 npm",洛洛说了大概八次。第九次的时候洛洛决定不说了,直接去查有没有办法让它自己记住。
有的。而且它其实一直在偷偷记,只是洛洛之前不知道去哪看。
Claude Code 有一套文件级的持久化记忆系统,让 AI 在不同对话之间记住项目信息和你的个人偏好。
记忆层级
先搞清楚这些记忆都住在哪。洛洛第一次看这张表的时候只记住了一件事:文件位置不一样,管的范围就不一样。
| 层级 | 文件位置 | 作用域 | 提交 Git |
|---|---|---|---|
| 全局 | ~/.claude/CLAUDE.md | 所有项目 | 否 |
| 项目(共享) | ./CLAUDE.md 或 ./.claude/CLAUDE.md | 当前项目所有人 | 是 |
| 项目(个人) | ./CLAUDE.local.md | 当前项目仅自己 | 否 |
| 子目录 | ./子目录/CLAUDE.md | 特定目录 | 是 |
| 自动记忆 | ~/.claude/projects/.../memory/ | 自动收集 | 否 |
加载方式:所有文件拼接进上下文,不互相覆盖,越具体的越后读到。两条规矩真打架时 Claude 可能随便挑一条,所以最好别让它们冲突。
洛洛的记法:越靠近你正在改的那个文件,说话越管用。全局那份是"洛洛这个人一贯的习惯",项目那份是"这个项目的规矩",规矩和习惯打架的时候,规矩赢。
洛洛碎碎念
注意「提交 Git」那一列!CLAUDE.local.md 和全局那份是不提交的!
洛洛差点把自己的全局记忆提交上去,里面写着"洛洛是零基础不要用术语跟洛洛说话",要是被同学看到洛洛会当场社会性死亡。
这一列是洛洛全表最认真读的一列,你也读一下。
/memory 命令
想看看它到底记了些什么,一句话就行:
/memory打开记忆编辑器,直接编辑你的记忆文件。
洛洛第一次打开的时候是有点惊悚的,里面躺着好几条洛洛完全不记得自己说过的话,但确实是洛洛的习惯。天哪!它一直在听!
自动记忆
上面那种"自己冒出来"的记忆就是自动记忆。
Claude Code 会自动从对话中提取有用信息保存到记忆:
用户画像
当 Claude 了解到你是谁、做什么工作:
我是前端开发,主要用 React 和 TypeScript
→ 保存:用户是前端开发,擅长 React/TypeScript行为反馈
当你纠正 Claude 的行为:
不要用 npm,我们项目用 pnpm
→ 保存:该项目使用 pnpm,不要用 npm
停止每次都总结你做了什么,我自己看 diff
→ 保存:用户偏好简洁回复,不需要尾部总结第一条就是洛洛说了八遍的那句。原来说一遍就够了,洛洛那八遍纯属白说。
项目信息
我们下周五之前要完成 v2.0 发布
→ 保存:v2.0 发布截止日期 2026-04-10这条洛洛觉得最神,你说"下周五",它自己换算成了具体日期。对 ddl 战士来说这个功能有点危险,因为它真的会记得。
记忆文件结构
那些自动攒下来的记忆,在硬盘上是这样躺着的:
自动记忆保存在 ~/.claude/projects/<path>/memory/ 目录下:
memory/
├── MEMORY.md # 记忆索引
├── user_profile.md # 用户画像
├── feedback_style.md # 行为反馈
└── project_context.md # 项目信息每个记忆文件有 frontmatter:
---
name: 工作风格偏好
description: 用户的代码风格和工作流偏好
type: feedback
---
使用 pnpm 不要用 npm。
**Why:** 项目统一使用 pnpm workspace。
**How to apply:** 所有包管理命令使用 pnpm。frontmatter 这个词洛洛写小红书的时候见过,就是文件最上面那一小块用来交代身份的部分。这里它交代的是"这条记忆叫什么、是哪一类"。
Why 和 How to apply 这两行洛洛很喜欢:不光记结论,还记为什么、以及具体怎么落地。洛洛自己做笔记都没做到这个程度,惭愧之。
记忆类型
上面 frontmatter 里的 type,能填的就是这四种:
| 类型 | 用途 | 示例 |
|---|---|---|
user | 用户角色和偏好 | "资深后端工程师,偏好函数式编程" |
feedback | 行为纠正和确认 | "不要自动提交 git" |
project | 项目状态和目标 | "正在做 v2.0 迁移" |
reference | 外部资源指引 | "bug tracker 在 Linear 的 BACKEND 项目" |
手动管理记忆
自动记忆挺聪明的,但有时候你就是想亲自动手。这三句话洛洛现在天天用。
主动要求记住
记住:这个项目的测试要用 vitest 跑,不是 jest主动要求忘记
忘掉之前关于数据库迁移的记忆,我们已经改用 Drizzle 了这句对洛洛来说是救命的。洛洛经常朝令夕改,昨天说要这样今天又不要了,结果它还死记着昨天那版,越帮越忙。会忘记,比会记住重要。
忽略记忆
忽略记忆,从头开始Claude 会当作 MEMORY.md 为空来工作。
记忆 vs CLAUDE.md
那问题来了:既然 CLAUDE.md 也能写规矩,自动记忆也能记,两个到底怎么分工。
| 自动记忆 | CLAUDE.md | |
|---|---|---|
| 写入方式 | Claude 自动提取 | 手动编写 |
| 内容类型 | 偏好、反馈、上下文 | 规范、命令、约束 |
| 持久性 | 跨会话 | 跨会话 |
| 共享性 | 仅自己 | 可提交 Git 共享 |
最佳实践: 项目规范写 CLAUDE.md,个人偏好靠自动记忆。
souga,一句话就是:全组人都得守的,写进 CLAUDE.md 提交上去;只有你自己讲究的,让它自动记着。
洛洛碎碎念
默子老师说过一句话洛洛记到现在:能写进文件的约定,就不要靠嘴说。
当时洛洛还觉得他有点较真,后来自己重复第八遍 pnpm 的时候,突然就懂了。
嗯嗯,所以现在洛洛每接一个新项目,第一件事就是先把规矩写下来,再开始干活。
洛洛的总结
洛洛现在的感受是:记忆系统不是让 AI 变聪明,是让你少说重复的话。
那八遍 pnpm 洛洛是白说了,但你现在知道了,你可以只说一遍。
想把可复用的东西再往前推一步,让它自己封装成能反复调用的流程,那就去看Skills 与自定义命令。
洛洛先去把自己的全局记忆检查一遍,确认没写什么丢人的东西。
参考来源
查阅日期 2026-09-14。
- CLAUDE.md 与自动记忆:https://code.claude.com/docs/en/memory
- 设置文件与优先级:https://code.claude.com/docs/en/settings