通过 CLAUDE.md 文件给 Claude 持久化的项目指令,以及 Claude 在工作中自动保存的学习成果。
两种记忆方式
Claude Code 提供了两种持久化信息的方式:
- CLAUDE.md — 你手动编写的项目指令文件
- 自动记忆 — Claude 在工作中自动保存的经验和模式
CLAUDE.md — 你的项目指令
什么是 CLAUDE.md
CLAUDE.md 是放在项目根目录的 Markdown 文件。每次会话开始时,Claude Code 会自动读取它。把它当作你给 Claude 的"员工手册"。
创建 CLAUDE.md
在 Claude Code 中运行 /init 命令,它会引导你完成创建流程。你也可以手动创建:
# 在项目根目录
touch CLAUDE.md
CLAUDE.md 可以写什么
你可以放入任何 Claude 应该知道的信息:
- 编码标准 — 命名规范、代码风格、必须遵循的规则
- 架构决策 — 为什么选择某个框架、项目结构说明
- 常用命令 — 构建、测试、部署的命令
- 技术栈 — 使用的语言、框架、库
- 审查清单 — 代码审查时应该关注什么
- 项目背景 — 业务逻辑、关键领域知识
示例
# 后端 API 项目
## 技术栈
- Python 3.11+,FastAPI
- PostgreSQL 15,Alembic 做迁移
- Redis 做缓存
## 编码标准
- 所有函数必须有类型注解
- 错误处理用自定义异常,定义在 exceptions.py
- API 响应统一用 ApiResponse 模型
## 常用命令
- 测试:`pytest`
- Lint:`ruff check . && ruff format .`
- 迁移:`alembic upgrade head`
- 启动:`uvicorn main:app --reload`
## 重要架构
- 路由层(routes/)只做参数校验和响应格式化
- 业务逻辑在 services/ 层
- 数据访问在 repositories/ 层
多层级 CLAUDE.md
CLAUDE.md 可以放在项目的不同层级:
- 根目录
CLAUDE.md— 全局项目规则 - 子目录
src/CLAUDE.md— 特定目录的规则
当 Claude 在某个目录中工作时,它会读取该目录及其所有父目录中的 CLAUDE.md 文件。
自动记忆(Auto Memory)
什么是自动记忆
自动记忆是 Claude 在工作中自动保存的经验和学习成果,不需要你手动记录。它会保存:
- 项目的构建命令
- 调试过程中的发现
- 你的偏好和工作习惯
- 项目的特殊注意事项
自动记忆存储在哪里
自动记忆保存在 ~/.claude/MEMORY.md 中。每个会话开始时会加载这个文件的前 200 行或 25KB(以先到者为准)。
自动记忆 vs CLAUDE.md
| 特性 | CLAUDE.md | 自动记忆 |
|---|---|---|
| 谁来写 | 你手动编写 | Claude 自动保存 |
| 内容 | 规则、标准、架构 | 经验、发现、偏好 |
| 位置 | 项目根目录 | ~/.claude/MEMORY.md |
| 作用域 | 当前项目 | 跨所有项目 |
| 加载时机 | 每次会话开始 | 每次会话开始(前 200 行) |
两者互补使用。CLAUDE.md 放你想要 Claude 知道的规则,自动记忆累积 Claude 在工作中发现的有用模式。
最佳实践
- 把持久化规则放在 CLAUDE.md 中:不要依赖对话历史中的指令,它们会在上下文压缩时丢失
- 保持 CLAUDE.md 简洁:上下文窗口有限,重要的规则放前面
- 定期回顾自动记忆:查看
~/.claude/MEMORY.md,把重要的发现移到 CLAUDE.md 中使其成为项目规则 - 在 CLAUDE.md 中添加"Compact Instructions":告诉 Claude 在上下文压缩时应该保留什么
下一步
- .claude 目录详解:了解 Claude Code 的文件结构和数据管理
- 上下文窗口:如何管理和优化上下文使用
- 设置与配置:自定义 Claude Code 的行为