Skip to content

扩展 Claude Code

理解何时应使用 CLAUDE.md、Skills、subagents、hooks、MCP、代码智能、插件与插件市场。

理解何时应使用 CLAUDE.md、Skills、subagents、hooks、MCP、代码智能、插件与插件市场。

文档索引

完整文档索引地址:https://code.claude.com/docs/llms.txt

在继续深入前,你可以先用这个文件发现所有可用页面。

Claude Code 把能够理解代码的模型,与用于文件操作、搜索、执行命令和访问 Web 的内置工具结合在一起。内置工具已经覆盖了大多数编码任务。本页讲的是扩展层:也就是你为了定制 Claude 已知的信息、连接外部服务、以及自动化工作流而额外添加的能力。

如果你想先理解核心代理式循环,可以先看Claude Code 的工作原理

刚开始使用 Claude Code? 建议先从 CLAUDE.md 开始,把项目约定写进去;只有在出现明确触发场景时,再逐步补充其他扩展。

这些扩展能力会接入代理式循环的不同位置:

  • CLAUDE.md:为每次会话注入持久上下文。
  • Skills:提供可复用知识和可调用工作流。
  • 代码智能(Code intelligence):把 Claude 连接到语言服务器,支持符号级跳转和实时类型错误。
  • MCP:把 Claude 连接到外部服务和工具。
  • Subagents:在隔离上下文中运行自己的循环,并把结果摘要返回给主会话。
  • Agent teams:协调多个相互独立的 Claude Code 会话,并允许共享任务和点对点消息。
  • Hooks:在生命周期事件上触发脚本、HTTP 请求、提示词或 subagent。
  • Plugins 与 marketplaces:把这些能力打包并进行分发。

Skills 是最灵活的扩展之一。一个 skill 本质上是包含知识、工作流或说明的 Markdown 文件。你可以通过 /deploy 这样的命令显式调用,也可以让 Claude 在相关场景下自动加载。Skills 既可以在当前对话里运行,也可以通过 subagents 在隔离上下文中运行。

这些能力的覆盖范围很广:有些是每次会话都会存在的常驻上下文,有些是你或 Claude 按需调用的能力,还有一些是在特定事件上自动运行的后台自动化机制。下面这张表展示了各自适用的场景。

能力它做什么何时使用示例
CLAUDE.md每次对话都会加载的持久上下文项目约定、“总是做 X” 一类规则“使用 pnpm 而不是 npm。提交前先跑测试。”
SkillClaude 可使用的说明、知识和工作流可复用内容、参考资料、重复性任务/deploy 执行你的部署清单;一个包含 API 端点模式的文档 skill
Subagent在隔离执行上下文中工作,并只返回摘要上下文隔离、并行任务、专用工作线程一个阅读大量文件、最后只返回关键发现的调研任务
Agent team协调多个独立的 Claude Code 会话并行调研、新功能开发、基于竞争假设的调试同时拉起安全、性能和测试审查者
代码智能基于语言服务器的导航与诊断强类型语言、大型代码库、grep 不够快或不够准时直接跳到符号定义,而不是手动把整个文件读完
MCP连接外部服务需要外部数据或外部动作时查询数据库、发 Slack、控制浏览器
Hook在事件上触发的脚本、HTTP 请求、提示词或 subagent每次匹配事件都必须运行的自动化每次文件编辑后自动跑 ESLint

插件是打包层。一个 plugin 会把 skills、hooks、subagents 和 MCP servers 打包成一个可安装单元。插件 skill 会带命名空间(如 /my-plugin:review),从而允许多个插件并存。若你想把同一套能力复用到多个仓库,或者通过 marketplace 分发给别人,plugin 就是正确的封装方式。

你不需要一开始就把所有东西都配置好。每种能力都有比较明确的触发信号,大多数团队也会按类似顺序逐步增加:

触发信号应添加什么
Claude 连续两次把某个约定或命令搞错把它写进 CLAUDE.md
你总是在任务开始时手动重复输入同一段提示词保存成一个可手动调用的 skill
你第三次把同一份作战手册或多步骤流程贴进聊天把它固化成 skill
你总要从 Claude 看不到的浏览器标签页里复制数据给它把那个系统接成 MCP server
Claude 经常要读很多文件才能找到某个符号定义或引用位置给对应语言安装代码智能插件
一个支线任务的中间输出把主对话淹没了,而你以后又不会回看把它改走 subagent
你希望某件事每次都自动发生,而不是靠提醒写一个 hook
第二个仓库也需要同一套配置打包成 plugin

