Claude Code 学习站

Claude Code 扩展机制全解:从 CLAUDE.md 到 Hooks 的使用指南

官方 Extend Claude Code 文档要点摘要:梳理 CLAUDE.md、Skills、MCP、Subagents、Hooks 等 8 种扩展机制的适用场景、上下文开销与组合策略,帮助开发者渐进式搭建高效工作流。

本页目录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

HookSkill
触发方式生命周期事件(如 PostToolUse)你输入 /<name> 或 Claude 判断相关
执行确定性必然触发Claude 解释执行,结果可能有偏差
上下文开销零(除非返回输出)描述常驻,全文按需加载
适合场景lint、拦截危险命令、日志多步骤工作流、参考资料

重要原则:如果一条规则必须每次都生效(例如禁止编辑 .env),用 PreToolUse Hook 来拦截,而不是写进 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 + MCPMCP 连接数据库,Skill 记录 schema 与常用查询模式
Skill + Subagent/audit Skill 启动安全/性能/风格三个并行 Subagent
CLAUDE.md + SkillsCLAUDE.md 写「遵循 API 规范」,Skill 存完整规范文档
Hook + MCP编辑关键文件后,Hook 通过 MCP 发 Slack 通知

Plugins 是打包层:将 Skills、Hooks、Subagents 和 MCP servers 捆绑成单一可安装单元,通过命名空间(如 /my-plugin:review)避免冲突,可发布到 Plugin marketplace 供他人使用。