Skip to content

Memory 指南

概览

Claude Code 中的 Memory 提供跨多个会话和对话的持久上下文。与临时的上下文窗口不同,Memory 文件允许你:

  • 在团队中共享项目标准
  • 存储个人开发偏好
  • 维护目录级规则和配置
  • 导入外部文档
  • 将 Memory 作为项目的一部分进行版本控制

Memory 系统在多个层级上运行,从全局个人偏好到特定子目录,从而可以精细控制 Claude 记住什么以及如何应用这些知识。Claude 文件夹及文件组织参考可以查看:

文件夹结构浏览器

Memory 命令速查

命令 用途 用法 何时使用
/init 初始化项目记忆 /init 开始新项目,首次设置 CLAUDE.md
/memory 在编辑器中编辑记忆文件 /memory 大量更新、重组、审查内容
@path/to/file 导入外部内容 @README.md@docs/api.md 在 CLAUDE.md 中引用现有文档

快速上手:CLAUDE.md文件

/init 命令

/init 命令是在 Claude Code 中设置项目记忆的最快方式。它会初始化一个包含基础项目文档的 CLAUDE.md 文件。

用法:

/init

功能:

  • 在项目中创建新的 CLAUDE.md 文件(通常在 ./CLAUDE.md./.claude/CLAUDE.md
  • 建立项目约定和准则
  • 为跨会话的上下文持久化奠定基础
  • 提供用于记录项目标准的模板结构

增强交互模式: 设置 CLAUDE_CODE_NEW_INIT=1 可启用多阶段交互流程,逐步引导你完成项目设置:

CLAUDE_CODE_NEW_INIT=1 claude
/init

何时使用 /init

  • 使用 Claude Code 开始新项目
  • 建立团队编码标准和约定
  • 创建关于代码库结构的文档
  • 为协作开发设置记忆层级

示例工作流:

# 在你的项目目录中
/init

# Claude 会创建 CLAUDE.md,结构如下:
# 项目配置
## 项目概览
- 名称:你的项目
- 技术栈:[你的技术]
- 团队规模:[开发者数量]

## 开发标准
- 代码风格偏好
- 测试要求
- Git 工作流约定

快速记忆更新

使用 /memory 直接编辑记忆文件,或通过对话方式请求 Claude 记住某些内容(例如"记住我们始终使用 TypeScript 严格模式")。

注意:其他 Coding Agent(如 Cursor、Windsurf)大多支持 AGENTS.md 文件,但 Claude Code 不支持此文件。

向记忆添加信息的推荐方式:

方式 1:使用 /memory 命令或直接打开 CLAUDE.md

/memory

在系统编辑器中打开记忆文件进行直接编辑。

方式 2:对话式请求

记住我们在这个项目中始终使用 TypeScript 严格模式。
请添加到记忆:优先使用 async/await 而不是 promise 链。

Claude 会根据你的请求更新相应的 CLAUDE.md 文件。

/memory 命令

/memory 命令提供直接访问 Claude Code 会话中 CLAUDE.md 记忆文件的编辑功能。它会在系统编辑器中打开记忆文件进行完整编辑。

用法:

/memory

功能:

  • 在系统默认编辑器中打开记忆文件
  • 允许进行大量添加、修改和重组
  • 提供对层级中所有记忆文件的直接访问
  • 支持跨会话管理持久上下文

何时使用 /memory

  • 审查现有记忆内容
  • 对项目标准进行大量更新
  • 重组记忆结构
  • 添加详细文档或准则
  • 在项目演进过程中维护和更新记忆

对比:/memory/init

方面 /memory /init
用途 编辑现有记忆文件 初始化新的 CLAUDE.md
何时使用 更新/修改项目上下文 开始新项目
操作 打开编辑器进行修改 生成初始模板
工作流 持续维护 一次性设置

示例工作流:

# 打开记忆进行编辑
/memory

# Claude 提供选项:
# 1. 受管策略记忆
# 2. 项目记忆(./CLAUDE.md)
# 3. 用户记忆(~/.claude/CLAUDE.md)
# 4. 本地项目记忆

# 选择选项 2(项目记忆)
# 你的默认编辑器打开 ./CLAUDE.md 内容

# 进行修改,保存并关闭编辑器
# Claude 自动重新加载更新后的记忆

使用记忆导入:

CLAUDE.md 文件支持 @path/to/file 语法来包含外部内容:

# 项目文档
参见 @README.md 了解项目概览
参见 @package.json 了解可用的 npm 命令
参见 @docs/architecture.md 了解系统设计

# 使用绝对路径从主目录导入
@~/.claude/my-project-instructions.md

导入功能:

  • 支持相对路径和绝对路径(例如 @docs/api.md@~/.claude/my-project-instructions.md
  • 支持递归导入,最大深度为 5
  • 首次从外部位置导入会触发安全审批对话框
  • Markdown 代码段或代码块内的导入指令不会被求值(因此在示例中记录它们是安全的)
  • 通过引用现有文档避免重复
  • 自动将引用的内容包含在 Claude 的上下文中

Memory 架构

Claude Code 中的 Memory 遵循层级系统,不同的范围服务于不同的目的。

Claude Code 中的 Memory 层级

Claude Code 使用多层级分层记忆系统。Memory 文件在 Claude Code 启动时自动加载,较高级别的文件优先级更高。Claude Code 从当前工作目录向上遍历目录树以发现 CLAUDE.mdCLAUDE.local.md 文件。这意味着如果你在 foo/bar/ 中运行 Claude Code,它会从 foo/bar/CLAUDE.mdfoo/CLAUDE.md 以及并列的任何 CLAUDE.local.md 文件加载指令。

Memory 位置表

完整的记忆层级(按优先级排序,用户级优先于项目级):

位置 范围 优先级 共享 访问 最适合
/Library/Application Support/ClaudeCode/CLAUDE.md(macOS) 受管策略 1(最高) 组织 系统 公司级策略
/etc/claude-code/CLAUDE.md(Linux/WSL) 受管策略 1(最高) 组织 系统 组织标准
C:\Program Files\ClaudeCode\CLAUDE.md(Windows) 受管策略 1(最高) 组织 系统 企业准则
managed-settings.d/*.md(与策略并列) 受管插件 1.5 组织 系统 模块化策略文件(v2.1.83+)
~/.claude/CLAUDE.md 用户记忆 2 个人 文件系统 个人偏好(所有项目)
~/.claude/rules/*.md 用户规则 2 个人 文件系统 个人规则(所有项目)
./CLAUDE.md./.claude/CLAUDE.md 项目记忆 3 团队 Git 团队标准、共享架构
./.claude/rules/*.md 项目规则 3 团队 Git 路径特定、模块化规则
./CLAUDE.local.md 项目本地 4 个人 Git(忽略) 个人项目特定偏好
~/.claude/projects/<project>/memory/ 自动记忆 5(最低) 个人 文件系统 Claude 的自动笔记和学习

注意CLAUDE.local.md 提供不提交到版本控制的个人项目特定偏好。将 CLAUDE.local.md 添加到你的 .gitignore

记忆发现行为:

Claude 按此顺序搜索记忆文件,较早位置的优先级更高:

    graph TD
    A["受管策略<br/>/Library/.../ClaudeCode/CLAUDE.md"] -->|最高优先级| A2["受管插件<br/>managed-settings.d/"]
    A2 --> B["用户记忆<br/>~/.claude/CLAUDE.md"]
    B --> C["用户规则<br/>~/.claude/rules/*.md"]
    C --> D["项目记忆<br/>./CLAUDE.md"]
    D --> E["项目规则<br/>./.claude/rules/*.md"]
    E --> F["本地项目记忆<br/>./CLAUDE.local.md"]
    F --> G["自动记忆<br/>~/.claude/projects/.../memory/"]

    B -->|导入| H["@docs/architecture.md"]
    H -->|导入| I["@docs/api-standards.md"]

    style A fill:#fce4ec,stroke:#333,color:#333
    style A2 fill:#fce4ec,stroke:#333,color:#333
    style B fill:#e1f5fe,stroke:#333,color:#333
    style C fill:#e1f5fe,stroke:#333,color:#333
    style D fill:#f3e5f5,stroke:#333,color:#333
    style E fill:#f3e5f5,stroke:#333,color:#333
    style F fill:#e8f5e9,stroke:#333,color:#333
    style G fill:#fff3e0,stroke:#333,color:#333
    style H fill:#e1f5fe,stroke:#333,color:#333
    style I fill:#e1f5fe,stroke:#333,color:#333
  

使用 claudeMdExcludes 排除 CLAUDE.md 文件

在大型 monorepo 中,某些 CLAUDE.md 文件可能与当前工作无关。claudeMdExcludes 设置允许你跳过特定的 CLAUDE.md 文件,使其不被加载到上下文中:

// 在 ~/.claude/settings.json 或 .claude/settings.json 中
{
  "claudeMdExcludes": [
    "packages/legacy-app/CLAUDE.md",
    "vendors/**/CLAUDE.md"
  ]
}

