这两年聊 Agent,名词越堆越多:function calling、plugin、Skill、MCP、A2A、context engineering、harness……很多人——包括不少从业者——把它们放在一个层面上讨论,于是经常出现"MCP 和 Skill 到底啥区别""有了 MCP 还要 A2A 干嘛"这类问题。
其实这些概念不在一个层 。把它们按"从底层能力到上层编排"摞起来,关系一下就清楚了。这篇按栈分层捋一遍,顺带说几个 2026 年正热的争论。 下面逐层说。 最底层是tool use(函数调用) :模型不再只吐文字,而是按结构化格式输出"我要调用哪个函数、参数是什么",由外部执行后把结果喂回去。这是 Agent 能"动手"的最小单元。后面所有花活,本质都是把 function calling 组织得更好用。 光有 function calling 还不够:每次都要把"这类活该怎么干"重新喂给模型,太低效。于是有了能力封装 。 关键区别:plugin/Skill 解决的是"把知识和流程打包 ",不规定"怎么连到外部系统"——那是下一层 MCP 的事。 MCP(Model Context Protocol)是 Anthropic 2024 年底提出的开放协议,用一套标准 client-server 接法,统一"Agent ↔ 外部工具/数据"的连接,取代过去一对一的碎片化集成——所以常被叫做 “AI 的 USB-C ”。 它的采用速度很猛:到 2025 年 11 月一周年时,MCP 已有月 9700 万+ SDK 下载、1 万+ 部署的 server,OpenAI、Google DeepMind、微软、AWS 都接了。一句话定位:MCP 管的是"一个 Agent 怎么用工具",给它装上"手"。 2026 年 1 月的MCP Apps 让 Skill 和 MCP 边界开始模糊——Skill 可以触发由 MCP server 提供的富 UI。这也是为什么很多人把两者搞混:它们确实在互相靠拢,但分工没变(Skill 教"流程",MCP 管"连接")。 单个 Agent 再强也有边界,于是有了多智能体,也就需要一套 Agent 之间的"通信协议"——A2A(Agent2Agent) ,Google 2025 年 4 月发布,2026 年进入 Linux 基金会、出了 v1.0。 A2A 的核心数据模型包括AgentCard / Task / Message / Artifact等。其中Agent Card 是放在一个 well-known URL 上的 JSON,对外声明这个 Agent 的身份、能干哪些 skill、任务提交端点、支持的输入输出模态、鉴权方式等——相当于 Agent 的"名片 + API 说明书"。 MCP 和 A2A 不是竞品,是搭档:一个 orchestrator 用A2A把子任务派给各个 subagent,每个 subagent 再用MCP 去调自己需要的工具。MCP 给"手",A2A 给"团队协作"。 有了能力和协议,还得决定怎么组织执行,这层最经典的争论是workflow vs agent : Anthropic 那篇《Building Effective Agents》的核心建议就是:别一上来就上 agent ,能用 workflow 解决的就别引入自主性——复杂度和不可控性是有代价的。subagent、planner-executor、orchestrator 都是这一层的编排模式。 模型再强,喂错了信息、放任它乱跑也白搭。这层在 2026 年话题度最高,可以串成一个演进: 一句话:上层拼的不再是模型本身,而是你给它搭的那套"环境 + 约束" 。 把上面这套落到一个具体场景:你想让自己的 Agent 会出图、出视频 。按分层来拆—— 这样你不用自己从零写 submit/poll 逻辑,用一个 Skill 把"出图出视频"这件事变成 Agent 的一个原子能力 ——这正是 L2 能力封装存在的意义。 名词会继续分化,但分层这个思路 不会过时:遇到一个新概念,先问它落在哪一层(原语 / 封装 / 连接 / 协作 / 编排 / 约束),关系自然就理顺了。 你现在的 Agent 项目卡在哪一层?评论区聊聊,下篇可以挑一层往深里写。一张分层速查表
层 概念 解决什么 代表 L1 原语 tool use / function calling 让模型能"调用一个外部能力" OpenAI function calling 等 L2 能力封装 plugin /Skill 把"怎么做某类活"打包成可复用单元 Anthropic Agent Skills(SKILL.md) L3 工具连接协议 MCP 标准化"Agent ↔ 工具/数据"的接法 Model Context Protocol L4 智能体协作协议 A2A 标准化"Agent ↔ Agent"的协作 Agent2Agent L5 编排 workflow / multi-agent / subagent 决定"谁先谁后、谁调谁" planner-executor、orchestrator L6 喂养与约束 Context / Harness Engineering 给 Agent 喂对的信息、framed 住它的行为 RAG、memory、guardrails、eval L1 原语:function calling —— 一切的起点
L2 能力封装:plugin 与 Skill —— 把"怎么做"打包
SKILL.md——用 YAML 元数据 + Markdown 指令 + 可选脚本,把"做某类任务的完整流程"写死。请求一旦命中,Agent自动按需加载这套指令,不用用户每次重新解释。L3 MCP:给单个 Agent 一双标准化的"手"
L4 A2A:让多个 Agent 之间能协作
L5 编排:workflow 还是 agent?
L6 喂养与约束:从 Context 到 Harness Engineering
几个最容易搞混的点
落地:给你的 Agent 接一个"出图出视频"能力
imini-generate(一个标准SKILL.md),把"文生图 / 参考图编辑 / 文生视频 / 首尾帧"的完整流程打包好,放进 Agent 的 skills 目录,命中即自动加载;小结