Skip to content
FunCoding

Search

Search docs, agents, posts, Skills and MCP servers

扩展 Claude Code

CLAUDE.md、Skill、子智能体、Hooks、MCP、插件各自解决什么问题,什么时候该用哪一个。

内置工具覆盖了大多数编码任务。本页讲的是扩展层:用来定制 Claude 知道什么、连接外部服务、自动化工作流的功能。

刚开始用的话,先从 CLAUDE.md 写项目约定,其他扩展在遇到具体触发场景时再加。

扩展在智能体循环的哪个位置

  • CLAUDE.md:每次会话都加载的持久上下文
  • 输出风格(Output styles):设定 Claude 在整个会话里的角色、语气和回复格式
  • Skill:可复用的知识和可调用的工作流
  • 代码智能:接入语言服务器,实现符号级导航和实时类型错误
  • MCP:连接外部服务和工具
  • 子智能体:在隔离的上下文里运行自己的循环,只返回摘要
  • 动态工作流:由 Claude 写的脚本在后台运行大量子智能体,返回一个结果
  • 跨会话消息:让 Claude 把一个会话的消息传给另一个会话
  • Hooks:Claude Code 到达某个生命周期事件时,运行你的脚本、HTTP 请求、MCP 工具调用、提示词或子智能体
  • 插件与市场:把以上功能打包、分发

Skill 是最灵活的扩展:一个包含知识、工作流或指令的 markdown 文件。你可以用 /deploy 这样的命令调用,Claude 也可以在相关时自动加载。

按目标选功能

功能作用何时使用例子
CLAUDE.md每次对话都加载的持久上下文项目约定、「总是做 X」的规则「用 pnpm,不用 npm。提交前跑测试」
输出风格设定整个会话的角色、语气、格式每次回复都想要的某种声音、长度或格式内置的 Concise 风格让回复更短
SkillClaude 可使用的指令、知识和工作流可复用内容、参考文档、重复任务/deploy 执行部署检查清单
子智能体隔离的执行上下文,返回摘要结果上下文隔离、并行任务、专门化的工作者读很多文件、只返回关键发现的调研任务
动态工作流Claude 写的脚本,在后台跑许多子智能体任务超出少数几个子智能体,或想让结论被交叉验证审计整个代码库,由另一批智能体验证每条发现
跨会话消息Claude 把一个会话的消息送到另一个会话你自己开的多个会话需要在任务中互通发现一个会话提醒另一个:我的改动会让你依赖的东西出问题
MCP连接外部服务需要外部数据或操作查数据库、发 Slack、控制浏览器
Hook由事件触发的脚本、HTTP 请求、MCP 调用、提示词或子智能体必须在每次匹配事件时执行的自动化每次改文件后运行 ESLint
Artifact把会话产出发布成私有的交互网页想可视化查看或分享的产出随调查推进而更新的故障时间线

插件是打包层:把 Skill、Hooks、子智能体和 MCP 服务器打包成一个可安装单元。插件里的 Skill 带命名空间(如 /my-plugin:review),多个插件可以共存。想在多个仓库复用同一套配置、或分发给别人时用插件。

逐步搭建你的配置

不需要一开始就全配齐。每个功能都有可识别的触发信号,大多数团队大致按这个顺序添加:

触发信号添加
Claude 把某个约定或命令搞错了两次写进 CLAUDE.md
你总要求 Claude 更简短、多解释、或用固定格式回答设置输出风格
你总是输入同一段提示词来开始任务存成用户可调用的 Skill
第三次把同一份操作手册粘进对话整理成 Skill
你总要从 Claude 看不到的浏览器标签里复制数据把那个系统接成 MCP 服务器
Claude 为了找符号定义要读很多文件安装对应语言的代码智能插件
某个旁支任务的输出淹没了对话,而你之后用不上交给子智能体
你想让某件事每次都发生,不必再问写 Hook
第二个仓库需要同样的配置打包成插件

同样的触发信号也告诉你何时更新已有内容:反复出现的错误或评审意见,应该改 CLAUDE.md,而不是在对话里一次次纠正;你总是手工微调的工作流,就是一个需要再改一版的 Skill。

相似功能怎么区分

Skill 和子智能体:Skill 是可以加载到任何上下文里的可复用内容;子智能体是和主对话隔离的独立工作者。Skill 会占用主上下文窗口,子智能体使用自己的窗口,工作过程不占主上下文,只返回摘要。需要上下文隔离、或上下文窗口快满时用子智能体;两者可以组合:子智能体可以预加载 Skill(skills: 字段),Skill 也可以用 context: fork 在隔离上下文里运行。

CLAUDE.md 和 Skill:CLAUDE.md 每次会话自动加载,适合「总是做 X」的规则;Skill 按需加载,适合偶尔需要的参考资料或用 /<name> 触发的工作流。经验法则:CLAUDE.md 保持在 200 行以内,变长了就把参考内容移到 Skill,或拆到 .claude/rules/ 文件里(带 paths 前置信息的规则只在处理匹配文件时才加载,更省上下文)。

CLAUDE.md 和输出风格:CLAUDE.md 承载关于项目的事实和规则;输出风格设定回复的角色、语气和格式。两者可以叠加,但都只是指令,并不保证强制执行。

子智能体和动态工作流:子智能体是 Claude 一回合一回合决定下一步的工作者;工作流则由脚本决定做什么。需要一个快速聚焦的工作者(调研问题、验证说法、审查一个文件)时用子智能体;任务超出少数几个子智能体、或想在你看到之前先交叉验证结论时(全库审计、大规模迁移)用动态工作流。

MCP 和 Skill:MCP 让 Claude 连上外部服务,提供工具和数据访问;Skill 提供如何有效使用这些工具的知识和工作流。两者配合得很好——比如一个 Skill 里放你们团队的数据库结构和查询模式。

Hook 和 Skill:Hook 在生命周期事件触发时运行,确定性地每次都触发;Skill 是 Claude 阅读并自行理解、结果可能有变化的指令。动作必须每次以同样方式发生、不需要 Claude 思考时用 Hook(保存时格式化、拒绝 rm -rf /、会话结束发 Slack 消息);需要 Claude 判断如何应用步骤,或内容是知识而非脚本时用 Skill。

护栏要放在 Hook 里。 在 CLAUDE.md 或 Skill 里写「不要编辑 .env」只是请求,不是保证;用 PreToolUse Hook 拦截这次编辑才是强制执行。