同样的触发信号,也告诉你何时该更新已有配置。重复出现的错误,或者反复出现的审查意见,通常意味着应该修改 CLAUDE.md,而不是继续在聊天里一次次纠正。一个你每次都要手调的工作流,往往意味着 skill 还需要再修订。

有些能力看起来相似,实际解决的问题并不一样。下面给出最常见的区分方法。

Skills 与 subagents 解决的是不同问题:

  • Skills 是你可以加载进任意上下文的可复用内容。
  • Subagents 是从主对话中独立出去、单独运行的隔离工作线程。
维度SkillSubagent
它是什么可复用的说明、知识或工作流带独立上下文的隔离工作线程
核心优势在不同上下文之间复用内容上下文隔离;工作单独发生,只返回摘要
对主上下文窗口的影响会增加主窗口内容使用独立窗口,拥有自己的输入和输出 token
最适合参考资料、可调用工作流读很多文件的任务、并行工作、专用工作线程

Skills 既可以是参考型,也可以是行动型。参考型 skill 提供的是贯穿整个会话的知识,例如你的 API 风格指南;行动型 skill 则是告诉 Claude 去做一件具体事情,例如 /deploy 触发部署流程。

当你需要上下文隔离,或者主上下文快满时,就该用 subagent。它可以读几十个文件、跑大量搜索,但你的主对话只拿到最终摘要。由于 subagent 的工作不会消耗主上下文,这也适合那些你根本不需要保留中间过程的任务。自定义 subagent 还可以有自己的说明,并预加载指定 skills。

二者也可以组合:

  • subagent 可以预加载特定 skills(skills: 字段);
  • skill 也可以使用 context: fork 在隔离上下文中运行。

更多细节可参见官方的 Skills 页面。

如果某条信息应该每次会话都默认生效,通常放进 CLAUDE.md;如果它只在某类任务里才相关,或者需要你主动触发,通常应该做成 skill。

  • CLAUDE.md 适合:项目约定、常用命令、架构前提、默认行为规则。
  • Skill 适合:参考文档、可复用的任务模板、一步步执行的操作手册。

一个实用判断标准是:

  • “Claude 总该知道这件事” → 放 CLAUDE.md
  • “Claude 只在某类任务里才需要这件事” → 放 skill

这三者都是“给 Claude 额外说明”,但加载时机不同:

  • CLAUDE.md:总是加载,适合长期生效的根级规则。
  • Rules:按主题或路径匹配触发,适合只对某些文件或目录生效的规则。
  • Skills:按需加载,适合参考材料和可调用工作流。

如果某条规则只对 api/ 目录生效,就不应该塞进项目根 CLAUDE.md;应考虑写成 path-scoped rule。若某份内容太长、只在少数场景下才需要,就更适合做成 skill,而不是把它永远挂在上下文里。

Subagent 是单个隔离工作线程;agent team 是多个独立 Claude Code 会话的协同编排

  • 需要把一个子任务丢出去、收回摘要 → subagent
  • 需要多个独立会话并行工作、彼此协调 → agent team

例如:

  • “去研究这段代码并回来总结” → subagent
  • “同时让安全、性能、测试三个角色并行审查,再互相交换结论” → agent team

MCP 提供的是连接能力;skill 提供的是使用这些连接的知识与流程

  • MCP 负责把 Claude 接到数据库、浏览器、Slack、内部系统等外部世界。
  • Skill 负责教 Claude 如何更好地使用这些能力,例如数据库模式、常用查询模板、业务约束等。

Skill 是“需要时调用”;hook 是“事件发生时自动触发”。

  • Skill:更偏交互式、按需执行。
  • Hook:更偏自动化、生命周期驱动。

比如:

  • “我想在发布前运行检查清单” → skill
  • “每次编辑完文件都自动跑 lint” → hook

同一种能力可能定义在多个层级:面向整台机器的用户级、某个项目的项目级、由 plugin 提供的插件级,或者组织下发的托管策略级。你还可以在子目录里嵌套 CLAUDE.md,也可以在 monorepo 的特定包里放 skills。当同名能力在多个层级同时存在时,它们的叠加/覆盖方式并不相同。

  • CLAUDE.md 是累加的。 所有层级的内容都会同时进入 Claude 的上下文。启动时会加载当前工作目录及其祖先目录中的文件;随着你进入子目录工作,还会继续发现并加载子目录中的 CLAUDE.md。若说明冲突,Claude 会自行判断并协调,通常更具体的说明会优先生效。可参考官方的 how CLAUDE.md files load
  • Skills 与 subagents 按名称覆盖。 同名项在不同层级存在时,会按优先级决出一个定义生效:skills 的优先级是 managed > user > project;subagents 的优先级是 managed > CLI flag > project > user > plugin。plugin skill 会使用命名空间避免冲突。参见 skill discoverysubagent scope
  • MCP servers 按名称覆盖。 优先级是 local > project > user。参见官方的 MCP scope
  • Hooks 会合并。 所有已注册、且匹配当前事件的 hooks 都会触发,不管它们来自哪里。参见官方的 hooks

