Claude Code Skills 与 Plugins 对比 — 各自用途 + 实战决策指南
Skill 是 Claude 按需加载的可复用指令, Plugin 是打包发布的完整集成单元 (含 skills/hooks/subagents/MCP). 用实际 SEO Agent 配置讲清楚什么场景用哪个.
Claude Code Skills 与 Plugins 对比 — 各自用途 + 实战决策指南
Skill 和 Plugin 都是 Claude Code 的扩展机制, 但解决不同问题. Skill 是一份单独的 markdown 文件, 写的是可复用的指令, Claude 根据用户输入按需加载. Plugin 是一个分发包, 可以把多个 skill 加上 hook、subagent、slash command、MCP server 打成一个可安装单元. 混淆的点在于 plugin 本身可以包含 0、1、或多个 skill — 所以"skill" 从来不是"plugin" 的替代品, 它是 plugin 内部的一个构建块.
要点先说
- Skill = 一份 markdown 文件 (通常在
~/.claude/skills/{名字}/SKILL.md), 带 YAML frontmatter 描述什么时候触发. Claude 监听对话, 匹配上就自动加载.- Plugin = 通过市场或 git repo 分发的打包单元, 可以带 skill、hook (事件钩子的 bash 脚本)、subagent (专门人格)、slash command、MCP server.
- 写 skill 用在: 团队每周重复超过两次的工作流, 依赖项目特定知识 (文件路径、内部 API、命名规范).
- 装 plugin 用在: 要接外部系统 (GitHub、Postgres、Figma), 别人已经做好了集成工作.
- 成熟的 Claude Code 配置一般两者都用: 几个本地 skill 覆盖团队习惯, 几个 plugin 搞外部系统.
Skill 本质是什么
Skill 就是一段 Claude 按需加载的 prompt, 触发条件写在 description 里. 实际长这样:
---
name: publish-blog
description: 用户想发新文章但不想部署时用. 包括 slug 去重、多语言 INSERT、IndexNow 提交.
---
先看 `scripts/publish_blog.py --help`.
然后: (1) DB 去重检查 (2) 解析 drafts/ (3) SSH INSERT (4) curl 验证.
Claude 监听对话. 用户输入匹配上 skill 的 description, body 就被注入到上下文, Claude 按照流程走. 就这么简单.
因为 skill 是 markdown 文件, 你可以 git 版本控制、diff 改动、通过 gist 分享. 没有构建步骤, 没有包管理器, 把文件放对目录就能用.
Skill 适合的场景:
- 团队每周重复超过两次的多步骤工作流.
- 步骤依赖项目特定知识 (路径、API、命名规范) — 这些通用工具根本不知道.
- 你想把 Claude 的行为约束到一个已验证的流程上.
Skill 不适合:
- 要连接外部 API. 这是 plugin (或 MCP) 的地盘.
- 一次性任务. 直接问 Claude 就行, 别上升到 skill.
Plugin 打的是什么包
Plugin 是一个要分发给别人用的打包目录. 标准结构:
my-plugin/
├── manifest.json # plugin 元信息 + 入口
├── skills/ # 零个或多个 skill
│ └── my-workflow/SKILL.md
├── hooks/ # 事件触发的 bash 脚本
├── subagents/ # 专门的 Claude 人格
├── commands/ # slash 命令 (/my-command)
└── mcp-servers/ # MCP server 配置
Plugin 存在的理由是分发问题. 你可以把一个 skill 文件邮件发给同事, 但你没法邮件发送一个完整的 GitHub 集成 (包括 OAuth、webhook hook、知道代码约定的 subagent). Plugin 解决这个 — 市场一键安装, 全套连接好.
Plugin 适用场景:
- 需要超越指令的能力 — 事件 hook 跑 bash、MCP server 暴露工具、subagent 换角色.
- 想让别人装你的配置. Plugin 就是分发单元.
- 配置涉及外部凭证或服务 (GitHub token、数据库连接), 需要一个结构化的安装流程.
决策矩阵对比
| 场景 | 用 Skill | 用 Plugin |
|---|---|---|
| "每次 commit 都 lint 我的 TypeScript" | Skill (识别 commit 语境自动触发) | Plugin (hook 挂 PreToolUse of git commit) — 强制执行更靠 |
| "搜索我公司内部 wiki" | Skill (如果 wiki 是 repo 里的 markdown) | Plugin (如果 wiki 要 API + auth) |
| "按团队文风写博客" | Skill (style guide markdown) | Plugin 过度设计 |
| "部署到 staging" | Skill (如果就是跑脚本) | Plugin (如果要凭证 + 确认 UI) |
| "查我们 Postgres" | 两个都行 — plugin 经 MCP 更顺手, skill 直接叫 psql | 一般 plugin 赢 (MCP 给类型化工具) |
实战配置举例
我自己在跑一个多站点 SEO Agent, Claude Code 配置长这样:
Skills (本地, 项目特定):
plan-seo-today— 500 行的 markdown, 驱动每日内循环 (去重检查、KGR 选词、优先级打分). 太个性化了, 做 plugin 没意义.publish-blog— 读 draft、INSERT 到 pg、验证. 绑死在我自己两个站上.find-newword— 带我个人偏好的 KGR 蓝海/红海判断规则.
Plugins (从市场装的):
postgres-best-practices— 给 Claude 结构化的 Postgres 知识, 我自己不用写.commit-commands— 标准 commit/PR 辅助.figma— Figma MCP 集成.
比例大致跟 Claude Code 团队文档说的一致: 大多数人 5-10 个本地 skill 配自己的工作流 + 3-5 个 plugin 接外部系统. Skill 是你自己写的, plugin 是你装的.
一个真实的坑
"太特定所以不做 plugin" 和 "通用到可以分发" 之间的界限是模糊的. 我一开始把 publish-blog 当候选 plugin, 写到一半发现 SSH 细节和 SQL 结构跟我的基础设施绑得太深, 真做成 plugin 反而变成一个混乱的模板. 最终留作 skill.
运行时到底怎么选
用户敲入一条消息:
- Claude 读当前上下文里加载的 skill description.
- 有 skill 匹配上, body 注入 prompt, 按流程走.
- Slash command (
/figma-use) 匹配上会触发对应 plugin 流. - Plugin 里的 hook 按事件 (pre-tool-use、session-start) 触发, 不管用户说了什么.
Skill 是"拉式" (Claude 决定什么时候加载). Plugin 里的 hook 是"推式" (运行时主动触发). 这个结构差异最关键 — hook 强制执行, skill 是建议.
常见问题
Plugin 能包含 skill 吗?
能. Plugin 的 skills/ 目录就是打包要分发的 skill 的标准位置.
不通过市场能装 plugin 吗?
能. 任何 plugin 结构合规的 git repo 都可以, Claude Code 指到 URL 就行.
Skill 和 plugin 会不会冲突?
一般不会. Skill 按对话触发, plugin 按 slash command 或 hook 触发. 两个 skill 同时匹配时 Claude 挑 description 更具体的.
内部工具应该写 plugin 吗?
只有两种情况: 团队以外的人也会用, 或者工具涉及外部 auth/服务需要结构化安装流程. 否则 git repo 里共享一个 skill 更轻.
Skill 存哪里?
用户级: ~/.claude/skills/{名字}/SKILL.md. 项目级: .claude/skills/{名字}/SKILL.md. Claude Code 两个都加载, 同名时项目级优先.
怎么手动触发 skill?
Slash command 形式: /skill-name. 或者直接描述你想干嘛, Claude 会匹配 skill description.
从哪里起步
如果你刚上手, 建议先写三个 skill, 不要碰 plugin. 挑三个你团队重复做的工作流 — 代码审查、发布说明、测试脚手架 — 把步骤写成 markdown. 看 Claude 能否稳定匹配上. 这个练习比任何架构图都能告诉你什么时候该上 plugin.
Plugin 是等你撞墙才碰的东西: "我要 hook 强制执行 X" 或者 "我要 Claude 连我们内部 API". 撞墙之前, skill 反馈循环更快.
Jim Liu 运营 OpenAIToolsHub, 评测 AI 开发工具, 包括 Claude Code、Cursor、Copilot. 2026 年初开始给 SEO 自动化搭多 Agent Claude Code 配置, 维护一份 Claude Code 常用 skills 合集.