Adding context
添加上下文 (Adding Context)
课程来源: Anthropic Academy - Claude Code in Action
课程链接: https://anthropic.skilljar.com/claude-code-in-action/303241
课程简介
在使用 Claude 进行编码项目时,上下文管理至关重要。您的项目可能有数十或数百个文件,但 Claude 只需要正确的信息即可有效地帮助您。过多的无关上下文实际上会降低 Claude 的性能,因此学会引导它关注相关文件和文档至关重要。
1. /init 命令 (The /init Command)
什么是 /init?
当您第一次在新项目中启动 Claude 时,运行 /init 命令。这会告诉 Claude 分析您的整个代码库并理解:
- 项目目的和架构 (Project’s purpose and architecture)
- 关键命令和开发工作流程 (Key commands and development workflows)
- 编码模式和结构 (Coding patterns and structure)
工作流程
- 用户运行
/init命令 - Claude 分析代码库
- Claude 创建摘要并写入
CLAUDE.md文件 - 系统询问权限:
- Enter - 逐个批准每个写入操作
- Shift+Tab - 允许 Claude 在整个会话中自由写入文件
2. CLAUDE.md 文件 (The CLAUDE.md File)
主要用途
CLAUDE.md 文件有两个主要目的:
引导 Claude 浏览代码库
- 指出重要命令
- 说明架构
- 定义编码风格
自定义 Claude 的行为
- 给 Claude 特定或自定义的指令
核心机制
这个文件会包含在您向 Claude 发出的每个请求中,就像为项目设置了一个持久的系统提示。
3. CLAUDE.md 文件位置 (CLAUDE.md File Locations)
Claude 识别三个不同位置的 CLAUDE.md 文件:
📄 CLAUDE.md
- 位置: 项目根目录
- 用途: 通过 /init 生成,提交到源代码管理
- 范围: 与其他工程师共享的项目级指令
📄 CLAUDE.local.md
- 位置: 项目根目录
- 用途: 不与其他工程师共享
- 范围: 包含个人指令和 Claude 的自定义配置
📄 ~/.claude/CLAUDE.md
- 位置: 用户主目录下的 .claude 文件夹
- 用途: 用于机器上的所有项目
- 范围: 全局指令,适用于所有项目
4. 添加自定义指令 (Adding Custom Instructions)
Memory Mode(记忆模式)
您可以通过向 CLAUDE.md 文件添加指令来自定义 Claude 的行为。
使用方法
使用 # 命令进入 “memory mode” - 这让您可以智能地编辑 CLAUDE.md 文件。
示例:
1 | # Use comments sparingly. Only comment complex code. |
Claude 会自动将这条指令合并到您的 CLAUDE.md 文件中。
典型使用场景
- 修正 Claude 的不良习惯(如添加过多注释)
- 定义项目特定的编码规范
- 设置默认行为偏好
5. 使用 @ 符号引用文件 (File Mentions with ‘@’)
基本用法
当您需要 Claude 查看特定文件时,使用 @ 符号后跟文件路径。这会自动将该文件的内容包含在您的请求中。
示例
用户输入:
1 | How does the auth system work? @auth |
Claude 的行为:
- 显示与 “auth” 相关的文件列表供选择
- 将选定文件包含在对话中
- 基于文件内容回答问题
好处
- 精准定位: 直接引用需要的文件
- 节省时间: 无需手动复制粘贴代码
- 保持焦点: Claude 只看到相关上下文
6. 在 CLAUDE.md 中引用文件 (Referencing Files in CLAUDE.md)
持久性文件引用
您还可以在 CLAUDE.md 文件中直接使用 @ 语法提及文件。这对于与项目多个方面相关的文件特别有用。
示例
在 CLAUDE.md 中添加:
1 | The database schema is defined in the @prisma/schema.prisma file. |
工作机制
当您以这种方式提及文件时,其内容会自动包含在每个请求中,因此 Claude 可以:
- 立即回答有关数据结构的问题
- 无需每次都搜索和读取架构文件
- 保持对核心项目文件的持续理解
7. 关键要点 (Key Takeaways)
✅ 上下文管理的重要性
- 过多的无关上下文会降低性能
- 只提供相关信息以获得最佳结果
✅ 三种 CLAUDE.md 文件
- 项目级(CLAUDE.md)- 团队共享
- 本地级(CLAUDE.local.md)- 个人使用
- 全局级(~/.claude/CLAUDE.md)- 所有项目
✅ 两种上下文添加方式
- 临时: 使用
@文件路径在对话中引用 - 持久: 在 CLAUDE.md 中使用
@语法永久引用
✅ Memory Mode
- 使用
#开头的消息快速添加项目指令 - Claude 会智能地将指令合并到合适位置