14. MCP 和 Agent Skill 的区别是什么?
14. MCP 和 Agent Skill 的区别是什么?
👔面试官:MCP 和 Agent Skill 有什么区别?
🙋♂️我:它们都是描述 Agent 能做什么的,MCP 是用工具列表来描述,Skill 是用能力标签来描述,本质上差不多,只是格式不同。
👔面试官:「本质上差不多」?那你觉得为什么 AI 社区要搞两套协议,MCP 和 A2A 各管各的?如果它们真的差不多,一套不就够了?
🙋♂️我:嗯……可能是因为作用对象不同?MCP 是给模型看的,Skill 是给其他 Agent 看的?但具体怎么分工我不太确定。
👔面试官:方向对了一半,但你还是没抓住核心。MCP 是 Agent 和工具之间的纵向连接,解决的是「Agent 怎么用工具」;Skill 是 Agent 和 Agent 之间的横向协作接口,解决的是「任务怎么路由给对的 Agent」。一个是 Agent 的「手臂」,一个是 Agent 的「简历」,层次完全不同。你去把两者的作用方向、粒度差异、在系统里各自解决什么问题搞清楚。
好,这段对话的误区很有代表性,很多人把 MCP 和 Skill 当成同类概念去对比。下面我把两者各自的定位和分工拆开讲清楚。
💡 简要回答
MCP 和 Agent Skill 是完全不同层次的概念,不是竞争关系。MCP 解决的是「单个 Agent 怎么用工具」,是 Agent 内部的纵向连接,Agent 通过 MCP 连数据库、调 API、操作文件,模型直接触发这些操作。Skill 是 A2A 协议里 Agent 对外的能力声明,解决的是「多个 Agent 之间怎么分工」,是 Agent 之间的横向协作接口,调度 Agent 看各专业 Agent 声明的 Skill,决定把任务路由给谁。简单记:MCP 是 Agent 的「手臂」,让它能做事;Skill 是 Agent 的「简历」,让其他 Agent 知道它能做什么事。在复杂的多 Agent 系统里,两者往往同时存在:Agent 对外声明 Skill 承接任务,内部用 MCP 连工具来完成任务。
📝 详细解析
从定位说起:两者解决的不是同一个问题
很多人第一次看到这两个概念会觉得它们都是「描述 Agent 能做什么」,但仔细看会发现两者的目的、对象和工作层次完全不同。

MCP 是「Agent 和工具之间」的协议,解决的是 Agent 怎么获得外部能力,比如查数据库、调 API、操作文件系统,它的作用方向是向下的,从 Agent 指向工具。而 Skill 是「Agent 和 Agent 之间」的接口,解决的是调度 Agent 怎么知道某个专业 Agent 能承接哪类任务,它的作用方向是横向的,发生在多个 Agent 之间。简单来说,一个是纵向连工具,一个是横向连 Agent,这就是两者最本质的区别。
MCP:让 Agent 有「手」
理解了两者的定位差异,咱们分别展开看看。先说 MCP,为什么说它是 Agent 的「手」?因为如果没有 MCP,Agent 就只会「说话」,不会「做事」。MCP Server 暴露的 Tools、Resources、Prompts 就是 Agent 使用外部能力的手段,模型通过 Function Calling 触发这些工具,工具执行完把结果喂回对话。你可以把 MCP 理解成给 Agent 装上了一双手,让它能够真正去操作外部世界,查数据库、读文件、调 API,而不仅仅是在对话框里跟你聊天。

MCP 的粒度是「原子操作」:read_file(path) 是一个 Tool,query_database(sql) 是一个 Tool,每次调用做一件明确完整的事,执行结果立刻返回。模型能看到每个 Tool 的完整 schema,包括它叫什么名字、接受什么参数、返回什么格式。这种精确的可见性正是模型能准确判断「这个问题该调哪个工具」的基础。
Skill:给 Agent 一张「简历」
Skill 是 Agent 在 A2A 协议里发布的能力声明,写在 Agent Card 里,告诉外界「我擅长做什么类型的任务」。调度 Agent 看到 Skill 列表后,决定把哪类任务委托给哪个专业 Agent。

