Claude 如何记住你的项目
使用 CLAUDE.md 文件为 Claude 提供持久指令,并让 Claude 通过自动记忆功能自动积累学习内容。
每个 Claude Code 会话都从一个全新的上下文窗口开始。两种机制可以跨会话传递知识:
- CLAUDE.md 文件 — 你编写的指令,为 Claude 提供持久上下文
- 自动记忆 — Claude 根据你的更正和偏好自己编写的笔记
CLAUDE.md 与自动记忆
| CLAUDE.md 文件 | 自动记忆 | |
|---|---|---|
| 谁编写 | 你 | Claude |
| 包含内容 | 指令和规则 | 学习和模式 |
| 范围 | 项目、用户或组织 | 每个仓库,跨 worktree 共享 |
| 加载到 | 每个会话 | 每个会话(前 200 行或 25KB) |
| 用于 | 编码标准、工作流、项目架构 | 构建命令、调试见解、Claude 发现的偏好 |
当你想指导 Claude 的行为时使用 CLAUDE.md。自动记忆让 Claude 从你的更正中学习,无需手动操作。
无论 Claude 决定什么都要阻止某操作时,请改用 PreToolUse hook。
CLAUDE.md 文件
CLAUDE.md 是 markdown 文件,为 Claude 提供持久指令。Claude 在每个会话开始时读取它们。
何时添加到 CLAUDE.md
在以下情况添加:
- Claude 第二次犯同样的错误
- 代码审查发现 Claude 本应知道的内容
- 你在聊天中重复上次的更正
- 新队友需要相同上下文才能上手
保留每个会话都应知道的事实:构建命令、约定、项目布局、「总是做 X」的规则。多步骤流程放到 skill 或路径范围规则中。
选择 CLAUDE.md 的位置
| 范围 | 位置 | 目的 |
|---|---|---|
| 托管策略 | macOS: /Library/Application Support/ClaudeCode/CLAUDE.md;Linux/WSL: /etc/claude-code/CLAUDE.md;Windows: C:\Program Files\ClaudeCode\CLAUDE.md | 组织范围指令 |
| 用户 | ~/.claude/CLAUDE.md | 所有项目的个人偏好 |
| 项目 | ./CLAUDE.md 或 ./.claude/CLAUDE.md | 团队共享的项目指令 |
| 本地 | ./CLAUDE.local.md | 个人项目偏好(gitignore) |
设置项目 CLAUDE.md
在 ./CLAUDE.md 或 ./.claude/CLAUDE.md 中写入构建/测试命令、编码标准、架构、命名约定与工作流。
运行 /init 生成起始 CLAUDE.md。设置 CLAUDE_CODE_NEW_INIT=1 可启用交互式多阶段流程。
编写有效的指令
- 大小: 每个文件目标 200 行以内
- 结构: markdown 标题与列表
- 具体性: 「使用 2 空格缩进」优于「正确格式化代码」
- 一致性: 删除 CLAUDE.md 与
.claude/rules/中的冲突规则
导入其他文件
有关项目概述请参阅 @README,有关 npm 命令请参阅 @package.json。
# 其他指令
- git 工作流 @docs/git-instructions.md私人偏好用 CLAUDE.local.md。跨 worktree 共享:
- @~/.claude/my-project-instructions.mdAGENTS.md
Claude Code 读取 CLAUDE.md,不读取 AGENTS.md。导入共享说明:
@AGENTS.md
## Claude Code
对 `src/billing/` 下的更改使用 Plan Mode。CLAUDE.md 如何加载
Claude 从当前工作目录向上查找 CLAUDE.md 与 CLAUDE.local.md。内容从根向下拼接;更近目录的内容后读。子目录中的 CLAUDE.md 在 Claude 读取该目录文件时加载。
从 --add-dir 目录加载:
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config用 .claude/rules/ 组织规则
将 markdown 放在 .claude/rules/。路径规则使用 frontmatter:
---
paths:
- "src/api/**/*.ts"
---
# API 开发规则
- 所有 API 端点必须包括输入验证
- 使用标准错误响应格式无 paths 的规则每会话加载。有 paths 的在读取匹配文件时加载。
~/.claude/rules/ 中的用户级规则适用于所有项目,且在项目规则之前加载。
在 monorepo 中排除 CLAUDE.md
{
"claudeMdExcludes": [
"**/monorepo/CLAUDE.md",
"/home/user/monorepo/other-team/.claude/rules/**"
]
}托管策略 CLAUDE.md 不可排除。
自动记忆
自动记忆让 Claude 跨会话积累知识。Claude 在工作时保存笔记:构建命令、调试见解、架构笔记与工作流习惯。
需要 Claude Code v2.1.59 或更高版本(claude --version)。
启用或禁用
在 /memory 中切换,或:
{
"autoMemoryEnabled": false
}或 CLAUDE_CODE_DISABLE_AUTO_MEMORY=1。
存储位置
~/.claude/projects/<project>/memory/,MEMORY.md 为索引,可有主题文件。
在 ~/.claude/settings.json 自定义目录:
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}工作原理
MEMORY.md 前 200 行或 25KB 在会话开始时加载。主题文件按需加载。看到「Writing memory」或「Recalled memory」时,Claude 正在更新或读取该目录。
审计和编辑
运行 /memory 列出已加载的 CLAUDE.md、切换自动记忆、打开记忆文件夹。均为可编辑的纯 markdown。
故障排除
Claude 不遵循我的 CLAUDE.md
- 运行
/memory确认文件已加载 - 使指令更具体
- 检查冲突指令
- 必须执行的步骤用 hook 或
--append-system-prompt(自动化)
/compact 后指令似乎丢失
项目根 CLAUDE.md 在 /compact 后会重新读取。嵌套 CLAUDE.md 在再次读取该子目录文件时加载。持久规则写入 CLAUDE.md,不要只留在对话中。