记忆和 CLAUDE.md

Claude 如何记住你的项目

使用 CLAUDE.md 文件为 Claude 提供持久指令,并让 Claude 通过自动记忆自动积累学习。

每个 Claude Code 会话都从一个全新的上下文窗口开始。两种机制可以跨会话传递知识:

  • CLAUDE.md 文件:你编写的指令,为 Claude 提供持久上下文
  • 自动记忆:Claude 根据你的更正和偏好自己编写的笔记

CLAUDE.md 与自动记忆对比

CLAUDE.md 文件 自动记忆
谁编写 你 Claude
包含内容 指令和规则 学习和模式
范围 项目、用户或组织 每个工作树
加载到 每个会话 每个会话(前 200 行)
用于 编码标准、工作流、项目架构 构建命令、调试见解、偏好

CLAUDE.md 文件

选择 CLAUDE.md 文件的位置

范围 位置 目的 共享对象
托管策略 系统级目录 组织范围指令 组织中的所有用户
项目指令 ./CLAUDE.md 或 ./.claude/CLAUDE.md 项目的团队共享指令 通过源代码控制的团队成员
用户指令 ~/.claude/CLAUDE.md 所有项目的个人偏好 仅你(所有项目)
本地指令 ./CLAUDE.local.md 个人项目特定偏好 仅你(当前项目)

设置项目 CLAUDE.md

运行 /init 自动生成起始 CLAUDE.md。Claude 分析你的代码库并创建一个包含构建命令、测试指令和项目约定的文件。

编写有效的指令

大小:每个 CLAUDE.md 文件目标在 200 行以下。

结构:使用 markdown 标题和项目符号来分组相关指令。

具体性:编写具体到足以验证的指令:

  • “使用 2 空格缩进” 而不是 “正确格式化代码”
  • “在提交前运行 npm test“ 而不是 “测试你的更改”
  • “API 处理程序位于 src/api/handlers/“ 而不是 “保持文件有组织”

导入其他文件

CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件:

1
2
3
4
5
有关项目概述,请参阅 @README,有关此项目的可用 npm 命令,请参阅 @package.json。

# 其他指令
- git 工作流 @docs/git-instructions.md
- 个人偏好 @~/.claude/my-project-instructions.md

CLAUDE.md 文件如何加载

Claude Code 通过从当前工作目录向上遍历目录树来读取 CLAUDE.md 文件。

工作目录上方目录层次结构中的 CLAUDE.md 文件在启动时完整加载。子目录中的 CLAUDE.md 文件在 Claude 读取这些目录中的文件时按需加载。

使用 .claude/rules/ 组织规则

对于较大的项目,使用 .claude/rules/ 目录将指令组织到多个文件中。

设置规则

1
2
3
4
5
6
7
your-project/
├── .claude/
│ ├── CLAUDE.md # 主项目指令
│ └── rules/
│ ├── code-style.md # 代码样式指南
│ ├── testing.md # 测试约定
│ └── security.md # 安全要求

路径特定规则

规则可以使用带有 paths 字段的 YAML frontmatter 范围限定到特定文件:

1
2
3
4
5
6
7
8
9
10
---
paths:
- "src/api/**/*.ts"
---

# API 开发规则

- 所有 API 端点必须包括输入验证
- 使用标准错误响应格式
- 包括 OpenAPI 文档注释

路径模式示例

模式 匹配
**/*.ts 任何目录中的所有 TypeScript 文件
src/**/* src/ 目录下的所有文件
*.md 项目根目录中的 Markdown 文件
src/components/*.tsx 特定目录中的 React 组件

使用符号链接跨项目共享规则

1
2
ln -s ~/shared-claude-rules .claude/rules/shared
ln -s ~/company-standards/security.md .claude/rules/security.md

自动记忆

启用或禁用自动记忆

自动记忆默认开启。要切换它:

1
2
3
{
"autoMemoryEnabled": false
}

或通过环境变量:

1
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

存储位置

每个项目在 ~/.claude/projects/<project>/memory/ 获得自己的记忆目录:

1
2
3
4
~/.claude/projects/<project>/memory/
├── MEMORY.md # 简洁索引,加载到每个会话
├── debugging.md # 关于调试模式的详细笔记
├── api-conventions.md # API 设计决策

它如何工作

MEMORY.md 的前 200 行在每次对话开始时加载。Claude 通过将详细笔记移到单独的主题文件中来保持 MEMORY.md 简洁。

主题文件如 debugging.md 或 patterns.md 在启动时不加载。Claude 在需要信息时使用其标准文件工具按需读取它们。

使用 /memory 查看和编辑

/memory 命令列出在当前会话中加载的所有 CLAUDE.md 和规则文件,让你切换自动记忆开或关,并提供打开自动记忆文件夹的链接。

故障排除

Claude 不遵循我的 CLAUDE.md

  • 运行 /memory 验证你的 CLAUDE.md 文件被加载
  • 检查相关的 CLAUDE.md 是否在为你的会话加载的位置
  • 使指令更具体
  • 查找跨 CLAUDE.md 文件的冲突指令

我的 CLAUDE.md 太大了

超过 200 行的文件消耗更多上下文并可能降低遵守度。将详细内容移到使用 @path 导入引用的单独文件中,或将指令拆分到 .claude/rules/ 文件中。

指令似乎在 /compact 后丢失

CLAUDE.md 完全在压缩中存活。在 /compact 后,Claude 从磁盘重新读取你的 CLAUDE.md 并将其新鲜重新注入会话。


本文档来自 Claude Code 官方文档

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero