跳到主要内容

记忆系统

记忆系统让 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 现在存在"。