在 Claude、opencode、Cursor 等 Agent 生态里,“Skills”、“Tools”、“Plugins”、“MCP” 经常混用,但它们是不同层级的机制。
一句话区分
| 概念 | 本质 | 例子 |
|---|---|---|
| Tool | 可被调用的单个函数/API | read_file、run_bash、web_search |
| Skill | 一组指令 + 资源,教模型”怎么做” | 写测试的工作流、代码审查流程 |
| MCP | 工具的标准传输协议/服务 | 连接 GitHub、数据库的 MCP server |
| Plugin | 通常指 IDE/框架的扩展壳 | VSCode 插件、LangChain 包 |
Tool:执行单元
Tool 是最小的执行单元,模型通过函数调用触发它。特点是”能力有边界、参数明确”,模型只负责决定”何时调用”。
Skill:过程知识
Skill 不直接执行动作,而是提供过程性知识:一份 Markdown 说明(如何做、分几步、注意什么)+ 可能附带的脚本/资源。模型读完后按流程执行。比如”TDD 技能”会告诉模型先写失败测试再实现再重构。
关键差异:Tool 回答”能做什么”,Skill 回答”该怎么做”。
MCP:Tool 的分发协议
MCP(Model Context Protocol)让工具变成可插拔的标准服务。一个 MCP server 可以在网络/本地暴露多个工具,模型用统一协议发现并调用。好处是解耦:同一个 MCP server 可被多个 Agent 复用。
三者的关系
Skill ──指导──> 模型 ──调用──> Tool / MCP
- 一个 Skill 的执行过程中可能用到多个 Tool
- 一个 MCP server 可能暴露多个 Tool
- Skill 与 Tool/MCP 互补:Tool 提供能力,Skill 提供方法论
选型建议
- 单次、明确的动作 → Tool
- 需要”按正确步骤做”的流程 → Skill
- 要接入外部系统、跨 Agent 复用 → MCP
- 想在 IDE 里集成能力 → Plugin
常见误解
- “Skill 能执行命令” —— 不对,Skill 只是文档,执行靠 Tool。
- “MCP 就是 Tool” —— MCP 是协议,Tool 是它的产物之一。
- “Plugin 和 Skill 一样” —— Plugin 是宿主扩展,Skill 是模型内指令。