Claude Code 本身就是一个强大的编程助手——它结合了能够推理代码的 AI 模型和内置的文件操作、搜索、执行、网络访问等工具。但真正的威力在于扩展层:通过自定义功能,您可以将 Claude 连接到外部服务、注入领域知识、自动化工作流,甚至构建多智能体协作系统。
本文将系统梳理 Claude Code 的七大扩展机制,帮助您根据具体场景选择最合适的方案。
Claude Code 的扩展体系可以按加载时机和作用范围两个维度进行分类:
| 维度 | 类型 | 代表功能 |
|---|---|---|
| 持久上下文 | 每个会话自动加载 | CLAUDE.md、Rules |
| 按需调用 | 手动触发或智能匹配 | Skills、MCP、Subagents |
| 后台自动化 | 事件驱动 | Hooks |
| 打包分发 | 跨项目复用 | Plugins、Marketplaces |
理解这些扩展在**代理循环(Agent Loop)**中的插入点,是合理设计 Claude Code 工作流的关键。
定位:每个会话自动加载的持久上下文,存放项目的核心约定。
典型内容:
/api/v2 前缀")最佳实践:
保持 CLAUDE.md 在 200 行以内。如果内容膨胀,将参考性文档迁移至 Skills,或将特定目录的规则拆分到
.claude/rules/目录。
加载机制:Claude 从工作目录向上遍历至根目录,收集所有层级的 CLAUDE.md 文件。子目录中的文件在访问该目录时动态加载。
定位:Claude 工具包中的"技能卡片",可以是参考资料,也可以是通过 /<name> 触发的可执行工作流。
两种形态:
| 类型 | 示例 | 触发方式 |
|---|---|---|
| 参考型 Skill | API 风格指南、数据库 Schema 文档 | Claude 自动匹配加载 |
| 操作型 Skill | /deploy 部署清单、/audit 代码审查 | 手动执行 /<name> |
关键配置项:
disable-model-invocation: true —— 完全隐藏 Skill,仅支持手动调用,上下文成本降为零context: fork —— 在隔离上下文中执行,避免污染主会话与 CLAUDE.md 的区别:
| 维度 | CLAUDE.md | Skill |
|---|---|---|
| 加载时机 | 每个会话自动 | 按需加载 |
| 内容性质 | "始终执行 X" | "有时需要参考 X" |
| 可触发工作流 | ❌ | ✅ 通过 /<name> |
定位:在主会话内运行的隔离执行单元,适合处理"读多写少"的密集型任务。
核心价值:
典型场景:
配置示例:
yaml# 在 Skill 中配置 Subagent
subagents:
security-audit:
skills: [security-guidelines, owasp-checklist]
context: fork # 完全隔离
定位:完全独立的 Claude Code 会话,支持点对点通信和自主协调。
与 Subagents 的本质区别:
| 特性 | Subagent | Agent Team |
|---|---|---|
| 上下文关系 | 依附于主会话 | 完全独立 |
| 通信方式 | 单向汇报结果 | 队友间直接消息传递 |
| 协调能力 | 主代理集中管理 | 自我协调的共享任务列表 |
| 成本 | 较低(结果摘要) | 较高(每个队友是独立实例) |
适用场景:
过渡信号:当您发现并行 Subagents 遇到上下文限制,或 Subagents 需要相互通信时,就是升级到 Agent Teams 的时机。
定位:标准化协议,将 Claude 连接到数据库、Slack、浏览器等外部服务。
与 Skill 的协同:
典型组合:
MCP Server: PostgreSQL 连接 ↓ Skill: 内部数据模型文档 + 常用查询模板 ↓ 用户: "分析上个月的销售趋势" → Claude 知道该查哪张表、用什么 JOIN
范围优先级:本地 > 项目 > 用户
定位:在代理循环外运行的确定性脚本,响应特定生命周期事件。
触发时机:
零上下文成本:Hooks 作为外部脚本运行,默认不占用 Claude 的上下文窗口(除非返回内容添加到对话)。
典型用例:
定位:打包层,将 Skills、Hooks、Subagents、MCP Servers 捆绑为可安装单元。
命名空间机制:Plugin Skills 采用 /<plugin-name>:<skill-name> 格式(如 /my-plugin:review),避免多 Plugin 冲突。
适用时机:
实际项目中,这些扩展通常组合使用:
结构:MCP 提供数据库连接,Skill 提供 Schema 知识和查询模板
示例:/query-db Skill 封装了常用业务查询,Claude 知道何时使用哪个索引
结构:Skill 定义工作流,生成多个 Subagent 并行执行
示例:/audit Skill 启动安全、性能、风格三个 Subagent 分别审查
结构:CLAUDE.md 存放"始终遵循"的约定,Skills 存放"按需参考"的详细文档
示例:CLAUDE.md 规定"遵循 API 约定",Skill 存放完整的 RESTful 设计规范
结构:Hook 监听事件,通过 MCP 触发外部动作
示例:文件保存 Hook → MCP Slack 通知 → 团队频道收到变更提醒
扩展越多,上下文压力越大。以下是各机制的"开销账单":
| 功能 | 加载时机 | 上下文成本 | 优化策略 |
|---|---|---|---|
| CLAUDE.md | 会话开始 | 每个请求 | 保持精简,拆分到 Rules |
| Skills | 启动描述 + 使用时内容 | 低(描述常驻) | disable-model-invocation: true 降为零 |
| MCP | 会话开始 | 每个请求(工具定义) | 工具搜索延迟加载 90% 定义 |
| Subagents | 生成时 | 与主会话隔离 | 天然隔离,不占用主上下文 |
| Hooks | 触发时 | 零(除非返回内容) | 控制返回内容长度 |
关键建议:
disable-model-invocation: true,改为手动调用需要持久化到每个会话? ├── 是 → 使用 CLAUDE.md 或 .claude/rules/ │ └── 是否针对特定目录? │ ├── 是 → .claude/rules/ + paths 配置 │ └── 否 → CLAUDE.md └── 否 → 需要连接外部服务? ├── 是 → MCP └── 否 → 需要并行/隔离执行? ├── 是 → 需要队友间通信? │ ├── 是 → Agent Teams │ └── 否 → Subagents └── 否 → Skills(参考型或操作型) 需要事件自动化?→ Hooks 需要跨项目复用?→ Plugins
Claude Code 的扩展设计遵循单一职责原则:每个机制解决特定问题,通过组合实现复杂工作流。
起步建议:
扩展的本质是将隐性知识显性化——把"我们团队这样做事"变成 Claude 可以理解和执行的结构化指令。当这些扩展与 Claude 的推理能力结合,您就拥有了一个深度定制、持续进化的智能编程伙伴。
本文基于 Claude Code 官方文档整理,功能细节可能随版本更新而变化,建议参考 官方文档 获取最新信息。


本文作者:蒋固金
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!