智能体协议的关键问题不是“谁会成为唯一标准”,而是先分清协议要解决哪一层边界:MCP 解决 Agent 如何接入工具和上下文,A2A 解决 Agent 如何把任务交给另一个 Agent,ANP 则试图把 Agent 变成可发现、可认证、可协商的网络节点。

如果把这三种协议放在同一个表里比较,很容易得出错误结论。它们都在谈 Agent 互操作,但互操作发生的位置不同:

Agent Runtime
→ Tool / Context Boundary: MCP
→ Agent / Agent Boundary: A2A
→ Open Agent Network Boundary: ANP

这意味着工程选型不能从协议名开始,而要从系统边界开始。你是在让一个 Agent 调用数据库和业务 API,还是让多个 Agent 跨组织协作,还是想建立一个开放的 Agent 网络?答案不同,协议也不同。

为什么智能体需要协议

早期 Agent 系统通常是一个封闭运行时:模型、工具、记忆、计划器和业务逻辑都在同一个框架里。只要系统边界足够小,内部约定就够用了,函数调用、队列、HTTP API 都能工作。

问题出现在 Agent 走向真实工作现场之后。

一个企业可能同时有客服 Agent、销售 Agent、财务 Agent、法务 Agent 和代码 Agent。它们来自不同团队,运行在不同平台,访问不同工具,拥有不同权限。如果每两个 Agent 之间都写一次定制集成,系统会很快变成一张不可维护的网。

协议的价值,就是把一部分重复问题标准化:

  • 能力如何描述?
  • 工具和资源如何暴露?
  • 任务如何发起、跟踪、取消和恢复?
  • 长任务如何流式返回进展?
  • 调用方如何知道对方是谁、能做什么、需要什么权限?
  • 跨系统协作时,哪些内部细节可以隐藏?

但协议也有边界。协议只能定义通信结构和交互约定,不能保证 Agent 的推理正确、工具安全、权限合理,也不能替代业务侧的验证和审计。

MCP:Agent 接入工具和上下文的协议

MCP,全称 Model Context Protocol,是一种让 LLM 应用连接外部工具、数据源和上下文的开放协议。它的核心角色是 Host、Client 和 Server:Host 是 Claude、Cursor、Codex、IDE 或聊天应用;Client 是 Host 内部的连接器;Server 则暴露工具、资源和提示模板。

MCP 的基本思路很直接:不要让每个 AI 应用分别适配 GitHub、数据库、文件系统、Slack、浏览器和内部系统,而是让这些能力通过统一协议暴露出来。模型需要某个能力时,由 Host 通过 MCP Client 调用对应 Server。

典型链路是:

LLM App / Host
→ MCP Client
→ MCP Server
→ Tools / Resources / Prompts

从协议层看,MCP 使用 JSON-RPC 2.0 消息,支持工具、资源、Prompt、进度、取消、日志、权限协商等能力。它最适合解决“一个 Agent 如何使用外部世界”的问题。

优点

  • 生态成熟度高。主流 IDE、Agent 产品和开发工具已经广泛支持 MCP,开发者更容易复用现成 Server。
  • 工具抽象清晰。工具、资源、Prompt 被标准化后,Agent 不需要理解每个系统的私有 API。
  • 接入成本低。对企业内部系统来说,把已有 API 包一层 MCP Server,通常比改造整个 Agent 平台现实。
  • 适合渐进式落地。可以先接一个只读数据源,再逐步开放写操作和高风险动作。

缺点

  • 它不是完整的 Agent-to-Agent 协议。MCP 更偏 Agent-to-Tool,不负责复杂的跨 Agent 任务生命周期。
  • 安全边界容易被低估。MCP Server 暴露的工具可能意味着文件访问、数据库写入、命令执行或外部 API 调用,必须有权限、审计和用户确认。
  • 工具质量决定上限。工具描述不清、返回结果冗长、错误不可诊断,都会让模型误用工具。
  • 它不解决业务语义。MCP 可以告诉模型有一个 create_invoice 工具,但不能自动保证模型理解公司财务规则。

适用场景

  • IDE、数据分析、知识库问答、内部运营后台等需要 Agent 调工具的场景。
  • 企业希望把已有系统能力开放给多个 AI 应用。
  • 单个 Agent 需要访问文件、数据库、API、搜索、浏览器或业务服务。
  • 工具边界清晰、权限可控、结果可验证的任务。

不适合把 MCP 当作所有 Agent 协作的统一答案。它可以让 Agent 变得“有手有眼”,但不天然提供跨 Agent 的任务委托、状态同步和协作治理。

A2A:Agent 之间委托任务和协作的协议

A2A,全称 Agent-to-Agent Protocol,是面向 Agent 间通信和协作的开放协议。它的目标不是让一个 Agent 调工具,而是让一个 Agent 能发现另一个 Agent、理解对方能力、发送任务、接收结果,并在任务执行过程中处理流式更新、状态变化和多轮交互。