模式匹配相对于项目根目录的路径。这在以下场景特别有用:

  • 具有许多子项目的 monorepo,其中只有部分相关
  • 包含供应商或第三方 CLAUDE.md 文件的仓库
  • 通过排除过时或无关的指令来减少 Claude 上下文窗口中的噪音

另外一种Memory:规则

使用 .claude/rules/ 目录结构创建有组织的、特定路径的规则。规则可以在项目级和用户级定义:

your-project/
├── .claude/
│   ├── CLAUDE.md
│   └── rules/
│       ├── code-style.md
│       ├── testing.md
│       ├── security.md
│       └── api/                  # 支持子目录
│           ├── conventions.md
│           └── validation.md

~/.claude/
├── CLAUDE.md
└── rules/                        # 用户级规则(所有项目)
    ├── personal-style.md
    └── preferred-patterns.md

规则在 rules/ 目录内递归发现,包括任何子目录。~/.claude/rules/ 的用户级规则在项目级规则之前加载,允许项目覆盖个人默认值。

使用 YAML Frontmatter 的路径特定规则

定义仅适用于特定文件路径的规则:

---
paths: src/api/**/*.ts
---

# API 开发规则

- 所有 API 端点必须包含输入验证
- 使用 Zod 进行模式验证
- 记录所有参数和响应类型
- 所有操作包含错误处理

