一口气讲清楚 Agent、Skill、MCP、Tool 到底是什么?
Agent、Skill、MCP、Tool 这四个词,在 AI Agent 的讨论里高频出现,但很多人其实说不清它们之间的边界。今天咱们就逐一拆解,把定义和关系彻底理清楚。

Agent:决策中枢
Agent 是整个系统中负责“思考和决策”的那个角色。它接收用户指令,理解意图,把一个复杂需求拆解成多个步骤,然后决定先做什么、后做什么,最后调度具体的能力去执行。
举个例子:用户说“帮我把昨天的会议纪要发给张总”。Agent 要做的可不是简单转发——它得先理解“昨天的会议纪要”指的是哪个文件,确认“张总”的联系方式,再选择通过邮件还是消息发送,最后调用对应的发送能力去完成。每一步都需要判断力。
Agent 的核心价值就在这里:面对不确定的指令,能做出合理的分解和选择。它不一定非得用最大的模型,一个在特定领域训练充分的小模型,决策质量同样可以很高。
Tool:原子操作
Tool 是最小粒度的功能单元,一次只做一件事,不会多管闲事。
比如:
read_file— 读取一个文件的内容web_search— 执行一次网页搜索click(x, y)— 在屏幕坐标 (x, y) 处点击一次send_email— 发送一封邮件
Tool 的特点:无状态、单步、确定性。它不关心前因后果,被调用就执行,执行完返回结果。它不会主动决定下一步该做什么——就像一把锤子,功能明确,拿起来就能用,但不会自己决定该钉哪根钉子。
Skill:复合能力
Skill 是多个 Tool 调用加上领域知识的有机组合,用来完成一个相对复杂的任务。
拿“GUI 表单填写”这个 Skill 来说,内部的执行流程可能是:先截取当前屏幕(调用 Tool:screenshot),再识别界面上的输入框和按钮位置(调用 Tool:视觉识别),然后判断应该先填哪个字段(内置决策逻辑),接着执行输入或点击(调用 Tool:键盘输入 / 鼠标点击),最后再截屏验证操作是否成功(再次调用 screenshot)。如果失败,还得调整策略重试。
Skill 和 Tool 的核心区别就在这里:Tool 是一步操作,Skill 是一套流程。Skill 对外暴露一个简洁的接口(比如“帮我填完这个表单”),内部自行编排多个 Tool 调用和判断逻辑。调用方根本不需要关心内部是怎么一步步执行的。
另一个重要特征:Skill 通常封装了领域专有知识。同样是“操控 GUI”,在不同操作系统、不同应用上的操作策略完全不同——这些知识都被封装在 Skill 内部。
MCP:连接协议
MCP(Model Context Protocol)是 Anthropic 提出的一套开放标准,它解决的是一个现实问题:Agent 怎么发现和调用外部 Tool?
这本质上是个工程问题。在没有统一协议的时代,每个 Agent 框架各自定义 Tool 的接入方式——为 LangChain 写的 Tool 插件,搬到 AutoGen 要重写;为 ChatGPT 写的 Function,搬到 Claude 也要重新适配。
MCP 做了三件事:
- 描述格式统一:Tool 用标准化的方式声明自己能做什么、需要什么参数、返回什么结果
- 调用协议统一:请求和响应的数据结构标准化,基于 JSON-RPC
- 发现机制统一:Agent 可以动态查询有哪些 Tool 可用
可以类比成 USB 接口——键盘、鼠标、U 盘长得完全不同,但都能通过同一个接口接入电脑。MCP 就是 Agent 生态里的“USB 标准”。有了它,一个 Tool 开发一次,任何支持 MCP 协议的 Agent 都能直接调用,开发者不用为每个框架单独写适配层。
四者的关系
用一句话概括每个概念的角色:
- Agent — 决策者,负责理解、规划、调度
- Skill — 内化的复合能力,封装了流程和领域知识
- Tool — 原子执行器,被调用、执行、返回
- MCP — 连接标准,让 Agent 和 Tool 能互相发现、互相对话
协作方式有两条路径:
路径 1:Agent → Skill(调用内化的复合能力,Skill 内部自行编排)路径 2:Agent → MCP → Tool(通过标准协议调用外部的原子能力)
两者并不互斥。一个 Skill 内部也可能通过 MCP 调用外部 Tool;一个 Agent 可以同时具备多个 Skill,也能通过 MCP 动态接入新的 Tool。
关键区别在于耦合度:
- Skill 和 Agent 的绑定更紧密,通常是预置的、经过调优的
- MCP Tool 是松耦合的,可以动态接入、即插即用
一张表总结
| 概念 | 类比 | 做什么 | 关键特征 |
|---|---|---|---|
| Agent | 一个有判断力的人 | 理解意图、规划、调度 | 有上下文,能决策 |
| Skill | 学会的本领(如开车) | 完成复杂的多步任务 | 封装流程+领域知识 |
| Tool | 手边的工具(如锤子) | 执行单一原子操作 | 无状态,被动调用 |
| MCP | 工具的统一接口(如 USB) | 让 Agent 发现和调用 Tool | 标准化,跨框架通用 |
一个落地的例子
理解了概念,来看一个实际的开源项目如何体现这四层结构。
Mano-P 是一个运行在本地 Mac 上的 GUI Agent,通过纯视觉方式(截屏 → 理解 → 操作)来操控桌面应用,不依赖 DOM 结构或应用 API。
它的架构恰好对应四层:
- Agent 层:本地运行的 4B 参数模型作为决策中枢,在 Apple M4 Pro 芯片上推理速度实测 76 tok/s,负责观察屏幕内容并决定下一步操作
- Skill 层:GUI 操控能力被封装为 mano-skill,包含屏幕理解、元素定位、操作执行的完整链路。这个 Skill 可被 Claude Code、OpenClaw 等外部 Agent 直接调用
- Tool 层:底层的原子操作——截屏、坐标点击、键盘输入、滚动——每个都是独立的 Tool
一个有意思的设计点:Mano-P 既是一个独立的 Agent(能自主完成 GUI 任务),它的核心能力又被封装为 Skill 供其他 Agent 调用。这意味着一个更上层的 Agent 可以把“操控桌面 GUI”作为自己的一项 Skill 来使用,不用关心底层是怎么实现的。
在 OSWorld 基准测试中,Mano-P 在专有模型类别排名第一,准确率 58.2%。本地运行,数据不出设备。
硬件要求:Apple M4 + 32GB RAM。安装方式:
brew tap Mininglamp-AI/tap && brew install mano-cua
开源协议 Apache 2.0。
