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 参考

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