Claude Code 进阶6: 插件体系全景——6 种组件,2 种范式
本文是”AI之旅”合集 Claude Code 进阶 系列的第6篇。
Claude Code 的插件体系支持 6 种官方组件:Skills、Agents、Hooks、MCP Servers、LSP Servers 和 Monitors。从实现方式看,只有两种范式:写代码让机器执行,或写文档让 AI 读。大部分真实插件是两者的混合。这篇用大白话画一张完整的地图。

图片制作:Nano Banana Pro
本系列基于 2026 年 4 月 20 日的 Claude Code 官方文档。
插件是什么
一句话:插件是一个目录,里面装着各种组件,用来扩展 Claude Code 的能力。
打个比方:Claude Code 是一部手机,插件就是你安装的 App。每个 App 里可能有不同的功能模块——有的提供界面,有的连接外部服务,有的在后台自动执行任务。这些功能模块就是”组件”。
你可能会问:我直接在 .claude/ 目录下放文件(比如 skills、agents)也能扩展 Claude Code 啊,为什么还需要插件?
区别在于:.claude/ 下的文件是个人配置,只在你本地、这个项目里生效。而插件是可分享的包——有版本号、有命名空间(比如 /my-plugin:deploy 不会和别人的 /deploy 冲突)、可以通过 marketplace 一键安装。
简单说:想自己用,放 .claude/;想分享给别人,做成插件。
6 种组件
官方文档定义了 6 种插件组件。来逐个看。
Skills:教 Claude 怎么做事
Skill 是一个 Markdown 文件(SKILL.md),里面写着指令、规则、流程或知识。Claude 会按需加载它,然后按照里面的内容行事。
举几个例子:
-
一套规则:“写代码前必须先写测试” -
一个流程:“部署分 5 步,第一步先跑测试……” -
一份知识:“我们的 API 返回格式是这样的……”
Skill 可以由你手动输入 /skill-name 触发,也可以由 Claude 自动判断”当前任务和这个 skill 相关”后自动加载。上一篇 Command 和 Skill 的关系 详细讲了这个机制,这里不重复。
Agents:定义专门的子 agent
Agent 也是一个 Markdown 文件,但它定义的不是”一段知识”,而是”一个专门的助手”。
想象一下:你的主 Claude 是项目经理,Agent 就是它手下的专员。每个专员有自己的专长、自己的工具权限、甚至可以用不同的模型。比如你可以定义一个 “security-reviewer” agent,专门审查代码安全问题,只给它读文件的权限,不让它改代码。
Agent 和 Skill 的关键区别:Agent 运行在独立的上下文里。它看不到你和主 Claude 的对话历史——它只知道被分配的任务。做完之后,只把结果摘要返回给主 Claude。这样主对话的上下文不会被大量中间信息塞满。
Hooks:事件触发的自动化
Hook 是在 Claude Code 生命周期的特定节点自动执行的动作。你不需要手动触发——满足条件就自动跑。
类比:手机上的”自动化”——“连上家里 Wi-Fi 就把手机调成静音”。Hook 就是这种”当 X 发生时,执行 Y”的规则。
Claude Code 支持 20 多种事件,比如:
SessionStart
——新对话开始时 PreToolUse
——Claude 要调用工具之前(可以拦截) PostToolUse
——工具调用完成之后 Stop
——Claude 完成回复时
Hook 有 4 种执行方式:
|
|
|
|---|---|
command |
|
http |
|
prompt |
|
agent |
|
注意后两种——prompt 和 agent——本质上是给 AI 读的文档,不是执行代码。所以 Hook 这个组件本身就横跨了两种范式。
MCP Servers:连接外部世界的桥梁
MCP(Model Context Protocol)是一个开放协议,让 Claude 能直接访问外部工具和数据源。
没有 MCP 的时候,你想让 Claude 查一下数据库里的数据,只能自己去查,然后把结果复制粘贴到对话里。有了 MCP Server,Claude 可以直接查——你连接一个数据库 MCP Server,Claude 就多了”查询数据库”这个工具。
MCP Server 是一个运行中的程序——你需要写代码(或者用别人写好的),它通过 MCP 协议和 Claude Code 通信。这是纯代码驱动的组件。
LSP Servers:给 Claude 装上 IDE 的眼睛
LSP(Language Server Protocol)是一个已经在编程工具领域广泛使用的协议。VS Code 里的”跳转到定义”、“查找所有引用”、“实时报错”——这些功能背后都是 LSP。
把 LSP Server 接入 Claude Code 之后,Claude 就拥有了同样的能力:它能看到实时的代码诊断信息、能跳转到函数定义、能查找某个变量在哪里被使用。这让它在理解代码时更准确。
和 MCP Server 一样,LSP Server 也是一个运行中的程序——纯代码驱动。
Monitors:后台的眼线
Monitor 是一个在会话期间持续运行的后台脚本。它不像 Hook 那样在特定事件触发一次就结束——它一直跑着,把观察到的信息通过 stdout 实时报告给 Claude。
类比:Hook 像闹钟(到点响一次),Monitor 像安保摄像头(一直在监控,发现异常就通知你)。
典型场景:
-
监听日志文件,发现错误实时通知 Claude -
监控构建进程的输出,构建完成或失败时自动汇报 -
跟踪文件变化,有改动就提醒
Monitor 在 plugin.json 的 monitors 字段中声明,也可以放在独立的 monitors/monitors.json 文件里。会话启动或 skill 调用时自动启动。它是纯代码驱动的组件——你需要写一个脚本或程序。
一张表总结
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
不是组件,但也很有用
除了 6 种官方组件,插件的 plugin.json 还支持一些额外配置:
commands/
——Skills 的旧目录格式,新插件建议用 skills/(详见上一篇)outputStyles
——自定义 Claude 的输出风格 userConfig
——安装插件时让用户填写的配置项(比如 API 密钥) channels
——消息注入频道(比如接收 Telegram 消息) bin/
——可执行文件,安装后 Claude 可以直接调用 settings.json
——插件的默认设置 dependencies
——声明本插件依赖的其他插件(支持 semver 版本约束)
这些不算”组件”,但在实际插件开发中经常用到。
2 种范式
看完 6 种组件,你可能注意到一个规律:有些组件是”写代码让机器执行”,有些是”写文档让 AI 读”。
这就是 Claude Code 插件体系的两种实现范式。
代码驱动:你写一个程序(TypeScript、Python、Shell 都行),它作为独立进程运行,通过协议和 Claude Code 通信。MCP Server 和 LSP Server 就是纯代码驱动——它们必须是运行中的程序,否则无法工作。
文档驱动:你写一个 Markdown 文件,Claude 读取它、理解它、按照里面的指令行事。不需要启动任何程序。纯文档的 Skills 和 Agents 就是这种范式。
但大部分真实插件是混合的——两种范式并存。
比如:
-
一个 Skill 的主体是 Markdown(文档驱动),但里面可以用 !command“ 语法内嵌 shell 命令(代码驱动) -
一个 Hook 的配置是 JSON,但它可以选择执行 shell 脚本(代码驱动)或让 AI 评估一段 prompt(文档驱动) -
Superpowers 插件有 14 个 Skills(文档驱动)+ 一个 SessionStart Hook 里的 bash 脚本(代码驱动)
用三个真实插件来看这个光谱:
|
|
|
|
|---|---|---|
| Claude HUD |
|
|
| Feature-Dev |
|
|
| Superpowers |
|
|
纯代码和纯文档是两个极端,大部分插件落在中间。
一张全景图
Claude Code 插件体系│├── 文档驱动的组件(写 Markdown,AI 读取并遵照行事)│ ├── Skills — 教 Claude 做事的指令/规则/知识│ └── Agents — 定义专门的子 agent│├── 代码驱动的组件(写代码,机器执行)│ ├── MCP Servers — 连接外部工具和数据源│ ├── LSP Servers — 提供代码智能│ └── Monitors — 后台持续监控,实时汇报│├── 混合的组件│ └── Hooks — 事件触发(shell/http = 代码,prompt/agent = 文档)│└── 其他 plugin.json 配置commands/, outputStyles, userConfig, channels, bin/, settings.json
怎么选:我该用哪种组件?
如果你想开始做自己的插件,这个决策树可以帮你起步:
-
想教 Claude 一套规则或流程?→ Skill -
想让 Claude 把特定任务交给专门的助手?→ Agent -
想在某个事件发生时自动执行检查或操作?→ Hook -
想让 Claude 访问外部工具或数据?→ MCP Server -
想给 Claude 更好的代码理解能力?→ LSP Server -
想在后台持续监控某个进程或日志?→ Monitor
当然,实际的插件往往是多种组件的组合。知道每种组件的定位,你就知道该怎么搭配了。
感谢你看到这里,还请给我个 👍 / ♥️ / ↗️ 唷~ 🫶
❤️ 关注我 ❤️ 还有更多内容哦
夜雨聆风