本页目录10
- CLAUDE.md 适合「始终需要」的项目约定,建议控制在 200 行以内,溢出内容移至 Skills 或 `.claude/rules/`
- Skills 分参考型与动作型:前者提供知识,后者通过 `/<name>` 触发可重复的工作流
- Subagents 在独立上下文中执行并只返回摘要,适合读取大量文件或需要并行的任务,不消耗主会话上下文
- Hooks 在生命周期事件上强制执行——比 CLAUDE.md 里的文字规则更可靠,上下文开销为零
- MCP 负责接入外部服务,Skills 负责教会 Claude 如何高效使用这些服务,二者互补而非替代
- 按「触发信号」渐进式添加扩展:先 CLAUDE.md,再 Skills,再 MCP,再 Hooks,最后打包 Plugin
本文是对官方文档「Extend Claude Code」的中文要点摘要,完整内容以原文为准: https://code.claude.com/docs/en/features-overview
Claude Code 内置了文件操作、搜索、执行、网页访问等核心工具,足以覆盖大多数编程任务。本文介绍的扩展层则让你进一步定制 Claude 掌握的知识、连接外部服务并自动化工作流。
八种扩展机制一览
| 扩展 | 作用 |
|---|---|
| CLAUDE.md | 每次会话自动加载的持久上下文 |
| Skills | 可复用的知识库与可调用的工作流 |
| Code intelligence | 连接 Language Server,提供符号跳转与实时类型错误 |
| MCP | 接入外部服务与工具 |
| Subagents | 在隔离上下文中独立运行并返回摘要 |
| Agent teams | 协调多个独立 Claude Code 会话(实验性) |
| Hooks | 在生命周期事件上触发脚本/HTTP 请求/prompt(LLM 提示)/子 Agent |
| Plugins | 将以上特性打包成可分发的安装单元 |
按「触发信号」选择扩展
官方推荐渐进式搭建,遇到具体需求再添加对应机制:
- Claude 把某个约定搞错两次 → 加入
CLAUDE.md - 你反复输入同一段提示词 → 保存为用户可调用的 Skill
- 同一套多步骤流程粘贴了三次 → 写成 Skill
- 你不断从浏览器标签页复制 Claude 看不到的数据 → 配置 MCP server
- Claude 反复读文件才能定位符号 → 安装对应语言的 Code intelligence 插件
- 某个子任务的输出塞满了对话 → 改用 Subagent
- 某件事必须每次都自动发生 → 写一个 Hook
- 另一个仓库需要同样的配置 → 打包成 Plugin
关键功能对比
CLAUDE.md vs Skill vs .claude/rules/
三者都存储指令,但加载时机不同:
| CLAUDE.md | .claude/rules/ | Skill | |
|---|---|---|---|
| 加载时机 | 每次会话 | 每次会话(可按路径过滤) | 按需 |
| 适合内容 | 核心约定、构建命令 | 语言/目录特定规则 | 参考资料、可触发工作流 |
建议把 CLAUDE.md 控制在 200 行以内;内容增多时,参考资料移至 Skills,路径规则移至 .claude/rules/。
Skill vs Subagent
- Skill 是可复用的内容,加载到当前对话上下文中,Claude 按需读取
- Subagent 是隔离的工作单元,只把摘要返回给主对话,不消耗主上下文
两者可以组合:Skill 可通过 context: fork 在隔离上下文中运行;Subagent 的 skills: 字段可预加载指定 Skills。
Hook vs Skill
| Hook | Skill | |
|---|---|---|
| 触发方式 | 生命周期事件(如 PostToolUse) | 你输入 /<name> 或 Claude 判断相关 |
| 执行确定性 | 必然触发 | Claude 解释执行,结果可能有偏差 |
| 上下文开销 | 零(除非返回输出) | 描述常驻,全文按需加载 |
| 适合场景 | lint、拦截危险命令、日志 | 多步骤工作流、参考资料 |
重要原则:如果一条规则必须每次都生效(例如禁止编辑
.env),用PreToolUseHook 来拦截,而不是写进 CLAUDE.md——文字规则是「请求」,Hook 才是「强制执行」。
MCP vs Skill
- MCP 给 Claude 提供访问外部系统的工具(Slack、数据库、浏览器)
- Skill 教 Claude 如何高效使用这些工具(schema、查询模式、格式规范)
两者互补:MCP server 提供连接,Skills 提供使用方法。
Subagent vs Agent teams
- Subagent:向主 Agent 单向报告,适合聚焦的单一任务
- Agent teams(实验性,默认关闭):多个独立会话互相通信、共享任务列表,适合需要「竞争假设」或分块协作的复杂场景,但 token 开销更高
上下文开销速查
| 特性 | 加载时机 | 开销 |
|---|---|---|
| CLAUDE.md | 会话开始,全量 | 每次请求都占用 |
| Skills | 描述常驻,全文按需 | 较低 |
| MCP servers | 工具名常驻,schema 延迟 | 较低 |
| Code intelligence | 文件编辑后/查询时 | 较低,还能减少文件读取 |
| Subagents | 独立隔离上下文 | 与主会话隔离 |
| Hooks | 外部执行 | 零 |
小技巧:在 Skill 的 frontmatter 中设置 disable-model-invocation: true,可让该 Skill 完全隐藏直到手动调用,上下文开销降为零——适合有副作用的工作流。
功能组合模式
| 组合 | 典型场景 |
|---|---|
| Skill + MCP | MCP 连接数据库,Skill 记录 schema 与常用查询模式 |
| Skill + Subagent | /audit Skill 启动安全/性能/风格三个并行 Subagent |
| CLAUDE.md + Skills | CLAUDE.md 写「遵循 API 规范」,Skill 存完整规范文档 |
| Hook + MCP | 编辑关键文件后,Hook 通过 MCP 发 Slack 通知 |
Plugins 是打包层:将 Skills、Hooks、Subagents 和 MCP servers 捆绑成单一可安装单元,通过命名空间(如 /my-plugin:review)避免冲突,可发布到 Plugin marketplace 供他人使用。