A2A 的核心对象包括 Agent Card、Task、Message、Part 和 Artifact。Agent Card 描述一个 Agent 的能力、接口、输入输出模式和安全要求;Task 是持久化的工作单元;Message 是交互载荷;Artifact 是任务产物。

典型链路是:

Client Agent
→ Discover Agent Card
→ Send Message / Start Task
→ Stream Updates / Poll Task
→ Receive Artifact

A2A 的设计重点在长任务和跨边界协作。比如一个采购 Agent 可以把“评估供应商风险”的子任务交给风控 Agent,再把“检查合同条款”的子任务交给法务 Agent。调用方不需要知道风控 Agent 内部用了哪些模型、数据库或工具,只需要根据对方声明的能力和协议结果进行协作。

优点

  • 定位清晰。A2A 直接面对 Agent-to-Agent 协作,而不是把 Agent 简化成工具函数。
  • 支持异步和流式任务。长任务可以通过任务状态、订阅、SSE 或推送机制返回进展。
  • 隐藏内部实现。Agent 可以只暴露能力和结果,不暴露内部提示词、工具链和推理细节。
  • 更适合跨团队、跨平台、跨组织协作。它把 Agent 作为独立服务来对待,而不是某个框架内部的对象。

缺点

  • 协议不能替代信任治理。Agent Card 声明了能力,不等于调用方就应该信任它;身份、权限、合规和审计仍然要单独设计。
  • 语义互操作仍然困难。两个 Agent 都支持 A2A,不代表它们对“风险评估”“完成”“可接受证据”的理解一致。
  • 工程复杂度高于普通 API。任务状态、重试、取消、幂等、版本协商、流式恢复都需要认真实现。
  • 早期生态仍在演进。相比 MCP 的工具接入场景,A2A 的成熟实践更依赖具体行业和平台落地。

适用场景

  • 多 Agent 系统中,Agent 需要互相委托任务,而不是只共享工具。
  • 企业内部不同部门已有独立 Agent,需要通过标准接口协作。
  • 跨供应商、跨云、跨组织的 Agent 服务调用。
  • 长任务、异步任务、多轮任务、需要产物交付和状态追踪的协作流程。

如果你只是想让 Agent 调一个 CRM API,用 MCP 或普通 HTTP API 就够了。如果你希望销售 Agent 把“客户信用检查”作为一个任务交给财务 Agent,并跟踪这个任务的状态、结果和证据,A2A 才开始有价值。

ANP:把 Agent 变成开放网络节点的协议框架

ANP,全称 Agent Network Protocol,目标更大。它不只是定义一次调用或一个任务,而是试图构建“Agentic Web”:让 Agent 像网页、服务和邮箱地址一样,成为开放网络中可发现、可认证、可连接、可协商的节点。

ANP 的协议框架通常被描述为三层:

Identity & Encrypted Communication
→ Meta-Protocol Negotiation
→ Application Protocol Layer

第一层关注身份和安全通信,使用 DID 等机制解决跨平台身份认证和端到端加密。第二层关注元协议协商,让 Agent 能用更灵活的方式协商具体通信协议。第三层关注应用层描述、发现和调用,例如 Agent Description Protocol、Agent Discovery Protocol 等。

ANP 试图解决的问题是:如果未来互联网上有大量个人 Agent、企业 Agent、服务 Agent 和数据 Agent,它们如何像今天的网站一样被发现,又如何比今天的网站更适合机器理解和自动协作?

优点

  • 视野覆盖“网络层”的问题。ANP 关注身份、发现、描述、协商和安全通信,不只是一次任务调用。
  • 去中心化倾向更强。基于 DID 的身份设计适合开放网络,而不是只适合单一平台目录。
  • 重视机器可读描述。通过 Agent 描述和发现协议,ANP 希望减少 Agent 模拟人类浏览网页的成本。
  • 适合长期 Agentic Web 想象。它把 Agent 当作互联网新节点,而不是应用里的一个功能模块。

缺点

  • 成熟度和采用度仍然有限。ANP 规范处在活跃开发中,生态规模和生产案例都不能和 MCP 相提并论。
  • 实现门槛更高。DID、加密通信、元协议协商、语义描述和发现机制会引入额外复杂度。
  • 短期收益不一定明显。大多数企业内部 Agent 协作,先用 MCP、A2A 或普通 API 就能解决主要问题。
  • 标准竞争和收敛仍未完成。开放 Agent 网络到底采用哪套身份、发现和目录机制,还需要更长时间验证。

适用场景

  • 研究 Agentic Web、开放 Agent 网络和去中心化 Agent 身份。
  • 需要跨平台身份认证、Agent 发现和机器可读能力描述的原型系统。
  • 希望让 Agent 在开放网络中发布能力,而不是只服务单个企业内部运行时。
  • 对未来协议方向做技术储备,而不是追求立刻获得稳定生产收益。

