确定内存类型
Claude Code 在分层结构中提供四个内存位置,每个位置都有不同的用途:| 内存类型 | 位置 | 用途 | 用例示例 | 共享对象 |
|---|---|---|---|---|
| 企业策略 | • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md• Linux: /etc/claude-code/CLAUDE.md• Windows: C:\Program Files\ClaudeCode\CLAUDE.md | 由 IT/DevOps 管理的组织范围内的说明 | 公司编码标准、安全策略、合规要求 | 组织中的所有用户 |
| 项目内存 | ./CLAUDE.md 或 ./.claude/CLAUDE.md | 项目的团队共享说明 | 项目架构、编码标准、常见工作流 | 通过源代码控制的团队成员 |
| 项目规则 | ./.claude/rules/*.md | 模块化、特定主题的项目说明 | 特定于语言的指南、测试约定、API 标准 | 通过源代码控制的团队成员 |
| 用户内存 | ~/.claude/CLAUDE.md | 所有项目的个人偏好设置 | 代码样式偏好、个人工具快捷方式 | 仅您(所有项目) |
| 项目内存(本地) | ./CLAUDE.local.md | 个人的项目特定偏好设置 | 您的沙箱 URL、首选测试数据 | 仅您(当前项目) |
CLAUDE.local.md 文件会自动添加到 .gitignore,使其成为不应签入版本控制的私有项目特定偏好设置的理想选择。
CLAUDE.md 导入
CLAUDE.md 文件可以使用@path/to/import 语法导入其他文件。以下示例导入 3 个文件:
/memory 命令查看加载了哪些内存文件。
Claude 如何查找内存
Claude Code 递归读取内存:从当前工作目录开始,Claude Code 向上递归到(但不包括)根目录 / 并读取它找到的任何 CLAUDE.md 或 CLAUDE.local.md 文件。当在大型存储库中工作时,这特别方便,您在 foo/bar/ 中运行 Claude Code,并在 foo/CLAUDE.md 和 foo/bar/CLAUDE.md 中都有内存。 Claude 还会发现当前工作目录下的子树中嵌套的 CLAUDE.md。它们不是在启动时加载,而是仅在 Claude 读取这些子树中的文件时才包含。使用 /memory 直接编辑内存
在会话期间使用 /memory 斜杠命令在系统编辑器中打开任何内存文件,以进行更广泛的添加或组织。
设置项目内存
假设您想设置一个 CLAUDE.md 文件来存储重要的项目信息、约定和常用命令。项目内存可以存储在./CLAUDE.md 或 ./.claude/CLAUDE.md 中。
使用以下命令为您的代码库引导 CLAUDE.md:
使用 .claude/rules/ 的模块化规则
对于较大的项目,您可以使用 .claude/rules/ 目录将说明组织到多个文件中。这允许团队维护专注、组织良好的规则文件,而不是一个大型 CLAUDE.md。
基本结构
在项目的.claude/rules/ 目录中放置 markdown 文件:
.claude/rules/ 中的所有 .md 文件都会自动加载为项目内存,优先级与 .claude/CLAUDE.md 相同。
特定于路径的规则
规则可以使用带有paths 字段的 YAML 前置事项限定到特定文件。这些条件规则仅在 Claude 处理与指定模式匹配的文件时适用。
paths 字段的规则会无条件加载,适用于所有文件。
Glob 模式
paths 字段支持标准 glob 模式:
| 模式 | 匹配 |
|---|---|
**/*.ts | 任何目录中的所有 TypeScript 文件 |
src/**/* | src/ 目录下的所有文件 |
*.md | 项目根目录中的 Markdown 文件 |
src/components/*.tsx | 特定目录中的 React 组件 |
src/**/*.ts 和 src/**/*.tsx。您也可以用逗号组合多个模式:
子目录
规则可以组织到子目录中以获得更好的结构:.md 文件都会被递归发现。
符号链接
.claude/rules/ 目录支持符号链接,允许您在多个项目中共享常见规则:
用户级规则
您可以在~/.claude/rules/ 中创建适用于所有项目的个人规则:
组织级内存管理
组织可以部署适用于所有用户的集中管理的 CLAUDE.md 文件。 要设置组织级内存管理:- 在上面 内存类型表 中显示的托管策略位置创建托管内存文件。
- 通过您的配置管理系统(MDM、组策略、Ansible 等)部署,以确保在所有开发人员计算机上一致分发。
内存最佳实践
- 具体明确:“使用 2 空格缩进”比”正确格式化代码”更好。
- 使用结构来组织:将每个单独的内存格式化为项目符号,并在描述性 markdown 标题下分组相关内存。
- 定期审查:随着项目的发展更新内存,以确保 Claude 始终使用最新的信息和上下文。