Skill 的粒度是「任务类别」:「竞品分析」是一个 Skill,「代码审查」是一个 Skill,描述的是 Agent 能承接的工作方向,而不是具体的原子操作。调用方不知道、也不需要知道 Agent 内部用了哪些工具来完成任务,执行过程完全黑盒,只关心最后交付什么结果。这种黑盒设计正是多 Agent 系统能保持松耦合的关键,调度 Agent 换了,专业 Agent 不用改;专业 Agent 内部重构了,调度 Agent 也感知不到。
核心区别对比
搞清楚了 MCP 和 Skill 各自的定位,咱们把它们放在一起对比一下,这样差异会更加一目了然。
| 维度 | MCP(Tools/Resources) | Agent Skill |
|---|---|---|
| 作用层次 | Agent 内部(纵向连工具) | Agent 之间(横向协作) |
| 对象 | 工具服务(数据库、API、文件) | 其他 Agent / 调度 Agent |
| 粒度 | 原子操作(单次函数调用) | 任务类别(一类工作方向) |
| 触发方式 | 模型通过 Function Calling 触发 | A2A Task 委托触发 |
| 内部可见性 | schema 对模型完全可见 | 实现细节对外完全黑盒 |
| 执行时长 | 毫秒级,立刻返回结果 | 可以是分钟级的异步长任务 |
| 所属协议 | MCP | A2A |
两者同时工作的完整场景
看完表格你可能会想,既然两者解决的问题不一样,那它们在真实系统里是怎么配合的?其实在稍微复杂一点的多 Agent 系统里,MCP 和 Skill 几乎一定是同时存在的,各管各的层次。咱们用一个数据分析 Agent 来感受一下。

对外,这个 Agent 在 Agent Card 里声明了自己的 Skill:["数据分析", "趋势预测", "报告生成"],这就是它的「简历」,调度 Agent 看到这些 Skill,就知道数据类的任务应该交给它。对内呢,它的 MCP Client 连着数据库 Server 和 Python 执行器 Server,这就是它的「手」,模型在执行任务时通过 Function Calling 调用这些工具来真正完成数据处理。
整个执行链路串起来就是:调度 Agent 查 Skill -> 发现「数据分析」在这个 Agent 上 -> 通过 A2A 发 Task -> 专业 Agent 接到任务开始执行 -> 模型调用 MCP 工具(查数据库、跑 Python 分析脚本)-> 把结果作为 Task 产出返回给调度 Agent。
你看,Skill 负责「让任务找到对的 Agent」,MCP 负责「让 Agent 真正完成任务」,一个管路由,一个管执行,缺了哪个系统都转不起来。理解了这个分工,再看那些多 Agent 架构图就会清晰很多。
🎯 面试总结
回到开头对话踩的雷,最大的误区就是把 MCP 和 Skill 当成「同一层次的不同实现」来对比。面试回答这道题,第一个必须点明的是两者的作用方向不同:MCP 是纵向的,连接 Agent 和工具,解决的是「Agent 怎么获得外部能力」;Skill 是横向的,连接 Agent 和 Agent,解决的是「任务怎么路由到对的 Agent」。
第二个关键点是粒度差异。MCP 暴露的是原子操作,比如 read_file(path)、query_database(sql),每次调用做一件明确完整的事,schema 对模型完全可见;Skill 描述的是任务类别,比如「竞品分析」「代码审查」,执行过程对外完全黑盒,可以是分钟级的异步长任务。
如果能用「手臂」和「简历」的类比来收尾,会让面试官觉得你理解得很到位:MCP 是 Agent 的手臂,让它能做事;Skill 是 Agent 的简历,让其他 Agent 知道它能做什么事。在复杂的多 Agent 系统里,两者同时存在,各司其职。
对了,AI 工具调用的面试题会在「公众号@小林面试笔记题」持续更新,林友们赶紧关注起来,别错过最新干货哦!

