Claude 的 Skill Plugin 和 Command 的区别
文章目录
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"——这个问题本身不成立,因为它们在完全不同的层面上。
参考文献
更多推荐



所有评论(0)