Extend Claude Code
- 分组:一、官方文档
- 原始链接:https://code.claude.com/docs/en/features-overview
- 抓取来源:http://code.claude.com/docs/en/features-overview
- 原始文件:/Users/yuanruiqin/Desktop/知识库/ClaudeCode-系统化知识库/01-官方文档/04-extend-claude-code.md
- 精读版生成时间:2026-04-05 13:50:44
中文精读版(去噪)
扩展 Claude 代码 - Claude 代码文档
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:review”),因此多个插件可以共存。当您想要在多个存储库中重复使用相同的设置或通过 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”。这可以保存上下文并确保只有您触发它们。