ANP 的价值在于提出了更完整的网络想象,但它更适合被看作中长期基础设施候选,而不是今天所有团队都应该立即采用的默认协议。

三者如何对比

维度 MCP A2A ANP
核心问题 Agent 如何接工具和上下文 Agent 如何和另一个 Agent 协作 Agent 如何成为开放网络节点
主要边界 Agent-to-Tool Agent-to-Agent Agent Network
核心对象 Tools、Resources、Prompts Agent Card、Task、Message、Artifact DID、Agent Description、Discovery、Meta-Protocol
典型通信 JSON-RPC 2.0 JSON-RPC / HTTP、SSE、gRPC、HTTP+JSON DID 身份、加密通信、描述与发现协议
成熟度 较高,工具生态发展快 快速成熟,适合多 Agent 协作 较早期,偏开放网络愿景
最适合 工具接入、上下文接入、AI 应用集成 任务委托、跨 Agent 协作、长任务状态跟踪 去中心化发现、身份、开放 Agent 网络
最大风险 工具安全和权限失控 信任治理和语义不一致 生态成熟度和实现复杂度

最重要的判断是:MCP 和 A2A 很可能会在同一个系统里共存,而不是二选一。A2A 负责 Agent 之间的任务边界,MCP 负责每个 Agent 内部连接工具和数据源。

一个更合理的组合是:

User
→ Orchestrator Agent
→ A2A: Domain Agent
→ MCP: Tools / Data / APIs

比如用户让企业助手完成一次供应商准入:

Enterprise Assistant
→ A2A: Procurement Agent
→ A2A: Risk Agent
→ A2A: Legal Agent
→ MCP: ERP / Contract DB / Search / Email

在这条链路里,A2A 解决“哪个 Agent 接任务、任务状态如何返回、产物如何交付”;MCP 解决“每个 Agent 如何访问自己的业务系统”;ANP 如果参与,通常是在更外层解决开放网络中的身份、发现和连接问题。

选型建议

如果你在做一个具体产品,不要从“支持所有协议”开始。更好的顺序是:

Task Boundary
→ Trust Boundary
→ Tool Boundary
→ Protocol Choice

第一,先看任务边界。如果任务只在一个 Agent 内完成,优先考虑 MCP 或普通工具调用。如果任务天然要委托给另一个独立 Agent,再考虑 A2A。

第二,看信任边界。如果所有能力都在同一个团队、同一个 VPC、同一套权限系统内,协议复杂度可以低一些。如果跨组织、跨供应商、跨账号,就必须把认证、授权、审计和可撤销能力放到设计中心。

第三,看工具边界。如果主要难点是让 Agent 访问业务系统,MCP 是更直接的路径。如果主要难点是多个 Agent 的任务协作,A2A 更合适。

第四,看开放网络诉求。如果你只是在企业内部做 Agent 编排,ANP 可能过早。如果你关心开放 Agent 目录、去中心化身份和跨平台发现,ANP 值得跟踪和实验。

一个保守但实用的路线是:

  • 第一阶段:用 MCP 接入内部工具和数据,让单个 Agent 能完成可验证任务。
  • 第二阶段:把稳定的领域 Agent 服务化,用 A2A 暴露能力和任务接口。
  • 第三阶段:当系统需要开放发现、跨平台身份和外部 Agent 接入时,再评估 ANP 这类网络层协议。

协议解决不了什么

智能体协议容易让人产生一种错觉:只要协议统一,Agent 就能自然协作。实际不是。

协议不会自动解决四类问题。

第一是语义问题。两个 Agent 都能发送 Task,不代表它们对任务完成标准有相同理解。业务语义仍然需要 Schema、领域词表、验收条件和测试用例。

第二是信任问题。一个 Agent 声称自己能做法务审查,不代表它真的可靠。跨 Agent 协作必须设计身份、权限、信誉、日志和人工确认。

第三是验证问题。Agent 返回了 Artifact,不代表结果正确。关键任务仍然要绑定测试、规则引擎、人工复核或可审计证据。

第四是运行时问题。重试、幂等、超时、取消、状态恢复、成本控制、限流和故障隔离都不是协议名能直接带来的,需要工程系统承接。

所以更稳妥的表达是:协议降低了连接成本,但不降低系统设计责任。

结论

A2A、MCP 和 ANP 代表了智能体互操作的三个层次。MCP 是今天最实用的工具和上下文接入层;A2A 是多 Agent 协作正在形成的任务通信层;ANP 则把问题推进到开放 Agent 网络、身份和发现层。

真正的选型不是押注某个名字,而是画清楚边界:

需要工具接入,用 MCP。
需要 Agent 间任务协作,看 A2A。
需要开放网络身份和发现,跟踪 ANP。

对大多数团队,最现实的起点不是搭一个宏大的 Agent 网络,而是先把一个 Agent 的工具边界、权限边界和验证边界做好。等单个 Agent 能稳定完成任务,再把它包装成可协作的 Agent 服务,协议才会从概念变成基础设施。

参考资料