扩展 Claude Code
原文:Extend Claude Code
一句话
了解何时使用 CLAUDE.md、Skills、subagents、hooks、MCP 和 plugins 来扩展 Claude Code 功能。
什么时候翻这页
- 需要为项目添加持久化上下文和规则
- 想创建可重用的知识库和工作流程
- 需要连接外部服务或自动化特定操作
- 遇到上下文窗口限制,需要隔离执行环境
核心概念
- 扩展层:Claude Code 内置工具之外的定制功能,用于扩展 Claude 的知识、连接外部服务和自动化工作流
- CLAUDE.md:持久化上下文文件,每次对话都会加载,包含项目约定和规则
- Skills:可重用的知识、指令和工作流程,可通过
/命令 调用或自动加载
- Subagents:在隔离上下文中运行的独立代理,返回摘要结果
- Hooks:在生命周期事件触发时运行的脚本、HTTP 请求、提示或子代理
- MCP (Model Context Protocol):连接 Claude 与外部服务和工具的协议
- Plugins:将技能、钩子、子代理和 MCP 服务器打包成可安装单元
- Agent teams:协调多个独立会话,共享任务和对等消息传递
怎么做
理要点
- 渐进式构建:不需要一开始就配置所有功能,根据实际需求逐步添加
- 功能分层:不同功能在不同层级定义(用户级、项目级、插件级)
- 上下文成本管理:了解各功能对上下文窗口的影响,避免过度消耗
- 功能组合:不同功能可以组合使用,发挥各自优势
功能添加顺序
| 触发场景 | 添加功能 |
|---|
| Claude 两次误解约定或命令 | 添加到 CLAUDE.md |
| 反复输入相同提示启动任务 | 保存为可调用的 skill |
| 第三次粘贴相同程序到聊天 | 捕获为 skill |
| 需要从浏览器标签复制数据 | 连接为 MCP 服务器 |
| Claude 读取多个文件查找符号定义 | 安装代码智能插件 |
| 辅助任务产生大量不相关输出 | 通过子代理路由 |
| 每次都需要执行某操作而不必询问 | 编写 hook |
| 第二个仓库需要相同设置 | 打包为 plugin |
命令 / 配置速查
| 功能 | 命令/配置 | 说明 |
|---|
| Skills | /skill-name | 调用特定技能 |
| MCP | /mcp | 查看连接状态和令牌成本 |
| Subagents | 在技能中使用 context: fork | 在隔离上下文中运行技能 |
| Skills | disable-model-invocation: true | 仅手动调用技能,减少上下文成本 |
| Hooks | 在生命周期事件中触发 | 如 PostToolUse、SessionStart |
初学者易错点
- 过度依赖 CLAUDE.md:将所有内容都放在 CLAUDE.md 中,建议保持在 200 行以内,将参考材料移至 skills
- 混淆 Skill 和 Subagent:Skill 是可重用内容,Subagent 是隔离的工作器,根据需求选择
- 忽略上下文成本:大量加载技能会增加上下文消耗,使用
disable-model-invocation 减少不必要加载
- Hook 与 Skill 混用:Hook 用于必须每次以相同方式执行的操作,Skill 需要推理或内容知识
- 功能层级冲突:相同功能在不同层级定义时,了解优先级规则(管理 > 用户 > 项目)
相关词条
memory CLAUDE.md 项目上下文管理
skills 可重用知识和工作流
sub-agents 隔离执行环境
hooks-guide 生命周期事件自动化
mcp 外部服务连接
plugins 功能打包与分发