第 2 课:Claude Code auto memory 深度解析
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
2.1 auto memory 的四类记忆
auto memory 不是单纯的“录音机”,而是 LLM 主动写入的结构化笔记。LLM 会判断什么值得长期保留,并将其归类为以下四种类型:
| 类型 | 用途 | 示例 |
|---|---|---|
| user | 用户身份、角色、技术偏好 | "用户是后端工程师,主语言 Go" |
| feedback | 你纠正过或确认过的做法 | "测试不要 mock 数据库 — 曾导致生产事故" |
| project | 项目背景、长期决策、DDL | "Auth 模块重写源于合规要求,非技术债" |
| reference | 外部资源指针 (Linear, Jira, Slack) | "Pipeline bugs 记录在 Linear 的 INGEST 项目中" |
2.2 存储结构与加载机制
auto memory 的数据存储在本地,路径通常为 ~/.claude/projects/<project_hash>/memory/。
目录结构:
- MEMORY.md:索引文件。启动时,Claude Code 会自动加载其前 200 行(或 25KB)内容。
- 独立 .md 文件:每条具体的记忆(如
user_preferences.md)都是一个带有 frontmatter 的独立 Markdown 文件。
写入流程:
- 判断:LLM 分析当前对话,判断是否包含值得长期记录的事实。
- 分类:选择合适的类型(user/feedback/project/reference)。
- 写入:生成独立的 Markdown 文件。
- 索引:在
MEMORY.md中添加一行索引。
2.3 不该记录的内容
为了保持记忆的精准度,官方建议 auto memory 不应记录:
- 能够通过阅读代码直接获取的模式或路径。
- Git 历史记录(
git log才是权威来源)。 - 临时的任务状态或当前会话的上下文细节。
- 已经在
CLAUDE.md中定义的规则。