2026-04-13
AI
00

目录

第一部分 概述
第二部分 扩展机制全景图
第三部分 核心扩展机制详解
3.1 CLAUDE.md —— 项目的"宪法"
3.2 Skills —— 可复用的知识库与工作流
3.3 Subagents —— 上下文隔离的专项工作者
3.4 Agent Teams —— 多智能体协作网络
3.5 MCP(Model Context Protocol)—— 外部世界的连接器
3.6 Hooks —— 事件驱动的自动化
3.7 Plugins & Marketplaces —— 扩展的分发与复用
第四部分 功能组合模式
模式 1:Skill + MCP
模式 2:Skill + Subagent
模式 3:CLAUDE.md + Skills
模式 4:Hook + MCP
第五部分 上下文成本管理
第六部分 如何选择?决策树
第七部分 结语:构建您的 Claude Code 扩展体系

第一部分 概述

Claude Code 本身就是一个强大的编程助手——它结合了能够推理代码的 AI 模型和内置的文件操作、搜索、执行、网络访问等工具。但真正的威力在于扩展层:通过自定义功能,您可以将 Claude 连接到外部服务、注入领域知识、自动化工作流,甚至构建多智能体协作系统。

本文将系统梳理 Claude Code 的七大扩展机制,帮助您根据具体场景选择最合适的方案。

第二部分 扩展机制全景图

Claude Code 的扩展体系可以按加载时机作用范围两个维度进行分类:

维度类型代表功能
持久上下文每个会话自动加载CLAUDE.md、Rules
按需调用手动触发或智能匹配Skills、MCP、Subagents
后台自动化事件驱动Hooks
打包分发跨项目复用Plugins、Marketplaces

理解这些扩展在**代理循环(Agent Loop)**中的插入点,是合理设计 Claude Code 工作流的关键。

第三部分 核心扩展机制详解

3.1 CLAUDE.md —— 项目的"宪法"

定位:每个会话自动加载的持久上下文,存放项目的核心约定。

典型内容

  • 构建命令("使用 pnpm,而非 npm")
  • 架构决策("所有 API 路由必须使用 /api/v2 前缀")
  • 禁止事项("永远不要直接修改生产数据库")

最佳实践

保持 CLAUDE.md 在 200 行以内。如果内容膨胀,将参考性文档迁移至 Skills,或将特定目录的规则拆分到 .claude/rules/ 目录。

加载机制:Claude 从工作目录向上遍历至根目录,收集所有层级的 CLAUDE.md 文件。子目录中的文件在访问该目录时动态加载。

3.2 Skills —— 可复用的知识库与工作流

定位:Claude 工具包中的"技能卡片",可以是参考资料,也可以是通过 /<name> 触发的可执行工作流。

两种形态

类型示例触发方式
参考型 SkillAPI 风格指南、数据库 Schema 文档Claude 自动匹配加载
操作型 Skill/deploy 部署清单、/audit 代码审查手动执行 /<name>

关键配置项

  • disable-model-invocation: true —— 完全隐藏 Skill,仅支持手动调用,上下文成本降为零
  • context: fork —— 在隔离上下文中执行,避免污染主会话

与 CLAUDE.md 的区别

维度CLAUDE.mdSkill
加载时机每个会话自动按需加载
内容性质"始终执行 X""有时需要参考 X"
可触发工作流✅ 通过 /<name>

3.3 Subagents —— 上下文隔离的专项工作者

定位:在主会话内运行的隔离执行单元,适合处理"读多写少"的密集型任务。

核心价值

  • 上下文隔离:Subagent 可以读取数十个文件进行深度分析,但主会话只接收摘要结果
  • 并行能力:可同时启动多个 Subagent 处理独立任务
  • 上下文保护:避免大段中间过程填满主会话的上下文窗口

典型场景

  • 代码审查:一个 Subagent 检查安全性,另一个检查性能
  • 代码库研究:遍历整个项目结构,返回关键发现摘要
  • 验证假设:独立验证某个技术方案的可行性

配置示例

yaml
# 在 Skill 中配置 Subagent subagents: security-audit: skills: [security-guidelines, owasp-checklist] context: fork # 完全隔离

3.4 Agent Teams —— 多智能体协作网络

定位:完全独立的 Claude Code 会话,支持点对点通信和自主协调。

与 Subagents 的本质区别

特性SubagentAgent Team
上下文关系依附于主会话完全独立
通信方式单向汇报结果队友间直接消息传递
协调能力主代理集中管理自我协调的共享任务列表
成本较低(结果摘要)较高(每个队友是独立实例)

适用场景

  • 需要多轮讨论和观点碰撞的复杂研究
  • 并行代码审查(安全、性能、风格同时独立审查后交叉验证)
  • 新功能开发(不同 Agent 负责不同模块,通过消息同步进展)

过渡信号:当您发现并行 Subagents 遇到上下文限制,或 Subagents 需要相互通信时,就是升级到 Agent Teams 的时机。

3.5 MCP(Model Context Protocol)—— 外部世界的连接器

