A2A 和 MCP 不是对手,而是你 AI 架构的左右手
你好,我是提米哥,TMDM.cn 的首席选品官,专治开发者“选型焦虑症”。今天不聊模型参数、不比推理速度——我们直击 2026 年真实生产环境里最常被问爆的一个问题:
“该用 A2A 还是 MCP?”
先说结论(省得你划到最后一行):
❌ 这根本不是二选一;
✅ 它们是同一套系统里的两个不同工种——一个负责“动手”,一个负责“开会”。
下面用大白话拆给你看,连刚学完 Python print("Hello") 的同学都能听懂👇
🧱 先记住这个比喻:建一栋智能办公楼
-
MCP(Model Context Protocol) = 每个办公室的门把手 + 插座 + 网线口
→ 让 agent 能安全、标准地打开数据库、调用 API、读代码仓库、查文档、触发 CI 流水线……
→ 它解决的是:“我怎么够得着这个工具/数据?” -
A2A(Agent2Agent) = 办公楼里的内部电话系统 + 会议室预约平台 + 工单转交流程
→ 让规划 agent 把任务分给编码 agent,让合规 agent 主动拦下高风险操作,让外部合作方的 agent 接入你的工作流……
→ 它解决的是:“我和另一个有脑子、有权限、有状态的 agent,怎么好好说话、分工协作?”
👉 所以——
把 A2A 当成“万能插线板”? ❌
→ 你会逼一个数据库“假装自己是个会谈判的同事”,结果它连心跳都回不了。
把 MCP 当成“跨部门通讯录”? ❌
→ 你会让法律审查 agent 只能返回 JSON 字符串,没法中途发个“需人工加签”提醒,也没法流式返回审查意见草稿。
🛠️ 它们长啥样?看两段最简代码(真实协议交互片段)
✅ MCP 示例:让 agent 安全调用一个内部搜索 API
// MCP 客户端向服务器发起一次「资源查询」请求(JSON-RPC 格式)
{
"jsonrpc": "2.0",
"id": 42,
"method": "search_resources",
"params": {
"query": "PCI-DSS compliance checklist",
"limit": 5
}
}
// 👇 服务端返回结构化结果(不是 HTML 页面,不是乱序文本,是可编程解析的)
{
"jsonrpc": "2.0",
"id": 42,
"result": [
{
"id": "doc-789",
"title": "PCI-DSS v4.1 Checklist (Internal)",
"url": "https://docs.internal/pci-checklist",
"score": 0.92
}
]
}
// 中文注释:MCP 强制约定输入/输出格式,就像快递面单——不管谁发货、谁收货,单子长得一样,系统自动分拣。
✅ A2A 示例:规划 agent 把“写测试用例”任务委派给编码 agent
// A2A 发起一次带上下文的任务委托(含目标、约束、回调地址)
{
"protocol": "a2a/1.0",
"task_id": "t-2026-abc123",
"from": "planner@nautilus.corp",
"to": "coder@nautilus.corp",
"intent": "generate_unit_tests",
"payload": {
"function_name": "calculate_discount",
"language": "python",
"coverage_target": "line:90%, branch:80%"
},
"callbacks": {
"on_progress": "https://orchestrator/callback/progress",
"on_complete": "https://orchestrator/callback/done"
}
}
// 中文注释:A2A 不要求对方立刻执行,而是支持协商、流式反馈、中断重试——像人和人交办工作,不是函数调用。
🧩 那到底什么时候用哪个?三句话决策指南
- ✅ 用 MCP:当你在连 没有脑子的系统 —— 数据库、API、Git 仓库、Jira、密钥管理器、监控大盘……
- ✅ 用 A2A:当你在连 有脑子的伙伴 —— 规划 agent、法务 agent、外部厂商 agent、你自己写的另一个 specialist agent……
- ✅ 用 两者一起:当你的系统既需要“干活”(MCP),又需要“组队”(A2A)——比如:
用户说“上线新支付功能”,
→ 规划 agent(A2A 发起)叫来编码 agent + 合规 agent + 测试 agent;
→ 每个 agent 内部再用 MCP 去查文档、跑单元测试、读配置中心……
🚨 别踩坑:这 3 个常见错误,90% 的团队都栽过
- ❌ 把所有远程服务都包装成 MCP “工具”——结果数据库要“协商超时”,Git 仓库要“确认 commit 权限”,系统越来越假、越来越脆。
- ❌ 把所有内部模块都升级成 A2A “agent”——结果一个日志收集器也要发心跳、注册能力、维护会话状态,运维成本翻倍。
- ❌ 在协议层混入治理逻辑——比如让 MCP 协议自己做审批、让 A2A 自己管审计日志。错!治理必须独立成层(见下文)。
🧱 真实企业级架构长这样(极简版)
-
顶层:用户入口 & 业务编排器
→ 管会话、管目标、管 UX、管最终交付。 -
中间层:专业 agent 天团
- 规划 agent(拆解目标)
- 编码 agent(写代码)
- 合规 agent(卡红线)
- 检索 agent(找知识)
-
……(可插拔,按需增减)
-
协作层(A2A)
→ 让上面这些 agent 彼此发现、委托、同步、交接成果。 -
执行层(MCP)
→ 让每个 agent 自己去连数据库、调 API、读代码、发工单——不用操心别人怎么连。 -
兜底层(Governance)
→ 统一鉴权、全链路追踪、操作留痕、速率限制、高危动作人工弹窗审批。
→ 这一层不依赖 A2A 或 MCP,它 wrap 在整个栈外面。
💡 记住一句口诀:
MCP 给 agent 发工具箱,A2A 给 agent 发工牌。
工具箱里装锤子螺丝刀(数据库/API),工牌上写姓名部门权限(agent 身份/能力/边界)。
🔮 为什么现在就必须搞懂?
Gartner 2025 年 8 月预测:
到 2026 年底,40% 的企业应用将内置任务型 AI agent(2025 年还不到 5%)。
这意味着——
你不会再只做一个“AI 助手插件”,而是要建一支“agent 工程队”。
而队伍能不能协作、工具能不能复用、系统能不能审计、故障能不能定位……
全取决于你有没有在第一天就分清:
🔹 哪些是“手”(MCP),
🔹 哪些是“队友”(A2A),
🔹 哪些是“HR+IT+法务”(Governance)。
直达网址:https://modelcontextprotocol.io/specification/2025-06-18
