记忆和 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.mdpatterns.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