Day 46 / 共 68 天 · 阶段 8 多智能体
协作协议:MCP / A2A / ACP 各管什么
昨天(Day 45)讲了 Agent 之间"怎么配合"(交接 vs 子代理当工具)。今天补上另一半:它们"用什么规矩沟通"。三个高频缩写——MCP 管"Agent 怎么接外部工具"、A2A 管"Agent 和 Agent 怎么对话"、ACP 是另一种 Agent 通信约定。用"插座标准 + 说普通话"的类比一次分清。明天(Day 47)讲最经典的主管-专家协作结构。
📍 你在阶段 8(多智能体 D45-48)的位置
D45 协作模式→
D46 协作协议→
D47 主管-专家→
D48 多智能体实战
💡 用一个类比兜住今天(今天全程沿用「跨国团队要统一标准」的世界观)
协议 = 大家约定好的"通用标准",省得两两对接都重造一遍。MCP = 标准插座/USB 接口:任何电器(工具/数据源)只要做成这个口,任何 Agent 都能插上用;A2A = 公司之间的"公文/普通话":不同厂家造的 Agent 也能互相发任务、报进度;ACP = 另一套"对讲机频道约定",同样解决 Agent 间怎么收发消息。没有标准时,每接一个新东西都要单独写适配,累死;有了标准,插上就通。
L01
为什么需要"协议"这种东西
🤔 痛点我的 Agent 想连数据库、连日历、连搜索……每接一个都要专门写一段"适配代码"。换个 Agent、换个工具,又得重写。N 个 Agent × M 个工具 = 要写 N×M 套对接,噩梦。
💡 本质协议就是"事先约好的统一格式",把 N×M 的对接量降成 N+M。就像全世界统一了 USB 接口:手机、鼠标、硬盘只管做成 USB,电脑只管留个 USB 口,不用为每个设备造专属插孔。协议解决的核心是"互通"与"复用"。
图注:左边每加一个点,连线数暴涨;右边所有点只接一个中心标准,加东西很轻松。
👶 "协议"到底是个啥实体?它不是一段软件,而是一份约定文档:规定"消息长什么样、字段叫什么、怎么发怎么收"。大家都照这份文档实现,就能互通。就像"普通话"不是某个人,而是一套大家都认的发音规则。
L02
MCP:让 Agent 统一地"接外部工具/数据"
🤔 痛点每个 Agent 想用"查数据库""读文件""调搜索",都得各写各的接法。有没有一个统一标准,让工具做一次、所有 Agent 都能用?
💡 本质MCP(Model Context Protocol)= Agent 世界的 USB 接口标准(Day 31 学过)。它规定:工具/数据源做成一个 MCP Server,Agent 端做 MCP Client,两边按协议说话。工具方做一次,任何支持 MCP 的 Agent 都能即插即用。解决的是"Agent ↔ 工具/资源"这条竖线。
// MCP 里,一个工具会这样"自我介绍"(示意,实际字段更细)
{
"name": "query_database",
"description": "按 SQL 查询公司数据库并返回结果",
"inputSchema": { // 告诉 Agent:调我要传什么
"type": "object",
"properties": { "sql": { "type": "string" } },
"required": ["sql"]
}
}
// Agent 一读这份"说明书",就知道这个工具能干嘛、怎么调——不用你写死适配
🔗 想看 MCP 在真实工具里怎么落地?去看《Claude Code 源码精讲》→
一句话记住:MCP 管的是"Agent 怎么接工具和数据"——纵向的"人—设备"连接。它不负责两个 Agent 之间怎么对话,那是下面 A2A 的活。
L03
A2A:让 Agent 和 Agent 直接"对话"
🤔 痛点MCP 解决了"Agent 用工具",但现实里常常是一个 Agent 想请另一个 Agent 帮忙——而且这两个 Agent 可能是不同公司、不同框架造的。它们怎么互相听懂?
💡 本质A2A(Agent-to-Agent)= Agent 之间的"普通话 + 公文格式"。它规定 Agent 怎么互相发任务、报告进度、返回结果,让"甲公司的 Agent"能把活派给"乙公司的 Agent",哪怕它俩底层技术完全不同。解决的是"Agent ↔ Agent"这条横线。
图注:记这张图就够——MCP 是"Agent 往下接工具",A2A 是"Agent 之间横向对话"。
📝 举个例子:跨团队的 Agent 协作
你公司的"差旅助理 Agent"要订机票,它通过 A2A 把"帮我订 7 月 9 号北京飞上海"这个任务,发给航司提供的"订票 Agent"。两个 Agent 可能一个用 Python 一个用 Go、分属两家公司,但都讲 A2A 这门"普通话",就能对上话。
L04
ACP:另一套 Agent 通信约定
🤔 痛点既然有了 A2A,为什么还冒出个 ACP?是不是重复造轮子?
💡 本质ACP(Agent Communication Protocol)也是一类规范"Agent 之间如何收发消息"的协议,和 A2A 目标相近——都想让 Agent 互通。它俩的关系类似"两套都想当行业标准的对讲机频道约定":大方向一致,细节和主推方不同。这个领域还很新,标准仍在竞争、演化中。
👶 小白:A2A、ACP 我到底要记多细?会不会考?
👨🏫 老师:别陷进缩写细节——这是 2024 年后才热起来的新领域,标准还在打架,明年可能又变。你只要记住两层结论:① 有一类协议管"Agent 接工具"(代表是 MCP,最成熟);② 有一类协议管"Agent 之间对话"(A2A、ACP 都属于这类,还在竞争)。面试能说清"这两类分别解决什么、为什么需要标准",就远超大多数人了。抓住分类,别背单词。
👶 为什么会同时冒出好几个标准?技术早期常这样:大家都觉得"该有个标准",于是不同厂商各推一个,一段时间后市场会"收敛"到一两个胜出(就像当年录像带的格式之争)。所以现在不必赌哪个赢,理解它们要解决的问题即可。
L05
三者对比与分工:一张表看懂
💡 本质把三个缩写按"解决哪条连接"归位,一下就不混了。
| 协议 | 解决的连接 | 类比 | 成熟度 |
|---|---|---|---|
| MCP | Agent ↔ 工具/数据(竖线) | USB / 标准插座 | 较成熟、生态活跃 |
| A2A | Agent ↔ Agent(横线) | 跨公司的普通话/公文 | 较新、成长中 |
| ACP | Agent ↔ Agent(横线) | 另一套对讲机频道约定 | 较新、竞争中 |
📝 举个例子:一个系统里三者同框
做一个"企业智能助理":主 Agent 通过 MCP 接上公司数据库和日历(竖线取数据);遇到订差旅时,通过 A2A 把任务发给外部航司的 Agent(横线协作)。MCP 管"我自己用工具",A2A 管"我和别的 Agent 打交道"——各司其职,不冲突。
一句话收束:MCP 竖着接工具,A2A/ACP 横着连 Agent。把这句刻进脑子,今天就没白学。
L06
现状与选择建议(转行者别踩坑)
🤔 痛点作为新人,我现在该花时间学哪个?会不会学完就过时?
💡 本质优先级很清楚:先把 MCP 弄懂弄熟(最成熟、最可能直接用到、面试最常问),Agent 间协议(A2A/ACP)了解概念即可,等你真要做"跨系统 Agent 协作"时再深入——那时标准也更清晰了。
| 阶段 | 建议 |
|---|---|
| 现在(转行/找第一份工作) | 吃透 MCP(会接一个工具就够亮眼);A2A/ACP 知道是啥、解决什么即可 |
| 做真实多系统项目时 | 再按当时主流标准深入,别提前押注 |
心态提示:新领域里,"看懂趋势"比"背全细节"更重要。协议会更迭,但"为什么需要标准、标准分几类"这套判断力不会过时——这正是资深工程师和新手的差距所在。
L07
今日小结 + 动手 10 分钟
🧠 今天你应该能回答
- 为什么需要"协议"?它把 N×M 的对接变成了什么?
- MCP 解决哪条连接?用什么类比记?(USB/插座,Agent 接工具)
- A2A 解决哪条连接?和 MCP 的区别是"竖"还是"横"?
- ACP 和 A2A 是什么关系?这个领域现在处于什么状态?
- 作为转行者,三者里你该优先学哪个?为什么?
✋ 动手 10 分钟:给一个工具写"MCP 风格说明书"
MCP 的灵魂是"工具自带一份机器能读懂的说明书"。不接真服务,先练"把一个工具描述成结构化 schema"的手感:
import json
# 想象你要把"查天气"这个能力,做成一个能被任何 Agent 即插即用的工具
# 关键:把"叫什么、干什么、要传什么参数"写成结构化说明书
weather_tool = {
"name": "get_weather",
"description": "查询指定城市今天的天气",
"inputSchema": { # 告诉 Agent 调用时要传什么
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名,如 北京"}
},
"required": ["city"], # city 必须传
},
}
# 打印出来看看——任何懂 MCP 的 Agent 读到这份 JSON,就知道怎么调你
print(json.dumps(weather_tool, ensure_ascii=False, indent=2))
# 练习:再给"发邮件 send_email"写一份(参数:to、subject、body)
# 体会:写清楚 schema,就是 MCP 让工具"即插即用"的秘诀
明日预告 · Day 47:协议讲完,明天回到"怎么组织一支 Agent 团队"最经典的答案——主管-专家模式(supervisor + specialist + critic):一个主管分派任务、专家去取证干活、审查员(critic)把关防幻觉。这是可信 Agent 系统的骨架,也是本课后半程反复出现的主角,我会带你去看真实项目怎么落地。