每种扩展都解决不同问题:

  • CLAUDE.md 处理常驻上下文;
  • skills 处理按需知识与工作流;
  • MCP 处理外部连接;
  • subagents 处理隔离;
  • hooks 处理自动化。

现实中的好用配置,通常是把它们按各自擅长的方向拼在一起。

例如,你可以:

  • CLAUDE.md 保存项目约定;
  • 用一个 skill 保存部署流程;
  • 用 MCP 连接数据库;
  • 再用 hook 在每次编辑后自动执行 lint。
组合模式工作方式示例
Skill + MCPMCP 提供连接;skill 教 Claude 如何高质量地使用它MCP 接数据库;skill 说明数据库模式和查询模式
Skill + Subagent一个 skill 负责拉起多个 subagents 并行工作/audit skill 启动安全、性能和风格 subagents,在隔离上下文里并行工作
CLAUDE.md + SkillsCLAUDE.md 存常驻规则;skills 存按需加载的参考资料CLAUDE.md 写“遵循 API 约定”,skill 则保存完整 API 风格指南
Hook + MCPhook 通过 MCP 触发外部动作文件编辑后触发 hook,通过 MCP 往 Slack 发通知

你添加的每一种能力,都会消耗一定的上下文。上下文过多不仅会让窗口更快被填满,也会带来噪声,使 Claude 更难稳定发挥:例如 skill 触发不准确,或者忘记项目约定。理解这些取舍,能帮助你构建更有效的配置。

如果你想看这些能力在真实会话中是如何一起进入上下文的,可以参考探索上下文窗口

能力何时加载加载什么上下文成本
CLAUDE.md会话开始时完整内容每次请求都带着
Skills会话开始时 + 使用时开始时只加载描述,使用时加载完整内容低(描述会在每次请求里出现)
MCP servers会话开始时工具名称;完整 schema 按需延迟加载低,直到真正使用工具
代码智能文件编辑后 + 按需时编辑后的诊断;查询符号时的位置信息低,而且还能减少其他地方的读文件开销
Subagents被拉起时一个全新的上下文,并带上指定 skills与主会话隔离
Hooks被触发时默认不加载到上下文(它在外部执行)0,除非 hook 返回额外上下文

默认情况下,skill 描述会在会话开始时加载,好让 Claude 能自行判断何时使用它。若在 skill 的 frontmatter 里设置 disable-model-invocation: true,这个 skill 对 Claude 就完全不可见,只有你手动调用时才会加载。对于那种你只会自己手动触发的 skill,这样可以把上下文成本降为 0。若 skill 不是你自己写的,也可以通过 skillOverrides 在设置里达到同样效果,而不需要直接改文件。

下表图示总结了不同能力在会话中的加载方式:

上下文加载示意图

另外,官方页面在这里给了一个交互式标签区域,分别展示 CLAUDE.md、Skills、MCP servers、代码智能、subagents 和 hooks 的加载时机。下面将其整理为文字版。

  • 何时加载: 会话启动时。
  • 加载内容: 所有 CLAUDE.md 文件的完整内容(包括 managed、user 和 project 层级)。
  • 继承方式: Claude 会从当前工作目录一路向上读取 CLAUDE.md,直到根目录;当它访问子目录文件时,也会继续发现并加载嵌套的 CLAUDE.md。细节可参见官方的 How CLAUDE.md files load

建议把 CLAUDE.md 控制在 200 行以内。若参考资料过长,最好迁移到 skills,这样只会在需要时按需加载。

下面这些页面分别深入讲解了各项能力的配置、示例和细节:

  • CLAUDE.md:保存项目上下文、约定与说明。
  • Skills:为 Claude 增加领域知识与可复用工作流。
  • Subagents:把工作委派到隔离上下文。
  • Agent teams:协调多个并行工作的会话。
  • MCP:把 Claude 连接到外部服务。
  • Hooks:用 hooks 自动化工作流。
  • Plugins:打包并共享一整组能力。
  • Marketplaces:托管和分发插件集合。
-
0:000:00