定位:标准化协议,将 Claude 连接到数据库、Slack、浏览器等外部服务。

与 Skill 的协同

  • MCP 提供"能力":让 Claude 能够查询数据库、发送消息、控制浏览器
  • Skill 提供"知识":教导 Claude 如何高效使用这些能力(Schema 文档、查询模式、消息格式规范)

典型组合

MCP Server: PostgreSQL 连接 ↓ Skill: 内部数据模型文档 + 常用查询模板 ↓ 用户: "分析上个月的销售趋势" → Claude 知道该查哪张表、用什么 JOIN

范围优先级:本地 > 项目 > 用户

3.6 Hooks —— 事件驱动的自动化

定位:在代理循环外运行的确定性脚本,响应特定生命周期事件。

触发时机

  • 工具执行前后
  • 会话开始/结束
  • 权限请求
  • 上下文压缩

零上下文成本:Hooks 作为外部脚本运行,默认不占用 Claude 的上下文窗口(除非返回内容添加到对话)。

典型用例

  • 每次文件编辑后自动运行 ESLint
  • 关键文件变更时通过 MCP 发送 Slack 通知
  • 会话开始时自动拉取最新代码

3.7 Plugins & Marketplaces —— 扩展的分发与复用

定位:打包层,将 Skills、Hooks、Subagents、MCP Servers 捆绑为可安装单元。

命名空间机制:Plugin Skills 采用 /<plugin-name>:<skill-name> 格式(如 /my-plugin:review),避免多 Plugin 冲突。

适用时机

  • 跨多个仓库复用相同配置
  • 通过 Marketplace 分发给团队或社区
  • 需要版本管理和依赖声明的复杂扩展

第四部分 功能组合模式

实际项目中,这些扩展通常组合使用:

模式 1:Skill + MCP

结构:MCP 提供数据库连接,Skill 提供 Schema 知识和查询模板
示例/query-db Skill 封装了常用业务查询,Claude 知道何时使用哪个索引

模式 2:Skill + Subagent

结构:Skill 定义工作流,生成多个 Subagent 并行执行
示例/audit Skill 启动安全、性能、风格三个 Subagent 分别审查

模式 3:CLAUDE.md + Skills

结构:CLAUDE.md 存放"始终遵循"的约定,Skills 存放"按需参考"的详细文档
示例:CLAUDE.md 规定"遵循 API 约定",Skill 存放完整的 RESTful 设计规范

模式 4:Hook + MCP

结构:Hook 监听事件,通过 MCP 触发外部动作
示例:文件保存 Hook → MCP Slack 通知 → 团队频道收到变更提醒

第五部分 上下文成本管理

扩展越多,上下文压力越大。以下是各机制的"开销账单":

功能加载时机上下文成本优化策略
CLAUDE.md会话开始每个请求保持精简,拆分到 Rules
Skills启动描述 + 使用时内容低(描述常驻)disable-model-invocation: true 降为零
MCP会话开始每个请求(工具定义)工具搜索延迟加载 90% 定义
Subagents生成时与主会话隔离天然隔离,不占用主上下文
Hooks触发时零(除非返回内容)控制返回内容长度

关键建议

  1. 将"始终需要"的内容放 CLAUDE.md,"偶尔需要"的放 Skills
  2. 对大型参考文档设置 disable-model-invocation: true,改为手动调用
  3. 大段分析任务优先使用 Subagent,保护主会话上下文

第六部分 如何选择?决策树

需要持久化到每个会话? ├── 是 → 使用 CLAUDE.md 或 .claude/rules/ │ └── 是否针对特定目录? │ ├── 是 → .claude/rules/ + paths 配置 │ └── 否 → CLAUDE.md └── 否 → 需要连接外部服务? ├── 是 → MCP └── 否 → 需要并行/隔离执行? ├── 是 → 需要队友间通信? │ ├── 是 → Agent Teams │ └── 否 → Subagents └── 否 → Skills(参考型或操作型) 需要事件自动化?→ Hooks 需要跨项目复用?→ Plugins

第七部分 结语:构建您的 Claude Code 扩展体系

Claude Code 的扩展设计遵循单一职责原则:每个机制解决特定问题,通过组合实现复杂工作流。

起步建议

  1. CLAUDE.md 开始,记录项目核心约定
  2. 随着需求增长,将参考资料迁移至 Skills
  3. 遇到上下文瓶颈时,引入 Subagents 进行任务隔离
  4. 需要外部集成时,添加 MCP 并配套 Skill 提供使用指南
  5. 团队规模化后,通过 Plugins 实现配置标准化

扩展的本质是将隐性知识显性化——把"我们团队这样做事"变成 Claude 可以理解和执行的结构化指令。当这些扩展与 Claude 的推理能力结合,您就拥有了一个深度定制、持续进化的智能编程伙伴。


本文基于 Claude Code 官方文档整理,功能细节可能随版本更新而变化,建议参考 官方文档 获取最新信息。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:蒋固金

本文链接:

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