扩展 Claude Code
了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins。
概述
扩展插入代理循环的不同部分:
- CLAUDE.md 添加 Claude 每个会话都能看到的持久上下文
- Skills 添加可重用的知识和可调用的工作流
- MCP 将 Claude 连接到外部服务和工具
- Subagents 在隔离的上下文中运行自己的循环,返回摘要
- Agent teams 协调多个独立的 Claude Code 会话
- Hooks 完全在循环外作为确定性脚本运行
- Plugins 打包和分发这些功能
将功能与您的目标相匹配
| 功能 | 作用 | 何时使用 | 示例 |
|---|---|---|---|
| CLAUDE.md | 每次对话加载的持久上下文 | 项目约定、”始终执行 X” 规则 | “使用 pnpm,而不是 npm。在提交前运行测试。” |
| Skill | Claude 可以使用的说明、知识和工作流 | 可重用内容、参考文档、可重复的任务 | /review 运行代码审查清单;API 文档 skill |
| Subagent | 返回摘要结果的隔离执行上下文 | 上下文隔离、并行任务、专门的工作者 | 读取许多文件但仅返回关键发现的研究任务 |
| Agent teams | 协调多个独立的 Claude Code 会话 | 并行研究、新功能开发、使用竞争假设进行调试 | 生成审查者同时检查安全性、性能和测试 |
| MCP | 连接到外部服务 | 外部数据或操作 | 查询数据库、发布到 Slack、控制浏览器 |
| Hook | 在事件上运行的确定性脚本 | 可预测的自动化,不涉及 LLM | 每次文件编辑后运行 ESLint |
比较相似的功能
Skill vs Subagent
| 方面 | Skill | Subagent |
|---|---|---|
| 它是什么 | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |
| 主要优势 | 在上下文之间共享内容 | 上下文隔离,仅返回摘要 |
| 最适合 | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作 |
CLAUDE.md vs Skill
| 方面 | CLAUDE.md | Skill |
|---|---|---|
| 加载 | 每个会话,自动 | 按需 |
| 可以包含文件 | 是的,使用 @path 导入 |
是的,使用 @path 导入 |
| 可以触发工作流 | 否 | 是的,使用 /<name> |
| 最适合 | “始终执行 X” 规则 | 参考材料、可调用的工作流 |
经验法则:保持 CLAUDE.md 在 200 行以下。如果它在增长,将参考内容移到 skills。
CLAUDE.md vs Rules vs Skills
| 方面 | CLAUDE.md | .claude/rules/ |
Skill |
|---|---|---|---|
| 加载 | 每个会话 | 每个会话,或在打开匹配文件时 | 按需 |
| 范围 | 整个项目 | 可以限定到文件路径 | 特定于任务 |
| 最适合 | 核心约定和构建命令 | 特定于语言或目录的指南 | 参考材料、可重复的工作流 |
Subagent vs Agent team
| 方面 | Subagent | Agent team |
|---|---|---|
| 上下文 | 自己的上下文窗口;结果返回给调用者 | 自己的上下文窗口;完全独立 |
| 通信 | 仅向主代理报告结果 | 队友直接相互发送消息 |
| 协调 | 主代理管理所有工作 | 具有自我协调的共享任务列表 |
| 最适合 | 仅结果重要的专注任务 | 需要讨论和协作的复杂工作 |
| 令牌成本 | 较低 | 较高 |
MCP vs Skill
| 方面 | MCP | Skill |
|---|---|---|
| 它是什么 | 连接到外部服务的协议 | 知识、工作流和参考材料 |
| 提供 | 工具和数据访问 | 知识、工作流、参考材料 |
| 示例 | Slack 集成、数据库查询、浏览器控制 | 代码审查清单、部署工作流、API 风格指南 |
了解上下文成本
按功能的上下文成本
| 功能 | 何时加载 | 加载内容 | 上下文成本 |
|---|---|---|---|
| CLAUDE.md | 会话开始 | 完整内容 | 每个请求 |
| Skills | 会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述) |
| MCP 服务器 | 会话开始 | 所有工具定义和 JSON 架构 | 每个请求 |
| Subagents | 生成时 | 具有指定 skills 的新鲜上下文 | 与主会话隔离 |
| Hooks | 触发时 | 无(外部运行) | 零 |
了解功能如何加载
CLAUDE.md
何时:会话开始
加载内容:所有 CLAUDE.md 文件的完整内容
Skills
何时:取决于 skill 的配置
- 默认情况下,描述在会话开始时加载
- 完整内容在使用时加载
- 带有
disable-model-invocation: true的 Skills 在调用前不加载任何内容
MCP 服务器
何时:会话开始
加载内容:来自连接服务器的所有工具定义和 JSON 架构
提示:运行 /mcp 查看每个服务器的令牌成本。
Subagents
何时:按需,当您或 Claude 为任务生成一个时
加载内容:新鲜、隔离的上下文
Hooks
何时:触发时
加载内容:默认情况下无
组合功能
| 模式 | 工作原理 | 示例 |
|---|---|---|
| Skill + MCP | MCP 提供连接;skill 教 Claude 如何很好地使用它 | MCP 连接到数据库,skill 记录架构和查询模式 |
| Skill + Subagent | Skill 生成 subagents 进行并行工作 | /review skill 启动安全性、性能和风格 subagents |
| CLAUDE.md + Skills | CLAUDE.md 保存始终开启的规则;skills 保存按需加载的参考材料 | CLAUDE.md 说”遵循 API 约定”,skill 包含完整的 API 风格指南 |
| Hook + MCP | Hook 通过 MCP 触发外部操作 | 编辑后 hook 发送 Slack 通知 |
功能分层
- CLAUDE.md 文件 是累加的:所有级别同时向 Claude 的上下文贡献内容
- Skills 和 subagents 按名称覆盖
- MCP 服务器 按名称覆盖:本地 > 项目 > 用户
- Hooks 合并:所有注册的 hooks 为其匹配的事件触发
了解更多
- CLAUDE.md - 存储项目上下文、约定和说明
- Skills - 给 Claude 领域专业知识和可重用的工作流
- Subagents - 将工作卸载到隔离的上下文
- Agent teams - 协调多个并行工作的会话
- MCP - 将 Claude 连接到外部服务
- Hooks - 使用 hooks 自动化工作流
- Plugins - 捆绑和共享功能集
- Marketplaces - 托管和分发 plugin 集合
本文档来自 Claude Code 官方文档