生态:Skill、Plugin、MCP
三种扩展机制,三个不同层次。Skill 是带元数据的 workflow,Plugin 改变模型行为,MCP 是工具桥 + 行为说明注入。
给一个 AI 工具添加扩展能力,最常见的方案是”插件市场”——第三方写插件,工具加载进来,模型多了几个函数可以调。Claude Code 不满足于这种方案。它的扩展体系分三层,每层解决的问题不一样。
Skill 系统:带元数据的 workflow
skills/ 目录下有 17 个 bundled skills:verify、commit、loop、simplify、stuck、debug 等。形态是带 frontmatter metadata 的 markdown 文件。
一个 skill 文件的 frontmatter 可以声明:
allowed-tools:这个 skill 执行期间能用哪些工具model:指定用哪个模型跑(比如某些 skill 明确要求 Opus)effort:提示模型这个任务需要高/低投入
文件正文是 workflow 说明——告诉模型面对这类任务应该怎么做,分几步,注意什么。
系统对 skill 有强制要求:任务匹配到 skill 时,模型必须调用 Skill tool 执行,不能绕过。这不是建议,是硬约束。这个设计意图很明确:skill 的价值在于标准化,如果模型可以自由选择”用不用这个 skill”,标准化就失效了。
Skill 解决的核心问题是行为一致性。同一类任务,不同时间、不同上下文,产出的质量应该差不多。把 workflow 写进 skill,等于把好的实践固化成制度。
Plugin 系统:能改变模型行为的扩展
utils/plugins/ 有 42 个文件,覆盖从加载到验证到市场管理的完整链条。
Plugin 能提供的东西比 skill 多得多,而且分布在不同层次。
内容上,plugin 带 markdown commands 和 SKILL.md 目录,相当于插件自带一套 skill 集合随之安装。行为上,plugin 可以注册 Pre/PostToolUse hooks,在工具执行前后插入自己的逻辑;output styles 和 effort hints 则分别影响输出格式和模型选择。
工具扩展是另一个维度:plugin 可以携带 MCP server 配置一起装进来,模型因此多了新工具可以调用。最后是运维层——运行时变量替换、自动更新、版本管理、blocklist(黑名单机制,防止某些插件被错误触发)。
Plugin 和普通 CLI 插件的本质区别是:普通插件扩展的是工具的功能,Plugin 扩展的是模型的能力边界和行为规则。装一个 plugin,等于同时改了 prompt、加了工具、修了权限规则。这是三个维度的叠加,不是一个。
MCP 集成:工具桥 + 行为说明注入
MCP(Model Context Protocol)是当前 AI 生态里新兴的工具接入标准。Claude Code 的 MCP 集成不只是”多了几个工具可以调”。
从 prompts.ts 可以看到关键细节:当 MCP server 连接上来时,如果 server 提供了 instructions 字段,这些 instructions 会被拼进 system prompt。
一个 MCP server 同时给模型两样东西:
- 新工具(通过 MCP 协议注册,模型可以调用)
- 怎么用这些工具的说明(通过 instructions 注入 prompt,模型知道在什么场景下该用哪个工具、注意什么)
这个设计解决了一个实际问题:给模型接了一套数据库操作工具,但模型不知道这套工具的使用规范(比如”查询前必须先确认 schema”、“写操作前必须输出执行计划”),光有工具没有规范,等于把刀交给了一个不知道怎么用刀的人。MCP instructions 让工具和规范捆绑在一起发布,server 开发者可以把最佳实践直接写进 instructions。
生态的真正价值:让模型感知到自己的能力
三种扩展机制共同解决的问题,是模型感知。
很多平台给系统接了十个插件,但模型不知道什么时候该用哪个——插件在那里,但模型的行为没有变化。工具箱满了,但模型不知道箱子里有什么。
Claude Code 通过几个机制确保模型能感知到当前的扩展能力。
当前可用的 skill 列表会注入进 system prompt 的相关区域,模型知道遇到某类任务有对应的 skill 可用。MCP server 连上来时,instructions 随之进入 prompt,模型同时拿到工具和使用规范,两件事一步完成。
Plugin 或配置还可以提供 session-specific guidance——针对当前 session 的专项指导,模型在这个 session 里的行为会相应调整。子 agent 列表(Explore、Plan、Verification 等)也会在适当时机注入,让模型知道可以把哪些任务委托出去。
注入不是一次性的、全量的。skill 按需注入——匹配到了才注入,启动时不把所有 skill 说明都塞进去。MCP instructions 按连接状态注入——没连上的 server 说明不占 prompt 空间。这是上下文经济学的体现,下一章会展开。
三种扩展机制的分工:skill 固化 workflow、plugin 扩展能力边界、MCP 桥接外部工具并注入规范。三层叠加,模型感知到的是一个比”裸 Claude”能力强得多、行为约束也严得多的系统。扩展不是简单做加法,是在正确的层次上做正确的事。
参考来源: 本文内容参考 Xiao Tan(@tvytlx)的《Claude Code 源码架构深度解析 V2.0》,基于原报告的分析框架和研究成果整理。