Claude 的 Skill Plugin 和 Command 的区别
文章目录
- 0.Claude 扩展体系概览
- 1.Skill:可复用的专业能力
- 2.Command:用户手动触发的快捷方式
- 3.Plugin:打包分发的"箱子"
- 4.三者关系图解
- 5.何时使用哪个?快速决策表
- 6.总结:一句话记住
- 参考文献
0.Claude 扩展体系概览
在 Claude 生态中,Skill、Command、Plugin是三个核心但容易混淆的概念。简单来说:Skill 是"能力",Command 是"快捷方式"(已被 Skill 统一),Plugin 是"打包分发工具"。
下面是三者关系的总览:
| 概念 | 一句话解释 | 触发方式 | 核心定位 |
|---|---|---|---|
| Skill | 教会 Claude 一项专业能力 | 模型自动判断触发 | 封装领域知识与工作流程 |
| Command | 用户手动触发的固定提示词 | 用户输入/xxx | 快捷操作(已并入 Skill) |
| Plugin | 打包和分享扩展的"箱子" | 安装后生效 | 分发与共享 |
1.Skill:可复用的专业能力
Skill 是什么?
Skill 是一个文件夹,核心是SKILL.md文件,里面封装了让 Claude 完成特定任务的专业知识、工作流程和可选资源(脚本、模板等)。
关键特性:渐进式加载
Skill 最核心的设计原则是渐进式披露(Progressive Disclosure),分三层按需加载,极大节省 Token 消耗:
第一层:元数据(始终加载) ├── 只有 Skill 名称和描述 ├── 仅占用 30-50 Token └── Claude 靠它判断是否相关 第二层:核心指令(触发时加载) ├── 匹配到任务后,读取 SKILL.md 主体 ├── 获得完整工作流程 └── 此时才消耗更多 Token 第三层:资源文件(按需加载) ├── 脚本、参考文档等 ├── 只有需要时才读取 └── 脚本执行结果进入上下文,代码本身不占用典型场景:
- 代码审查规范
- 特定框架的最佳实践
- 公司内部的开发流程
- PDF 处理、Excel 操作等固定流程
Skill 示例结构:
.claude/skills/code-review/ ├── SKILL.md # 主指令(含触发描述) ├── references/ # 详细规范,按需加载 └── scripts/ # 可执行脚本2.Command:用户手动触发的快捷方式
Command 是什么?
Command 是用户主动触发的固定提示词快捷方式。输入/review,Claude 就执行预定义的代码审查流程。
Command vs Skill 的核心区别:
| 维度 | Command | Skill |
|---|---|---|
| 触发者 | 用户手动(输入/xxx) | 模型自动判断 |
| 智能程度 | 每次都执行固定内容 | 可根据上下文调整 |
| 复杂度 | 简单提示词模板 | 可含脚本、多文件 |
⚠️ 重要更新:Command 已被 Skill 统一
在最新版本中,Command 已不再是独立机制。只需在SKILL.md的 frontmatter 中添加disable-model-invocation: true,Skill 就会变成"只能由用户手动触发"——本质上等同于旧版 Command。
# .claude/skills/release-note/SKILL.md --- name: release-note description: 生成发布说明 disable-model-invocation: true ← 加上这行,变成手动触发 --- 按公司模板生成发布说明:...用户输入/release-note即可调用。旧的.claude/commands/目录仅为向后兼容保留。
3.Plugin:打包分发的"箱子"
Plugin 是什么?
Plugin 本身不"做事",它只是一个分发载体——把 Skill、Agent、Hook、MCP 等打包在一起,方便分享给团队或社区。
Plugin = 打包好的箱子 ├── Skill(能力) ├── Agent(自主任务) ├── Hook(自动化钩子) ├── MCP Server(外部连接) └── 配置文件Plugin 目录结构示例:
my-review-plugin/ ├── .claude-plugin/ │ └── plugin.json ← 清单文件 ├── skills/ │ └── code-review/SKILL.md ├── agents/ │ └── reviewer.md ├── hooks/ │ └── hooks.json └── .mcp.json为什么需要 Plugin?
- 你写了一个完整的代码审查工作流(Skill + Agent + Hook + MCP 连接 GitHub)
- 想一键分享给同事
- 同事执行
/plugin install my-review-plugin即可获得完整能力
4.三者关系图解
┌─────────────────────────────────────────────────┐ │ PLUGIN │ │ (打包分发的"箱子") │ │ ┌─────────────────────────────────────────┐ │ │ │ 箱子内部 │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │ Skill │ │ Agent │ │ Hook │ │ │ │ │ │(能力) │ │(任务) │ │(自动化)│ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ ┌─────────┐ │ │ │ │ │ MCP │ ← 连接外部系统 │ │ │ │ └─────────┘ │ │ │ └─────────────────────────────────────────┘ │ └─────────────────────────────────────────────────┘ Skill 里面可以包含 Command 形态(disable-model-invocation: true)5.何时使用哪个?快速决策表
| 你的需求 | 用什么 | 原因 |
|---|---|---|
| 教会 Claude 一个固定流程(如代码审查规范) | Skill | 封装专业知识,模型自动判断何时使用 |
创建手动触发的快捷操作(如/release-note) | Skill(加disable-model-invocation: true) | Command 已并入 Skill,这是新版写法 |
| 打包一组扩展分享给团队 | Plugin | Plugin 是分发载体 |
| 连接外部系统(如 GitHub、数据库) | MCP(配合 Skill 使用) | Skill 教"怎么做",MCP 给"做什么的工具" |
| 必须自动执行的操作(如提交前检查) | Hook | 确定性触发,不是 Skill 的范畴 |
6.总结:一句话记住
Skill 是"能力本体",Command 是其"手动触发形态",Plugin 是"分享这些能力的打包工具"。
开发时的正确思路:先用 Skill 实现需求 → 想分享时再打包成 Plugin。不需要纠结"该用 Skill 还是 Plugin"——这个问题本身不成立,因为它们在完全不同的层面上。
参考文献
Claude Code 参考