Glob 模式示例:

  • **/*.ts - 所有 TypeScript 文件
  • src/**/* - src/ 下的所有文件
  • src/**/*.{ts,tsx} - 多个扩展名
  • {src,lib}/**/*.ts, tests/**/*.test.ts - 多个模式

子目录和符号链接

.claude/rules/ 中的规则支持两种组织功能:

  • 子目录:规则被递归发现,因此你可以将它们组织成基于主题的文件夹(例如 rules/api/rules/testing/rules/security/
  • 符号链接:支持符号链接用于在多个项目之间共享规则。例如,你可以将共享规则文件从中心位置符号链接到每个项目的 .claude/rules/ 目录

Memory 更新生命周期

以下是记忆更新在 Claude Code 会话中的流转过程:

    sequenceDiagram
    participant 用户
    participant Claude as Claude Code
    participant 编辑器 as 文件系统
    participant Memory as CLAUDE.md

    用户->>Claude: "记住:使用 async/await"
    Claude->>用户: "哪个记忆文件?"
    用户->>Claude: "项目记忆"
    Claude->>编辑器: 打开 ~/.claude/settings.json
    Claude->>Memory: 写入 ./CLAUDE.md
    Memory-->>Claude: 文件已保存
    Claude->>Claude: 加载更新后的记忆
    Claude-->>用户: "记忆已保存!"
  

Auto Memory

Auto memory 是一个持久目录,Claude 在使用你的项目时自动记录学习、模式和见解。与你手动编写和维护的 CLAUDE.md 文件不同,auto memory 由 Claude 在会话期间自行写入。

Auto Memory 工作方式

  • 位置~/.claude/projects/<project>/memory/
  • 入口MEMORY.md 作为自动记忆目录中的主文件
  • 主题文件:特定主题的可选附加文件(例如 debugging.mdapi-conventions.md
  • 加载行为:会话开始时加载 MEMORY.md 的前 200 行(或前 25KB,以先到者为准)。主题文件按需加载,不在启动时加载。
  • 读写:Claude 在会话期间读取和写入记忆文件,发现模式和项目特定知识

Auto Memory 架构

    graph TD
    A["Claude 会话启动"] --> B["加载 MEMORY.md<br/>(前 200 行 / 25KB)"]
    B --> C["会话活跃"]
    C --> D["Claude 发现<br/>模式和见解"]
    D --> E{"写入<br/>自动记忆"}
    E -->|通用笔记| F["MEMORY.md"]
    E -->|特定主题| G["debugging.md"]
    E -->|特定主题| H["api-conventions.md"]
    C --> I["按需加载<br/>主题文件"]
    I --> C

    style A fill:#e1f5fe,stroke:#333,color:#333
    style B fill:#e1f5fe,stroke:#333,color:#333
    style C fill:#e8f5e9,stroke:#333,color:#333
    style D fill:#f3e5f5,stroke:#333,color:#333
    style E fill:#fff3e0,stroke:#333,color:#333
    style F fill:#fce4ec,stroke:#333,color:#333
    style G fill:#fce4ec,stroke:#333,color:#333
    style H fill:#fce4ec,stroke:#333,color:#333
    style I fill:#f3e5f5,stroke:#333,color:#333
  

Auto Memory 目录结构

~/.claude/projects/<project>/memory/
├── MEMORY.md              # 入口(启动时加载前 200 行 / 25KB)
├── debugging.md           # 主题文件(按需加载)
├── api-conventions.md     # 主题文件(按需加载)
└── testing-patterns.md    # 主题文件(按需加载)

版本要求

Auto memory 需要 Claude Code v2.1.59 或更高版本。如果你使用的是旧版本,请先升级:

自定义 Auto Memory 目录

默认情况下,auto memory 存储在 ~/.claude/projects/<project>/memory/。你可以使用 autoMemoryDirectory 设置(自 v2.1.74 起可用)更改此位置:

// 在 ~/.claude/settings.json 或 .claude/settings.local.json 中(仅用户/本地设置)
{
  "autoMemoryDirectory": "/path/to/custom/memory/directory"
}

注意autoMemoryDirectory 只能在用户级(~/.claude/settings.json)或本地设置(.claude/settings.local.json)中设置,不能在项目或受管策略设置中设置。

当你想要以下场景时,这很有用:

  • 将 auto memory 存储在共享或同步的位置
  • 将 auto memory 与默认 Claude 配置目录分离
  • 使用默认层级之外的项目特定路径

Worktree 和仓库共享

同一 git 仓库内的所有 worktree 和子目录共享一个 auto memory 目录。这意味着在 worktree 之间切换或在相同仓库的不同子目录中工作时,将读取和写入相同的记忆文件。

注意:Subagent 也可以维护自己的 auto memory。详情请参阅官方 subagent 记忆文档

控制 Auto Memory

Auto memory 可以通过 CLAUDE_CODE_DISABLE_AUTO_MEMORY 环境变量控制:

行为
0 强制自动记忆开启
1 强制自动记忆关闭
(未设置) 默认行为(自动记忆启用)
# 为会话禁用自动记忆
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude

# 显式强制开启自动记忆
CLAUDE_CODE_DISABLE_AUTO_MEMORY=0 claude

使用 --add-dir 添加额外目录

--add-dir 标志允许 Claude Code 从当前工作目录之外的额外目录加载 CLAUDE.md 文件。这适用于 monorepo 或多项目设置,其中来自其他目录的上下文是相关的。

要启用此功能,设置环境变量:

CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1

然后使用该标志启动 Claude Code:

claude --add-dir /path/to/other/project

Claude 将从指定的额外目录加载 CLAUDE.md,与当前工作目录的 memory 文件并列。

实战示例

示例 1:项目记忆结构

文件: ./CLAUDE.md

# 项目配置

## 项目概览
- **名称**:电商平台
- **技术栈**:Node.js、PostgreSQL、React 18、Docker
- **团队规模**:5 名开发者
- **截止日期**:2025 Q4

## 架构
@docs/architecture.md
@docs/api-standards.md
@docs/database-schema.md

## 开发标准

### 代码风格
- 使用 Prettier 格式化
- 使用 ESLint 配置 airbnb
- 最大行长度:100 字符
- 使用 2 空格缩进

### 命名约定
- **文件**:kebab-case(user-controller.js)
- **类**:PascalCase(UserService)
- **函数/变量**:camelCase(getUserById)
- **常量**:UPPER_SNAKE_CASE(API_BASE_URL)
- **数据库表**:snake_case(user_accounts)

### Git 工作流
- 分支名称:`feature/description``fix/description`
- 提交消息:遵循 conventional commits
- 合并前需要 PR
- 所有 CI/CD 检查必须通过
- 最少需要 1 个批准

### 测试要求
- 最低 80% 代码覆盖率
- 所有关键路径必须有测试
- 使用 Jest 进行单元测试
- 使用 Cypress 进行 E2E 测试
- 测试文件名:`*.test.ts``*.spec.ts`

### API 标准
- 仅 RESTful 端点
- JSON 请求/响应
- 正确使用 HTTP 状态码
- API 端点版本控制:`/api/v1/`
- 所有端点用示例记录

### 数据库
- 使用迁移进行模式更改
- 从不硬编码凭证
- 使用连接池
- 在开发环境中启用查询日志
- 定期备份

### 部署
- 基于 Docker 的部署
- Kubernetes 编排
- 蓝绿部署策略
- 失败时自动回滚
- 数据库迁移在部署前运行

## 常用命令

| 命令 | 用途 |
|------|------|
| `npm run dev` | 启动开发服务器 |
| `npm test` | 运行测试套件 |
| `npm run lint` | 检查代码风格 |
| `npm run build` | 构建生产版本 |
| `npm run migrate` | 运行数据库迁移 |

## 团队联系人
- 技术负责人:Sarah Chen(@sarah.chen)
- 产品经理:Mike Johnson(@mike.j)
- 运维:Alex Kim(@alex.k)

## 已知问题与解决办法
- PostgreSQL 连接池在高峰期限制为 20
- 解决方法:实现查询队列
- Safari 14 与异步生成器的兼容性问题
- 解决方法:使用 Babel 转译器

## 相关项目
- 分析仪表板:`/projects/analytics`
- 移动应用:`/projects/mobile`
- 管理面板:`/projects/admin`

示例 2:目录级记忆

文件: ./src/api/CLAUDE.md

# API 模块标准

此文件覆盖根 CLAUDE.md,适用于 /src/api/ 下的所有内容

## API 专属标准

### 请求验证
- 使用 Zod 进行模式验证
- 始终验证输入
- 返回 400 和验证错误
- 包含字段级错误详情

### 身份验证
- 所有端点需要 JWT 令牌
- 令牌在 Authorization 头中
- 令牌 24 小时后过期
- 实现刷新令牌机制

### 响应格式

所有响应必须遵循此结构:

```json
{
  "success": true,
  "data": { /* 实际数据 */ },
  "timestamp": "2025-11-06T10:30:00Z",
  "version": "1.0"
}
```

错误响应:
```json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "用户消息",
    "details": { /* 字段错误 */ }
  },
  "timestamp": "2025-11-06T10:30:00Z"
}
```

### 分页
- 使用基于游标的分页(不是偏移量)
- 包含 `hasMore` 布尔值
- 最大页面大小限制为 100
- 默认页面大小:20

### 限流
- 认证用户每小时 1000 个请求
- 公开端点每小时 100 个请求
- 超出时返回 429
- 包含 retry-after 头

### 缓存
- 使用 Redis 进行会话缓存
- 缓存持续时间:默认 5 分钟
- 写操作时失效
- 用资源类型标记缓存键

示例 3:个人记忆

文件: ~/.claude/CLAUDE.md

# 我的开发偏好

## 关于我
- **经验水平**:8 年全栈开发
- **偏好语言**:TypeScript、Python
- **沟通风格**:直接,带示例
- **学习风格**:带代码的可视化图表

## 代码偏好

### 错误处理
我喜欢使用 try-catch 块和有意义的错误消息进行显式错误处理。
避免通用错误。始终记录错误以供调试。

### 注释
注释用于说明"为什么",而不是"是什么"。代码应该是自文档化的。
注释应解释业务逻辑或非显而易见的决策。

### 测试
我偏好 TDD(测试驱动开发)。
先写测试,再写实现。
关注行为,而非实现细节。

### 架构
我偏好模块化、松耦合的设计。
使用依赖注入提高可测试性。
分离关注点(控制器、服务、仓库)。

## 调试偏好
- 使用 console.log 带前缀:`[DEBUG]`
- 包含上下文:函数名、相关变量
- 可用时使用堆栈跟踪
- 日志中始终包含时间戳

## 沟通
- 用图表解释复杂概念
- 在解释理论之前展示具体示例
- 包含修改前后的代码片段
- 最后总结要点

## 项目组织
我按如下方式组织项目:

   project/
   ├── src/
   │   ├── api/
   │   ├── services/
   │   ├── models/
   │   └── utils/
   ├── tests/
   ├── docs/
   └── docker/

## 工具链
- **IDE**:带 vim 键绑定的 VS Code
- **终端**:带 Oh-My-Zsh 的 Zsh
- **格式化**:Prettier(100 字符行长度)
- **Linter**:ESLint 配置 airbnb
- **测试框架**:Jest 配合 React Testing Library

我的测试

要求 Claude 保存新规则

Claude 没有保存规则,因为我没有任何 CLAUDE.md 文件。然后要求 Claude 确认位置。

要求 Claude 保存新规则

示例 4:会话中更新记忆

你可以在活跃的 Claude Code 会话期间向记忆添加新规则。有两种方式:

方式 1:直接请求

用户:记住我偏好使用 React hooks 而不是类组件来编写所有新组件。

Claude:我将把它添加到你的记忆中。这个规则应该放在哪个记忆文件中?
        1. 项目记忆(./CLAUDE.md)
        2. 个人记忆(~/.claude/CLAUDE.md)

用户:项目记忆

Claude:✅ 记忆已保存!

已添加到 ./CLAUDE.md:
---

### 组件开发
- 使用 React Hooks 的函数组件
- 优先使用 hooks 而不是类组件
- 自定义 hooks 用于可复用逻辑
- 事件处理使用 useCallback
- 昂贵计算使用 useMemo

方式 2:使用 “# new rule into memory” 模式

你也可以使用显式模式 “# new rule into memory” 来触发记忆更新:

用户:# new rule into memory
      处理前始终使用 Zod 模式验证用户输入。

Claude:我将此规则保存到记忆中。我应该使用哪个记忆文件?
        1. 项目记忆(./CLAUDE.md)
        2. 个人记忆(~/.claude/CLAUDE.md)

用户:项目记忆

Claude:✅ 记忆已保存!

已添加到 ./CLAUDE.md:
---

### 输入验证
- 处理前始终使用 Zod 模式验证用户输入
- 在每个 API 处理程序文件顶部定义模式
- 返回 400 状态码和验证错误

添加记忆的提示

  • 规则要具体且可操作
  • 将相关规则分组在章节标题下
  • 更新现有章节而不是重复内容
  • 选择适当的记忆范围(项目级 vs. 个人级)

Memory 功能对比

功能 Claude Web/Desktop Claude Code(CLAUDE.md)
自动综合 ✅ 每 24 小时 ✅ 自动记忆
跨项目 ✅ 共享 ❌ 项目特定
团队访问 ✅ 共享项目 ✅ Git 跟踪
可搜索 ✅ 内置 ✅ 通过 /memory
可编辑 ✅ 在聊天中 ✅ 直接文件编辑
导入/导出 ✅ 是 ✅ 复制/粘贴
持久化 ✅ 24 小时+ ✅ 无限期

Claude Web/Desktop 中的 Memory

记忆综合时间线

    graph LR
    A["第 1 天:用户<br/>对话"] -->|24 小时| B["第 2 天:记忆<br/>综合"]
    B -->|自动| C["记忆更新<br/>已摘要"]
    C -->|加载到| D["第 2-N 天:<br/>新对话"]
    D -->|添加到| E["记忆"]
    E -->|24 小时后| F["记忆刷新"]
  

记忆摘要示例:

## Claude 对用户的记忆

### 专业背景
- 具有 8 年经验的高级全栈开发者
- 专注于 TypeScript/Node.js 后端和 React 前端
- 活跃的开源贡献者
- 对 AI 和机器学习感兴趣

### 项目上下文
- 当前正在构建电商平台
- 技术栈:Node.js、PostgreSQL、React 18、Docker
- 与 5 名开发者组成的团队合作
- 使用 CI/CD 和蓝绿部署

### 沟通偏好
- 偏好直接、简洁的解释
- 喜欢可视化图表和示例
- 欣赏代码片段
- 在注释中解释业务逻辑

### 当前目标
- 改进 API 性能
- 将测试覆盖率提高到 90%
- 实现缓存策略
- 记录架构

最佳实践

应该做的

  • 具体且详细:使用清晰、详细的指令而不是模糊的指导
    • ✅ 好:“所有 JavaScript 文件使用 2 空格缩进”
    • ❌ 避免:“遵循最佳实践”
  • 保持有组织:使用清晰的 markdown 章节和标题构建记忆文件
  • 使用适当的层级
    • 受管策略:公司级策略、安全标准、合规要求
    • 项目记忆:团队标准、架构、编码约定(提交到 git)
    • 用户记忆:个人偏好、沟通风格、工具选择
    • 目录记忆:模块特定规则和覆盖
  • 利用导入:使用 @path/to/file 语法引用现有文档
    • 支持最多 5 级递归嵌套
    • 避免记忆文件之间的重复
    • 示例:参见 @README.md 了解项目概览
  • 记录常用命令:包含你重复使用的命令以节省时间
  • 对项目记忆进行版本控制:将项目级 CLAUDE.md 文件提交到 git 供团队使用
  • 定期审查:随着项目演进和需求变化定期更新记忆
  • 提供具体示例:包含代码片段和特定场景

不应该做的

  • 不要存储秘密:绝不包含 API 密钥、密码、令牌或凭证
  • 不要包含敏感数据:不要有 PII、私有信息或专有秘密
  • 不要重复内容:使用导入(@path)引用现有文档
  • 不要模糊:避免"遵循最佳实践"或"写好代码"等通用陈述
  • 不要太长:保持单个记忆文件聚焦,不超过 500 行
  • 不要过度组织:策略性使用层级;不要创建过多的子目录覆盖
  • 不要忘记更新:过时的记忆会导致混淆和过时的做法
  • 不要超过嵌套限制:记忆导入支持最多 5 级嵌套

记忆管理建议

选择正确的记忆层级:

用例 记忆层级 原因
公司安全策略 受管策略 适用于整个组织的所有项目
团队代码风格指南 项目 通过 git 与团队共享
你偏好的编辑器快捷键 用户 个人偏好,不共享
API 模块标准 目录 仅特定于该模块

快速更新工作流:

  1. 单个规则:使用 /memory 打开编辑器,或对话式请求
  2. 多处更改:使用 /memory 打开编辑器
  3. 初始设置:使用 /init 创建模板

导入最佳实践:

# 好:引用现有文档
@README.md
@docs/architecture.md
@package.json

# 避免:复制其他地方已存在的内容
# 不要将 README 内容复制到 CLAUDE.md,直接导入即可

官方文档

获取最新信息,请参考 Claude Code 官方文档:

官方文档中的关键技术细节

记忆加载:

  • 所有记忆文件在 Claude Code 启动时自动加载
  • Claude 从当前工作目录向上遍历以发现 CLAUDE.md 文件
  • 访问这些目录时会发现和加载子树文件

导入语法:

  • 使用 @path/to/file 包含外部内容(例如 @~/.claude/my-project-instructions.md
  • 支持相对路径和绝对路径
  • 支持递归导入,最大深度为 5
  • 首次外部导入触发审批对话框
  • Markdown 代码段或代码块内的导入指令不会被求值
  • 自动将引用的内容包含在 Claude 的上下文中

记忆层级优先级:

  1. 受管策略(最高优先级)
  2. 受管插件(managed-settings.d/,v2.1.83+)
  3. 项目记忆
  4. 项目规则(.claude/rules/
  5. 用户记忆
  6. 用户级规则(~/.claude/rules/
  7. 本地项目记忆
  8. 自动记忆(最低优先级)

相关概念链接

集成点

  • MCP 协议 - 与记忆并列的实时数据访问
  • 斜杠命令 - 会话特定快捷方式
  • Skills - 带记忆上下文的自动化工作流

相关 Claude 功能


最后更新:2026 年 5 月 9 日

Claude Code 版本:2.1.138

来源