Skills、Commands、Agents、Plugins:这四个 AI 概念到底有什么区别?
在当今 AI 技术飞速发展的时代,如果你经常使用各类 AI 工具,尤其是像 Claude Code 这样的编程助手,你一定在官方文档、社区讨论或者技术博客中反复碰到过这几个名词:Skills、Commands、Agents 和 Plugins。
这些概念满天飞,看似都跟“增强 AI 能力”有关,但如果细究起来,很多人会感到一阵眩晕:它们到底有什么区别?是不是重叠的功能?我该在什么场景下用哪一个?
最近,有位星友在知识星球上提出了一个非常典型的问题,代表了大多数人的困惑。他说:“最近 AI 火爆,学习热情高涨,可能是有些用力过猛,自己突然有些概念搞不太清楚。Skills, Commands, Agents, Plugins. 这些名词全网都在热烈讨论,都在学用。它们也都有很大关联。想请问:它们的主要结构和功能的区别是什么?都是什么场景下使用?”
这是一个非常棒的问题。为了彻底厘清这四个概念,我们将基于深度的调研和实际使用经验,用最通俗的语言,为你拆解它们背后的逻辑。只要你看完这篇文章,以后再遇到这些词,你就不会再被它们绕晕了。
核心结论:Plugins 不是功能,它是“打包分发机制”
在深入每一个概念之前,我们必须先找到那把解开整个概念迷局的钥匙。这把钥匙就是关于 Plugins 的本质定义。
请记住这句话:Plugins 不是一种新功能,它是“打包分发机制”。
为了让你瞬间明白,我们用一个生活化的例子来打比方。
你肯定网购过吧?当你收到快递的时候,你拿到手的是一个“包裹”(或者叫纸箱)。但是,你买的并不是这个纸箱本身,你真正想要的是里面的东西——可能是一件衣服、一双鞋,或者是几本书。
在 Claude Code 的世界里,Skills、Commands、Agents 就是你网购的“商品”(即实际的功能),而 Plugins 就是装这些商品的“包裹”。
包裹是商品的一种吗?显然不是。包裹的作用,是让商品能够安全、便捷地送到你手里。
同理,Plugins 并不是像 Skills 或 Commands 那样的一种“功能”。Plugins 是一种机制,它的目的是为了让功能能够被分享、被安装、被复制。
一个 Plugin 可以同时包含 Skills、Commands、Agents,甚至还能包含 Hooks(钩子)、MCP 连接等各种配置。它把这些乱七八糟但相关联的东西全部打包在一起,让你只需要运行一条命令,就能全部装好。
理解了这一点,你就理解了这四个概念中最容易混淆的一环。Plugins 是“分发层”,而其他三者是“功能层”。它们不在同一个维度上。
那么,作为真正功能组件的 Skills、Commands 和 Agents,它们各自又扮演什么角色呢?我们一个一个来拆解。
Skills:AI 的“操作手册”
Skills 是什么?
你可以把 Skills 理解为 AI 的“操作手册”或“工作指南”。
想象一下这样的职场场景:你新招了一位实习生(Claude)。作为一个忙碌的主管,你肯定不想每次他遇到问题时,你都从头教一遍怎么做代码审查、怎么写 commit message、怎么跑测试。这太浪费时间了。
于是,你花时间写了一份详细的操作手册,放在他的办公桌上。下次他遇到这类任务,只需要自己翻一翻手册,就知道标准流程是什么,该怎么做了。
在 Claude Code 中,Skills 就是这样的“操作手册”。
从技术结构上看,它通常是一个目录,里面存放着 Markdown 文件、脚本、配置文件等。这些文件的作用就是告诉 Claude:“遇到这类任务,该按什么步骤做,用什么标准检查。”
Skills 的最大特点:按需触发
Skills 最特别、也最智能的地方在于,它是“按需触发”的。
你不需要每次都明确告诉 Claude “去用某个 Skill”。你只需要描述你的任务,Claude 会根据上下文自动判断:“哦,这个情况我在操作手册里见过,我有现成的处理方案。”然后,它会自动加载相关的 Skill 来执行。
为了让你更直观地理解,这里有一个真实的案例。
上图展示的就是 Claude Code 利用 Skill 自动调研《红楼梦》人物关系,并生成的可视化图形(局部)。
在这个场景中,你不需要手把手教它怎么提取人物、怎么画图,你只需要给它一个包含了相关知识的 Skill,它就能识别任务需求并自动应用。
Skill 与 Command 的模糊边界
虽然我们主要把 Skill 定义为“自动识别”,但它的边界其实并没有那么僵化。只要你写了一个 Skill,就需要在描述区给它起个名字。
有了名字之后,事情就变得有趣了。在 Claude Code 中,你可以像调用普通 Command 一样,直接用斜杠(/)加上这个名字来手动呼叫该 Skill。
这告诉我们一个道理:理解概念不能太机械。虽然 Skill 的强项是自动识别,但如果 Claude Code 没能理解你的意图自动调用时,你手动通过斜杠命令调用它,也是一个简单利落的解决方案。
Commands:简单直接的“遥控器按钮”
如果说 Skills 是一本厚厚的操作手册,那么 Commands 就是一个最简单的“遥控器按钮”。
Commands 的逻辑非常直观:你按一下按钮,它就执行一个动作。
比如,你在代码里配置好了一个 Command,名字叫 /deploy。当你需要部署项目时,只需要输入 /deploy,Claude 就会立即执行预设好的部署流程。或者你输入 /review,它就开始进行代码审查。
这里没有自动识别,没有复杂的智能判断,没有“根据上下文思考”的过程。就是纯粹的:你按,它做。
Commands 的结构
Commands 通常就是一个 Markdown 文件,里面写着提示词模板。它的结构非常简单,上手极快。你不需要像配置 Skill 那样建立文件夹、放多个文件,你只需要定义好触发词和对应的指令即可。
Commands 与 Skills 的核心区别
那么,Commands 和 Skills 到底该怎么选?它们的核心区别在于:谁来决定什么时候触发?
- ▸
Commands 是“你按按钮”:控制权完全在你手里。你想让它做,它才做。这对于那些偶尔使用、或者你需要对执行时机有绝对掌控权的操作非常合适。 - ▸
Skills 是“AI 自动识别”:控制权部分让渡给了 AI。你希望 AI 能更聪明地感知上下文,在合适的时机自动帮你做某事,而不是你每次都下指令。
举个例子:
如果你有一个操作,触发条件非常明确(比如“我要部署了”),用 Command 就够了,简单直接。
但如果触发条件比较模糊,或者你希望 AI 能在一连串复杂的对话中自动察觉“现在是该用这个规范的时候了”,那就应该用 Skills。
Agents:会自己思考的“实习生”
接下来我们要讲的是这四个概念里最“重”、也是智能程度最高的一个——Agents。
如果说 Skills 是一本被动的“操作手册”,Commands 是一个死板的“遥控器按钮”,那么 Agents 就是一个“听话但会自己思考的实习生”。
Agents 的主动性
你给 Agent 一个目标,比如说:“帮我把这个 PR(Pull Request)审完,有问题就提 comment。”
然后呢?然后你就不用管了。你不需要像用 Commands 那样一步步按按钮,也不需要像用 Skills 那样提供详细的操作手册步骤(虽然它可以调用 Skill)。
Agent 会自己决定:
-
先看哪个文件? -
用什么标准审查? -
发现了问题该怎么描述? -
需不需要去查一下相关的文档或代码上下文?
它会把“审完 PR”这个大目标,拆解成无数个小步骤,自己规划路径,然后一步步执行。
Agents 与 Skills 的本质区别
这里非常关键:Skills 和 Agents 虽然都涉及“知识”,但它们的定位完全不同。
- ▸
Skills 提供“怎么做”的知识:它是一本静态的书,告诉你步骤是什么。 - ▸
Agents 决定“做什么”和“何时做”:它有大脑,它会根据当前情况动态调整策略。
Skills 是被动的,它放在那里等着被调用(无论是被你手动调用,还是被 AI 自动发现)。
Agents 是主动的,它有自己的判断力。它不仅会思考,还能根据环境变化改变自己的行为。
Agents 与 Skills 的配合:以柔克刚
正因为 Agent 具备这种主动适应的能力,它在面对 Skills 时,展现出了非常有趣的互动关系。
正如相关技术讨论中提到的:传统编程是刚性的,而 Skills 搭配 Agent 能“以柔克刚”。
这是什么意思呢?哪怕你写的 Skill 初始设计有点缺陷,或者不够完美,普通的程序可能会直接报错或死板执行。但因为 Agent 有思考能力,它会根据实际情况调整使用 Skill 的方式,甚至绕过 Skill 的缺陷来完成任务。就像你可以把一个 Skill 看作是一块可塑的泥巴,Agent 就是那个捏泥巴的人,它能把泥巴揉捏成完成任务需要的形状。
递进关系:控制权的让渡与智能的升级
到这里,我们可以把这三个功能组件放在一起看,你会发现它们其实是一个清晰的递进关系。
从 Commands 到 Skills,再到 Agents,这是一个控制权逐级让渡、智能程度逐级提升的过程。
-
Commands(你按,它做):这是最基础的层面。你是操作员,每一步都要你亲自动手触发。控制权 100% 在你,智能程度最低。 -
Skills(它知道怎么做,自动加载):进了一步。你定义了规则,但 AI 帮你判断什么时候用这些规则。你开始把一部分“判断权”交给 AI。 -
Agents(它决定做什么、怎么做):最高级。你只给目标,过程完全由 AI 自主规划。控制权最大程度地让渡给了 AI,智能程度也最高。
你可以通过上图直观地感受这种从“手动”到“自动”再到“自主”的演变。
回到 Plugins:把你的智慧打包带走
现在,我们再回过头来看 Plugins,你就会有更深刻的理解。
Plugins 和上面这三个功能组件(Skills、Commands、Agents)完全不是一个维度的东西。
- ▸
Skills, Commands, Agents 是“功能层”,是具体干活的。 - ▸
Plugins 是“分发层”,是负责把干活的家伙事送到别人手里的。
为什么需要 Plugins?
很简单,为了复用和分享。
让我们设想一个具体的职场场景:
假设你是一个技术团队的负责人。你花了两周时间,利用 Claude Code 配置了一套非常完美的工作流。这套工作流里,包含了用于代码审查的 Skill,用于一键部署的 Command,以及用于自动审核 PR 的 Agent。
这时候,团队里新来了一位同事。你肯定希望他也能立刻用上这套配置,保持团队工作标准的一致性。
如果没有 Plugins 机制:
你得一个文件一个文件地发给他。你得告诉他:“把这个 Markdown 文件放到 Commands 目录下,把那个文件夹放到 Skills 目录下,然后再修改一下配置文件……” 这不仅繁琐,而且容易出错。
有了 Plugins 之后:
事情变得极其简单。你只需要把这套配置(包括 Skill 文件夹、Command 文件、Agent 配置等)打包成一个 Plugin。然后,你可以把它发布到团队的 Marketplace(插件市场)。Anthropic 官方维护了一个官方的插件目录,你们团队也可以自己搭建内部市场。
新同事只需要在他的 Claude Code 里运行一条命令:
“
/plugin install my-team-config@team-marketplace
搞定。
所有的 Skills、Commands、Agents、Hooks、MCP 连接…… 全部自动安装配置完毕。
这就是 Plugins 的真正价值:它让原本零散的“配置”,变成了可复用、可分享、可版本化的资产。它极大地降低了团队协作中知识转移的成本。
实战指南:不同场景该用什么?
概念都讲清楚了,但在实际工作中,当你面对一个具体需求时,到底该选哪一个工具?
为了让你更容易做决定,我们可以根据前面的分析,整理出一个场景对照表。
举个具体的例子
场景 1:编写单元测试
- ▸
如果你只是想让 AI 帮你“生成当前文件的测试”,用 /test这样的 Command 最合适,意图明确,一键执行。 - ▸
但如果你想建立一套规范,让 AI 在写代码的过程中,自动识别出“这里需要加测试”,并根据团队规范自动生成,那你应该写一个 Skill。 - ▸
如果你的目标是“检查整个项目的测试覆盖率,并针对薄弱环节补充测试用例”,这是一个复杂任务,你需要请出一个 Agent 来统筹规划。
场景 2:团队知识库同步
- ▸
你可以把如何查询内部文档的知识写进 Skill,让 AI 在回答问题时自动查阅。 - ▸
然后,你把这个 Skill、再加上一个手动同步文档的 Command,打包成一个 Plugin。这样,任何新入职的员工,只要安装这个 Plugin,他的 Claude Code 就立刻具备了查询内部知识库的能力。
总结:拨开迷雾见本质
回到我们最初的问题:Skills、Commands、Agents、Plugins——你分得清了吗?
其实,要把这几个概念搞得明明白白,只需要记住两句话:
-
前三个是“功能组件”:
- ▸
Skills 封装知识(操作手册),解决“怎么做”。 - ▸
Commands 提供按钮(遥控器),解决“立即做”。 - ▸
Agents 具备自主性(实习生),解决“做什么”和“何时做”。
- ▸
-
Plugins 是“分发机制”:
- ▸
它把上面的功能组件打包,让配置可以被复用、被分享、被一键安装。
- ▸
在这个技术日新月异的领域,不是每个新冒出来的名词都代表了一种全新的、颠覆性的功能。有时候,它只代表了一种新的组织方式,一种更高效的协作流程。
搞懂了“分发层”和“功能层”的区别,搞懂了控制权是如何在人类和 AI 之间流动的,以后不管再出什么新词,你都能一眼看穿它的本质,不再被术语的海洋淹没。
常见问题解答 (FAQ)
Q1:Plugins 能包含 Commands 和 Agents 吗?
A: 是的。正如我们文中强调的,Plugins 是一个打包机制。你可以把 Skills、Commands、Agents,甚至 Hooks 和 MCP 连接全部放在一个 Plugin 里。这就像一个快递箱里可以同时装衣服、鞋子和书籍。
Q2:既然 Skill 可以自动触发,为什么还需要 Commands?
A: 并不是所有场景都需要“自动”。Commands 的优势在于“显式控制”。当你不想让 AI 猜测你的意图,或者某个操作成本很高(不可逆操作),需要你明确确认时,Commands 这种“按按钮”的模式更安全、更直接。
Q3:Agent 会完全替代 Skill 吗?
A: 不会。Agent 和 Skills 是互补关系。Agent 提供决策和规划能力,而 Skills 提供具体的执行知识和规范。一个聪明的 Agent 往往会调用多个 Skills 来完成任务。正如文中提到的,Agent 可以像揉捏泥巴一样灵活地使用 Skills。
Q4:我该如何开始尝试这些功能?
A: 你可以从官方插件目录安装一个现有的 Plugin 体验一下。这是最快感受到“打包分发”便利性的方式。然后,尝试写一个简单的 Command(比如 /summarize),再逐步尝试编写自己的 Skill。
Q5:如果 Claude Code 不能自动识别我的 Skill 怎么办?
A: 不要担心,这不是死路。正如文中提到的,因为 Skill 有名字,你可以完全像调用 Command 一样,使用斜杠加名字的方式手动强制调用该 Skill。这是解决 AI 识别不灵敏时的一个实用技巧。

