Skip to content

扩展 Claude Code

Claude Code 内置了文件操作、搜索、执行和网页访问等工具,覆盖大多数编程任务。在此之上,扩展层让你可以添加 Claude 知道的知识(CLAUDE.md、Skills)、连接外部服务(MCP)、隔离执行复杂任务(子代理、Agent Teams)和自动化工作流(Hooks)。本文梳理各功能的适用场景、上下文开销,以及如何随着工作需要逐步搭建你的配置。

Claude Code 使用内置工具(文件操作、搜索、命令执行、网页访问)处理大多数编程任务。本文介绍扩展层:你可以添加的自定义功能,用来告诉 Claude 更多内容、连接更多服务、自动化更多流程。

刚开始用 Claude Code? 先从 CLAUDE.md 写项目约定开始,等遇到具体需求再按需添加其他扩展。

扩展层概览

各扩展功能插入代理循环的不同节点:

功能作用适用场景示例
CLAUDE.md每次会话自动加载的持久上下文项目约定、"始终做 X"的规则"使用 pnpm,不用 npm。提交前运行测试。"
Skills可复用的知识和工作流参考资料、可重复任务/deploy 运行部署清单;API 文档技能
子代理独立上下文的隔离执行器上下文隔离、并行任务、专业工作者读很多文件的研究任务,只返回关键发现
Agent Teams协调多个独立的 Claude Code 会话并行研究、新功能开发、相互竞争的假设同时启动安全、性能、测试审查员
MCP连接外部服务外部数据或操作查询数据库、发 Slack 消息、控制浏览器
Hooks在特定事件上运行的确定性脚本不涉及 LLM 的可预测自动化每次文件编辑后自动运行 ESLint

Plugins 是打包层,把 Skills、Hooks、子代理和 MCP 服务器打包成可安装单元。使用 Plugin Marketplaces 分发给他人。

逐步搭建你的配置

不需要一开始就配置好一切。每个功能都有明显的触发时机,大多数团队大致按以下顺序添加:

触发时机添加什么
Claude 把某个约定或命令搞错了两次加到 CLAUDE.md
每次开始任务都要输入同一段提示保存为可调用的 Skill
第三次把同一个流程或清单粘贴到对话里封装成 Skill
每次要从浏览器标签页复制 Claude 看不到的数据把那个系统接入 MCP 服务器
某个任务让对话充满了不会再用到的输出通过子代理处理
希望某件事每次都自动发生,不用提写一个 Hook
另一个仓库需要相同的配置打包成 Plugin

同样的触发时机告诉你什么时候更新已有的配置。反复出现的错误或代码审查意见是 CLAUDE.md 的编辑信号;反复手动调整的工作流是 Skill 需要修订的信号。

功能对比

Skills vs 子代理

Skills 和子代理解决不同问题:

维度Skill子代理
本质可复用的指令、知识或工作流有独立上下文的隔离工作者
核心价值跨上下文共享内容上下文隔离。工作在子代理中完成,只有摘要返回
最适合参考资料、可调用工作流读大量文件的任务、并行工作、专业工作者

Skills 也可以通过 context: fork 在子代理上下文中运行。子代理可以预加载 Skills(skills: 字段)。

CLAUDE.md vs Skill

维度CLAUDE.mdSkill
加载时机每次会话,自动按需(Claude 自动或你手动触发)
可触发工作流是,用 /name 触发
最适合"始终做 X"的规则参考资料、可调用工作流

放 CLAUDE.md:Claude 每次都要知道的内容——编码约定、构建命令、项目结构、"禁止做 X"的规则。

放 Skill:Claude 有时需要的参考资料(API 文档、风格指南),或用 /<name> 触发的工作流(部署、发布、审查)。

CLAUDE.md 保持在 200 行以内。超出部分移到 Skills 或拆分到 .claude/rules/ 文件。

子代理 vs Agent Teams

维度子代理Agent Teams
上下文独立上下文窗口,结果返回调用方独立上下文窗口,完全独立
通信只向主代理报告结果成员之间可以互相发消息
协调主代理管理所有工作共享任务列表,自我协调
Token 成本低:结果摘要返回高:每个成员是独立实例
最适合只关心结果的专注任务需要讨论和协作的复杂工作

MCP vs Skill

维度MCPSkill
本质连接外部服务的协议知识、工作流和参考资料
提供工具和数据访问知识、工作流、参考资料

MCP 让 Claude 能与外部系统交互(没有 MCP 就无法查询数据库或发 Slack)。Skill 教 Claude 如何高效使用这些工具。两者配合:MCP 提供连接,Skill 提供用法文档和查询模式。

功能的分层机制

同一功能可以在多个级别定义:用户级、项目级、插件级或托管策略级。

  • CLAUDE.md 是累加的:所有级别的内容同时进入上下文。冲突时,更具体的指令通常优先。
  • Skills 和子代理 按名称覆盖:同名时,高优先级位置的定义生效。
  • MCP 服务器 按名称覆盖:本地 > 项目 > 用户。
  • Hooks 合并:所有注册的 Hook 都会触发,不管来源。

理解上下文开销

每个功能都会消耗一些上下文。过多可能把上下文填满,也可能引入干扰,导致技能触发不正确或 Claude 忘记约定。

功能加载时机上下文开销
CLAUDE.md会话启动每次请求都有
Skills启动 + 使用时描述在每次请求中;内容只在使用时加载
MCP 服务器会话启动工具名在启动时加载;Schema 按需加载
子代理生成时隔离于主会话
Hooks触发时零,除非 Hook 返回额外上下文

降低 Skills 上下文开销:在 frontmatter 中设置 disable-model-invocation: true,该技能在你手动调用前不会进入上下文,开销为零。

组合使用

组合工作方式示例
Skill + MCPMCP 提供连接,Skill 教 Claude 如何使用MCP 连接数据库,Skill 文档化 schema 和查询模式
Skill + 子代理Skill 调度并行子代理/audit 技能启动安全、性能、风格三个子代理
CLAUDE.md + SkillsCLAUDE.md 保持常驻规则,Skills 按需加载参考资料CLAUDE.md 说"遵循 API 约定",Skill 包含完整的 API 风格指南
Hook + MCPHook 通过 MCP 触发外部操作编辑关键文件后,Hook 发送 Slack 通知

快速索引

我想…看这里
给 Claude 持久的项目知识CLAUDE.md
创建可调用的工作流命令Skills
专业化 AI 助手处理特定任务子代理
多个代理并行协作Agent Teams
连接外部数据库/API/工具MCP
文件编辑后自动运行格式化Hooks
把配置打包给其他仓库使用Plugins
了解各功能的上下文开销本文"理解上下文开销"部分

常见问题

Q: 应该先配置什么扩展功能?

先从 CLAUDE.md 开始——写下项目约定和构建命令。其他功能按需添加:当你发现自己反复输入同样的提示时加 Skill,需要连接外部工具时配 MCP,想要自动化某些操作时写 Hook。

Q: 扩展功能多了上下文会不会不够用?

CLAUDE.md 和 Skills 描述每次请求都会消耗一点上下文。Skill 内容按需加载,MCP 工具 Schema 按需延迟,子代理和 Hook 完全隔离。保持 CLAUDE.md 在 200 行以内,把详细内容移到 Skills,是最简单的上下文优化。

Q: Skills 和 Hooks 有什么区别?

Skills 是给 Claude 看的指令,Claude 阅读后决定如何行动。Hooks 是在特定事件触发的确定性脚本,不经过 LLM,每次都会执行,适合强制性的自动化(如格式化、校验)。