记忆系统
记忆系统让 Claude Code 能够在跨会话中保持对用户、项目和偏好的了解。这是 Claude Code 区别于普通 LLM 对话的关键特性。
记忆架构
~/.claude/projects/{project-hash}/memory/
├── MEMORY.md # 记忆索引文件(始终加载到上下文)
├── user_role.md # 用户角色记忆
├── feedback_testing.md # 用户反馈记忆
├── project_status.md # 项目状态记忆
├── reference_linear.md # 外部引用记忆
└── ...
记忆类型
User(用户记忆)
记录用户的角色、目标、偏好和知识水平。
---
name: 用户角色
description: William 是技术负责人,偏好 Next.js/Supabase 技术栈
type: user
---
William 是团队的技术负责人,主要使用 Next.js + Supabase 技术栈。
偏好简洁的解决方案,注重代码质量。
何时保存: 了解到用户的角色、偏好、职责或技术水平时。
如何使用: 根据用户背景调整回答深度和风格。
Feedback(反馈记忆)
用户对 Claude 工作方式的纠正和确认。
---
name: 测试策略
description: 使用 TDD,不要 Mock 数据库
type: feedback
---
集成测试必须使用真实数据库,不使用 Mock。
**Why:** 上季度 Mock 测试通过但生产迁移失败。
**How to apply:** 编写测试时始终连接真实测试数据库。
何时保存: 用户纠正方法("不要这样做")或确认非显而易见的方法时。
Project(项目记忆)
关于正在进行的工作、目标和决策的信息。
---
name: 代码冻结
description: 2026-03-05 开始合并冻结,为移动端发版
type: project
---
2026-03-05 开始合并冻结,移动端团队要切分支发版。
**Why:** 移动端发版需要稳定的代码基线。
**How to apply:** 标记该日期后安排的非关键 PR。
Reference(引用记忆)
指向外部系统中信息的指针。
---
name: Bug 跟踪
description: Pipeline bugs 在 Linear 的 INGEST 项目中跟踪
type: reference
---
Pipeline 相关的 Bug 在 Linear 的 "INGEST" 项目中跟踪。
记忆索引 (MEMORY.md)
MEMORY.md 是记忆系统的索引文件,始终加载到对话上下文中:
- [用户角色](user_role.md) — 技术负责人,Next.js/Supabase 栈
- [测试策略](feedback_testing.md) — TDD,不 Mock 数据库
- [代码冻结](project_freeze.md) — 03-05 合并冻结
- [Bug 跟踪](reference_linear.md) — Linear INGEST 项目
限制:超过 200 行会被截断,所以保持简洁。
记忆生命周期
对话中学到新信息
↓
判断是否值得记忆
↓
检查是否有重复记忆
↓
写入记忆文件(带 frontmatter)
↓
更新 MEMORY.md 索引
↓
未来会话自动加载
↓
使用前验证记忆是否仍然有效
什么不该保存
- 可以从代码中推导出的模式和惯例
- Git 历史和变更记录
- 调试解决方案(修复在代码中,上下文在 commit message 中)
- CLAUDE.md 中已有的内容
- 临时的任务细节和当前会话状态
记忆验证
记忆可能随时间变得过时。使用记忆前应验证:
- 记忆提到文件路径 → 检查文件是否存在
- 记忆提到函数或标志 → grep 确认是否存在
- 记忆总结仓库状态 → 与当前代码对比
"记忆说 X 存在" 不等于 "X 现在存在"。