乐于分享
好东西不私藏

Claude Code 进阶6: 插件体系全景——6 种组件,2 种范式

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
执行一段 shell 命令
http
发一个 POST 请求到指定 URL
prompt
让 AI 评估一段 prompt(比如”这个操作安全吗?“)
agent
启动一个子 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 调用时自动启动。它是纯代码驱动的组件——你需要写一个脚本或程序。

一张表总结

组件
本质
谁来触发
典型用途
Skills
Markdown 文件
用户或 Claude
规则、流程、知识
Agents
Markdown 文件
Claude 自动委派
专门任务(审查、研究、测试)
Hooks
JSON 配置 + 执行器
事件自动触发
自动化检查、格式化、通知
MCP Servers
运行中的程序
Claude 调用工具
连接数据库、API、外部服务
LSP Servers
运行中的程序
Claude 查询代码信息
跳转定义、查找引用、实时诊断
Monitors
后台运行的脚本
会话启动时自动运行
监控日志、构建进程、文件变化

不是组件,但也很有用

除了 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
StatusLine 程序(TypeScript)
纯代码驱动
Feature-Dev
Commands + Agents(纯 Markdown)
纯文档驱动
Superpowers
Skills + Hooks(Markdown + Shell)
混合

纯代码和纯文档是两个极端,大部分插件落在中间。

一张全景图

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

当然,实际的插件往往是多种组件的组合。知道每种组件的定位,你就知道该怎么搭配了。

感谢你看到这里,还请给我个 👍 / ♥️ / ↗️ 唷~ 🫶

❤️ 关注我 ❤️ 还有更多内容哦