Claude Code Docs 主页!图片 1:光徽标!图2:黑暗标志
⌘K问AI
克劳德开发者平台 网络上的克劳德代码
核心理念
扩展克劳德代码
入门与 Claude 一起构建代码部署管理配置参考什么新资源
概述 快速入门 变更日志
Claude Code 的工作原理 扩展克劳德代码 探索 .claude 目录 探索上下文窗口
核心理念
了解何时使用 CLAUDE.md、技能、子代理、挂钩、MCP 和插件。
有关核心代理循环的工作原理,请参阅Claude Code 的工作原理。
Claude Code 新手? 从 CLAUDE.md 开始进行项目约定。根据需要添加其他扩展。
概述
扩展插入代理循环的不同部分: CLAUDE.md 添加持久上下文 Claude 看到每个会话 技能 添加可重用的知识和可调用的工作流程 MCP 将 Claude 连接到外部服务和工具 子代理 在隔离上下文中运行自己的循环,返回摘要 代理团队 通过共享任务和点对点消息传递来协调多个独立会话 Hooks 完全作为确定性脚本在循环之外运行 插件 和 marketplaces 打包并分发这些功能
技能 是最灵活的扩展。技能是包含知识、工作流程或说明的 Markdown 文件。您可以使用“/deploy”等命令调用技能,或者 Claude 可以在相关时自动加载它们。技能可以在您当前的对话中运行,也可以通过子代理在隔离的上下文中运行。
将功能与您的目标相匹配
功能范围从克劳德看到每个会话的始终在线上下文,到您或克劳德可以调用的按需功能,再到针对特定事件运行的后台自动化。下表显示了可用的内容以及每一项何时有意义。
| 特色 | 它有什么作用 | 何时使用它 | 示例 |
|---|---|---|---|
| 克劳德.md | 持久上下文加载每个对话 | 项目惯例,“总是做X”规则 | “使用 pnpm,而不是 npm。在提交之前运行测试。” |
| 技能 | 克劳德可以使用的说明、知识和工作流程 | 可重复使用的内容、参考文档、可重复的任务 | /deploy 运行您的部署清单; API 文档端点模式技巧 |
| 子代理 | 返回汇总结果的隔离执行上下文 | 上下文隔离、并行任务、专业化工作人员 | 读取许多文件但仅返回关键发现的研究任务 |
| 代理团队 | 协调多个独立的 Claude Code 会话 | 并行研究、新功能开发、与竞争假设的调试 | 派出审核人员来同时检查安全性、性能和测试 |
| MCP | 连接到外部服务 | 外部数据或行动 | 查询数据库、发布到 Slack、控制浏览器 |
| 挂钩 | 针对事件运行的确定性脚本 | 可预测的自动化,无需法学硕士 | 每次文件编辑后运行 ESLint |
Plugins 是包装层。插件将技能、挂钩、子代理和 MCP 服务器捆绑到单个可安装单元中。插件技能是命名空间的(如“/my-plugin
”),因此多个插件可以共存。当您想要在多个存储库中重复使用相同的设置或通过 marketplace 分发给其他人时,请使用插件。比较相似的功能
有些功能看起来很相似。以下是如何区分它们的方法。
技能与子代理 CLAUDE.md 与技能 CLAUDE.md vs 规则 vs 技能 子代理与代理团队 MCP 与技能
技能和子代理解决不同的问题: 技能是可重用的内容,您可以加载到任何上下文中 子代理是独立的工作人员,与您的主要对话分开运行
| 方面 | 技能 | 子代理 |
|---|---|---|
| 它是什么 | 可重复使用的说明、知识或工作流程 | 有自己的背景的孤立工人 |
| 主要优势 | 跨环境共享内容 | 上下文隔离。工作单独进行,仅汇总回报 |
| 最适合 | 参考资料,可调用的工作流程 | 读取多个文件的任务、并行工作、专门的工作人员 |
两者都存储指令,但加载方式不同且用途不同。
| 方面 | 克劳德.md | 技能 |
|---|---|---|
| 负载 | 每次会话,自动 | 按需 |
| 可以包含文件 | 是的,使用 @path 导入 | 是的,使用 @path 导入 |
| 可以触发工作流程 | 没有 | 是的,使用 /<name> |
| 最适合 | “永远做X”规则 | 参考资料,可调用的工作流程 |
将其放入 CLAUDE.md 如果 Claude 应该始终了解它:编码约定、构建命令、项目结构、“永远不要做 X”规则。将其放入技能如果它是 Claude 有时需要的参考材料(API 文档、样式指南)或使用 /<name> 触发的工作流程(部署、审查、发布)。经验法则: 将 CLAUDE.md 保持在 200 行以下。如果它在增长,请将参考内容移至技能或拆分为 .claude/rules/ 文件。
所有三个存储指令,但加载方式不同:
| 方面 | 克劳德.md | .claude/rules/ | 技能 |
|---|---|---|---|
| 负载 | 每节课 | 每次会话或打开匹配文件时 | 按需、调用或相关时 |
| 范围 | 整个项目 | 范围可以限定为文件路径 | 特定任务 |
| 最适合 | 核心约定和构建命令 | 特定于语言或特定于目录的指南 | 参考资料,可重复的工作流程 |
使用 CLAUDE.md 获取每个会话所需的说明:构建命令、测试约定、项目架构。使用规则来保持 CLAUDE.md 的重点。带有 paths frontmatter 的规则仅在 Claude 使用匹配文件时加载,并保存上下文。对 Claude 有时只需要的内容使用技能,例如 API 文档或使用 /<name> 触发的部署清单。
两者都并行工作,但它们在架构上有所不同: 子代理 在您的会话中运行并将结果报告回您的主上下文 代理团队是相互通信的独立 Claude Code 会话
| 方面 | 子代理 | 代理团队 |
|---|---|---|
| 背景 | 自己的上下文窗口;结果返回给调用者 | 自己的上下文窗口;完全独立 |
| 通讯 | 仅将结果报告给主代理 | 队友直接互相留言 |
| 协调 | 主代理管理所有工作 | 具有自我协调功能的共享任务列表 |
| 最适合 | 只注重结果的重点任务 | 需要讨论和协作的复杂工作 |
| 代币成本 | 下:结果总结回到主要背景 | 更高:每个队友都是一个单独的克劳德实例 |
**当您需要快速、专注的工作人员时,请使用子代理:研究问题、验证索赔、审查文件。子代理完成工作并返回摘要。您的主要对话保持干净。当队友需要分享发现、互相挑战和独立协调时,请使用代理团队。代理团队最适合研究竞争假设、并行代码审查和新功能开发,其中每个团队成员都拥有一个单独的部分。**过渡点:**如果您正在运行并行子代理但遇到上下文限制,或者如果您的子代理需要相互通信,那么代理团队是自然的下一步。
代理团队处于实验阶段,默认情况下处于禁用状态。请参阅代理团队 了解设置和当前限制。
MCP 将 Claude 连接到外部服务。技能扩展了克劳德的知识,包括如何有效地使用这些服务。
| 方面 | MCP | 技能 |
|---|---|---|
| 它是什么 | 连接外部服务的协议 | 知识、工作流程和参考资料 |
| 提供 | 工具和数据访问 | 知识、工作流程、参考资料 |
| 示例 | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流程、API 风格指南 |
这些解决了不同的问题并且可以很好地协同工作:MCP 使 Claude 能够与外部系统交互。如果没有 MCP,Claude 无法查询您的数据库或发布到 Slack。技能 为 Claude 提供有关如何有效使用这些工具的知识,以及您可以使用 /<name> 触发的工作流程。技能可能包括您团队的数据库架构和查询模式,或者具有团队消息格式规则的“/post-to-slack”工作流程。示例:MCP 服务器将 Claude 连接到您的数据库。 Claude 掌握了一项技能,了解数据模型、常见查询模式以及针对不同任务使用哪些表。
了解特征层如何
功能可以在多个级别上定义:用户范围、每个项目、通过插件或通过托管策略。您还可以将 CLAUDE.md 文件嵌套在子目录中或将技能放置在 monorepo 的特定包中。当同一功能存在于多个级别时,它们的分层方式如下: CLAUDE.md 文件 是附加的:所有级别同时向 Claude 的上下文贡献内容。启动时加载工作目录及以上目录中的文件;当您在其中工作时,子目录会加载。当指令发生冲突时,克劳德会利用判断来协调它们,通常会优先考虑更具体的指令。请参阅如何加载 CLAUDE.md 文件。 技能和子代理 按名称覆盖:当多个级别存在相同名称时,一个定义根据优先级获胜(托管 > 用户 > 技能项目;托管 > CLI 标志 > 项目 > 用户 > 子代理插件)。插件技能是命名空间以避免冲突。请参阅技能发现 和子代理范围。 钩子合并:所有注册的钩子都会触发其匹配事件,无论来源如何。请参阅钩子。
组合功能
每个扩展都解决不同的问题:CLAUDE.md 处理始终在线的上下文,技能处理按需知识和工作流程,MCP 处理外部连接,子代理处理隔离,挂钩处理自动化。实际设置会根据您的工作流程将它们组合起来。例如,您可以使用 CLAUDE.md 进行项目约定、部署工作流程的技能、连接到数据库的 MCP 以及在每次编辑后运行 linting 的挂钩。每个功能都可以处理它最擅长的事情。
| 图案 | 它是如何运作的 | 示例 |
|---|---|---|
| 技能+MCP | MCP提供连接;一项技能教克劳德如何用好 | MCP 连接到您的数据库,一项记录您的架构和查询模式的技能 |
| 技能+子代理 | 一项技能会产生并行工作的子代理 | “/audit”技能启动了在隔离环境中工作的安全性、性能和风格子代理 |
| CLAUDE.md + 技能 | CLAUDE.md 拥有永远在线的规则;技能持有参考资料按需加载 | CLAUDE.md 说“遵循我们的 API 约定”,一项技能包含完整的 API 风格指南 |
| 挂钩+MCP | 钩子通过MCP触发外部动作 | 当 Claude 修改关键文件时,后期编辑挂钩会发送 Slack 通知 |
了解背景成本
您添加的每个功能都会消耗 Claude 的一些上下文。太多会填满你的上下文窗口,但它也会增加噪音,降低克劳德的效率;技能可能无法正确触发,或者克劳德可能会忘记你的惯例。了解这些权衡有助于您建立有效的设置。有关这些功能如何在运行会话中组合的交互式视图,请参阅探索上下文窗口。
按功能划分的上下文成本
每个功能都有不同的加载策略和上下文成本:
| 特色 | 当它加载时 | 加载什么 | 上下文成本 |
|---|---|---|---|
| 克劳德.md | 会议开始 | 完整内容 | 每一个请求 |
| 技能 | 会话开始+使用时 | 开头说明,使用时的完整内容 | 低(每个请求的描述)* |
| MCP 服务器 | 会议开始 | 工具名称;按需提供完整模式 | 低直到使用工具 |
| 子代理 | 何时产生 | 具有特定技能的新鲜环境 | 与主会话隔离 |
| 挂钩 | 触发 | 没有(在外部运行) | 零,除非钩子返回额外的上下文 |
*默认情况下,技能描述会在会话开始时加载,以便克劳德可以决定何时使用它们。在技能的 frontmatter 中设置 disable-model-inspiration: true 以将其完全对 Claude 隐藏,直到您手动调用它。对于您自己触发的技能,这会将上下文成本降低到零。
了解功能如何加载
每个功能都会在会话中的不同点加载。下面的选项卡解释了每个选项何时加载以及进入上下文的内容。!图 4:上下文加载:CLAUDE.md 在会话开始时加载并保留在每个请求中。 MCP 工具名称在开始时加载,完整模式推迟到使用时加载。技能在开始时加载描述,在调用时加载完整内容。子代理获得隔离的上下文。挂钩在外部运行。
克劳德.md
**时间:会话开始加载内容:**所有 CLAUDE.md 文件的完整内容(托管、用户和项目级别)。继承: Claude 从工作目录读取 CLAUDE.md 文件直至根目录,并在访问这些文件时发现子目录中的嵌套文件。有关详细信息,请参阅如何加载 CLAUDE.md 文件。
将 CLAUDE.md 保持在 200 行以下。将参考材料移至技能,按需加载。
技能是克劳德工具箱中的额外能力。它们可以是参考资料(如 API 样式指南)或使用“/”(如“/deploy”)触发的可调用工作流程。 Claude Code 附带了捆绑技能,例如开箱即用的“/simplify”、“/batch”和“/debug”。您也可以创建自己的。克劳德在适当的时候使用技能,或者您可以直接调用技能。何时: 取决于技能的配置。默认情况下,描述在会话开始时加载,并在使用时加载完整内容。对于仅限用户的技能(“disable-model-inspiration:true”),在调用它们之前不会加载任何内容。**加载内容:**对于模型可调用的技能,Claude 会在每个请求中看到名称和描述。当您使用“/”调用技能或 Claude 自动加载该技能时,完整内容将加载到您的对话中。Claude 如何选择技能: Claude 将您的任务与技能描述进行匹配,以确定哪些是相关的。如果描述模糊或重叠,克劳德可能会加载错误的技能或错过一项有帮助的技能。要告诉 Claude 使用特定技能,请使用“/”调用它。 disable-model-inspiration: true 的技能是
克劳德在调用它们之前是不可见的。**上下文成本:**在使用之前很低。仅限用户的技能在调用之前成本为零。在子代理中: 技能在子代理中的工作方式不同。传递给子代理的技能不是按需加载,而是在启动时完全预加载到其上下文中。子代理不会继承主会话的技能; you must specify them explicitly.
对于有副作用的技能,请使用“disable-model-inspiration: true”。这可以保存上下文并确保只有您触发它们。