是什么
Claude Code 的扩展体系由六类机制组成,各自解决不同问题:CLAUDE.md 提供持久上下文,Skills 封装可复用工作流,MCP 连接外部服务,Subagents 隔离执行,Hooks 自动化生命周期事件,Plugins 打包分发。选择哪种扩展取决于触发场景,而非功能偏好。
核心机制
六类扩展对比:
| 扩展 | 作用 | 触发时机 | 上下文开销 |
|---|---|---|---|
| CLAUDE.md | 每次会话自动加载的持久指令 | 会话启动 | 每次请求都加载 |
| Skills | 可复用的知识和工作流 | 按需(/name 或 Claude 自动匹配) | 描述常驻,内容按需 |
| MCP | 连接外部服务和数据源 | 会话启动(工具名),使用时加载 schema | 低(延迟加载) |
| Subagents | 隔离上下文的独立工作者 | 按需派生 | 完全隔离 |
| Hooks | 生命周期事件触发的脚本 | 自动(事件驱动) | 零(除非返回输出) |
| Plugins | 打包上述功能的分发单元 | 安装后生效 | 取决于内容 |
渐进式构建原则:不需要一次配置所有扩展,按需添加:
- Claude 同一错误犯了两次 → 加入 CLAUDE.md
- 重复输入同一提示词 → 保存为 Skill
- 反复从浏览器复制 Claude 看不到的数据 → 接入 MCP
- 侧任务产生大量不需要保留的输出 → 用 Subagent
- 某个动作必须每次都执行 → 写 Hook
- 多个仓库需要同一套配置 → 打包成 Plugin
Skill vs Subagent 区别:
- Skill 是可加载到任意上下文的可复用内容
- Subagent 是在独立上下文中运行的隔离工作者,只返回摘要
Hook vs Skill 区别:
- Hook 保证每次触发,适合必须执行的动作(格式化、阻止危险命令)
- Skill 由 Claude 解读执行,适合需要推理的工作流
关键细节
- CLAUDE.md 建议控制在 200 行以内,超出后移到 Skills 或 rules/
- Skills 的
disable-model-invocation: true可让 Claude 看不到该 Skill,直到用户手动调用 - MCP 工具 schema 默认延迟加载,只有工具名常驻上下文
- Subagents 有独立上下文窗口,不继承主会话的对话历史
- Hooks 的 stdout 默认不进入上下文,需要通过
additionalContextJSON 字段传递给 Claude
关联
- memory — CLAUDE.md 和 Auto Memory 详细配置
- how-claude-code-works — 扩展如何插入 agentic loop
- context-window — 各扩展的上下文开销可视化
- claude-directory — .claude 目录结构和文件位置
实践要点
- 先用 CLAUDE.md,其他扩展按需添加,不要过度配置
- CLAUDE.md 里的规则是建议,Hooks 里的规则是强制——安全关键规则用 Hook
- Skills 的描述决定 Claude 何时自动调用,描述要清晰具体
- 多个扩展可以组合:MCP 提供连接,Skill 教 Claude 如何使用
- 用
/context监控上下文占用,避免扩展配置过多导致性能下降