2025 年,每家公司都在做自己的 AI Agent。2026 年,这些 Agent 开始互相"打电话"了。

一个销售 Agent 需要调用财务 Agent 审查合同风险;客服 Agent 发现用户的问题超出能力范围,需要委派给专家 Agent;用户在填写表单时,Agent 主动推荐最优方案——这些场景已经不是设想,而是真实的系统需求。

问题在于:这些 Agent 来自不同的公司、用不同的框架构建、跑在不同的基础设施上。它们凭什么能互相通信?

协议层。就像 HTTP 让不同公司的网页能互联一样,AI Agent 世界的协议标准正在解决"智能体互联"这个核心问题。

本文系统梳理 2026 年已经生产可用的三大协议:MCP(连接 Agent 与工具)、A2A(连接 Agent 与 Agent)、AG-UI(连接 Agent 与用户界面),以及它们各自的适用边界和组合策略。

为什么需要协议层

在没有协议的时代,AI 应用接入外部工具是这样的:

AI 应用 A → 自定义 GitHub API 封装
AI 应用 B → 另一套 GitHub 封装库
AI 应用 C → 第三个 GitHub 集成方案

N 个应用 × M 个工具 = N×M 套重复封装的集成代码。每个集成都要单独处理认证、数据格式、错误重试、超时逻辑。这不是技术问题,是激励问题——每家公司都在重复造同样的轮子。

AI Agent 协议的出现,把这个问题从 N×M 变成 N+M:

所有 AI 应用 ──→ 标准化协议 ──→ 工具服务端(一次实现,任意调用)

2026 年,协议层的价值已经从"方便"升级为"必须"。当你的 Agent 需要调用其他公司的 Agent 时,没有协议就等于没有互操作性。

MCP:连接 Agent 与工具的事实标准

现状

MCP(Model Context Protocol) 由 Anthropic 在 2024 年 11 月发布,到 2026 年初已成为 AI Agent 工具调用领域的事实标准。根据官方数据,MCP 的月度下载量已超过 97 万次,GitHub 上有超过 500 个公共 MCP Server,覆盖数据库(PostgreSQL、MySQL、SQLite)、云存储(Google Drive、Box、Dropbox)、开发工具(GitHub、Jira、Slack)等常用系统。

Anthropic 的 Claude Code、OpenAI 的 SDK、Microsoft、Google、Amazon 的主流开发平台都已支持 MCP。

架构回顾

MCP 采用经典的客户端-服务端架构:

AI 应用(MCP Host)
    ├── MCP Client(负责协议通信)
    │       ↕(JSON-RPC 2.0 / Stdio 或 SSE/HTTP)
    └── MCP Server(暴露工具能力)
            ├── /tools/list —— 发现可用工具
            ├── /tools/call —— 调用工具
            └── /resources —— 访问数据资源

核心设计哲学是接口标准化:MCP Server 用 JSON Schema 描述自己有什么工具、参数是什么、返回值是什么格式,AI 模型能自动理解并调用,无需定制代码。

2026 年的生产困境

MCP 在快速起步方面表现出色,但在生产环境中暴露了若干痛点。根据 MCP 官方路线图和社区反馈,主要问题集中在以下几个方面:

1. 状态管理缺失

MCP 是无状态协议。每次工具调用都是独立的,服务器不知道上一次调用发生了什么。这意味着如果一个工作流需要多步骤状态追踪(比如"先登录,再查询,再导出"),应用层必须自己实现状态管理。

2. 资源清理不明确

MCP Server 启动后不会自动关闭。当 Agent 完成工作后,没有标准机制告诉 Server 释放资源(比如关闭数据库连接、清理临时文件)。长期运行的 Agent 会逐渐耗尽服务端资源。

3. 认证模型过于简单

MCP 的认证模型只支持 API Key 或无认证。对于企业级场景,需要 OAuth 2.0、mTLS 客户端证书、基于角色的访问控制等能力,目前社区通过自定义扩展实现,缺少标准。

4. 批量操作效率低

每个工具调用都是一个独立的 HTTP 请求。如果一个 Agent 需要依次调用 10 个工具,就是 10 个网络往返,没有批处理或流水线机制。

进化路线

MCP 1.0 稳定版已在 2025 年 10 月发布,2026 年路线图重点解决上述生产问题:

  • 有状态会话(Stateful Sessions):支持在多次调用间保持上下文,减少重复认证和连接建立开销
  • 资源生命周期管理:引入 resources/release 端点,明确资源释放语义
  • 扩展认证框架:在保持向后兼容的前提下,引入 OAuth 2.0 和 mTLS 支持
  • 批量调用提案(Batch Protocol):允许在单个请求中打包多个工具调用,降低网络往返

这些改进的目标是让 MCP 从"好用的开发工具"升级为"生产可用的基础设施"。

A2A:连接 Agent 与 Agent

背景与定位

A2A(Agent-to-Agent Protocol) 由 Google Cloud 在 2025 年 4 月发布,2025 年 6 月移交 Linux Foundation Agentic AI Foundation 治理。2025 年 8 月,IBM 的 ACP(Agent Communication Protocol)与 A2A 合并,ACP 的 RESTful 开发者体验融入了 A2A 的企业特性。

A2A 的设计出发点与 MCP 不同:MCP 解决的是 Agent 如何调用工具,A2A 解决的是 Agent 如何与其他 Agent 协作

两者是正交关系,可以叠加使用:

用户请求
    ↓
调度 Agent(用 A2A 协调其他 Agent)
    ├── 子 Agent A(用 MCP 调用工具)
    ├── 子 Agent B(用 MCP 查询数据库)
    └── 子 Agent C(用 MCP 访问文件系统)

核心概念

A2A 引入了几个关键概念,理解它们是掌握 A2A 的前提:

Agent Card(能力发现)

每个 Agent 发布一个 Agent Card(JSON 文档),描述自己的能力、端点、认证要求和擅长领域。其他 Agent 可以查询这个 Card 来决定是否委派任务,就像服务发现机制。

{
  "name": "Contract Review Agent",
  "endpoint": "https://api.company.com/agents/contract/v1",
  "capabilities": ["legal_review", "risk_scoring", "clause_extraction"],
  "authentication": "oauth2",
  "version": "1.0"
}

Task(任务)

A2A 以任务为基本单位。一个任务有唯一 ID、状态(pending/submitted/working/completed/failed)、输入输出。每个子 Agent 处理任务的某个部分,结果写回共享的任务状态。

Push Notifications(推送通知)

A2A 支持 WebSocket/SSE 推送。当一个 Agent 完成某阶段工作后,主动通知下一个 Agent 开始处理,无需轮询。

与 MCP 的关键区别

维度MCPA2A
解决问题Agent 调用工具Agent 协作编排
架构模式客户端-服务端点对点(Peer-to-Peer)
典型调用请求-响应(单轮)长时任务协作(多轮)
状态管理无状态有状态(任务级)
适用场景查数据库、调 API、读文件多 Agent 分工、委派、协商

AG-UI:连接 Agent 与用户界面

为什么 Agent 需要专门的 UI 协议

传统 Web 应用通过 REST API 与前端通信。这套模式对于 AI Agent 来说有几个根本性的不匹配:

  • 流式输出:LLM 生成内容是 token by token 的过程,REST API 是请求-响应模式,无法实时推送
  • 工具执行可视化:Agent 调用工具时,前端需要感知并渲染工具执行状态(“正在查询数据库……")
  • 主动交互:Agent 在执行过程中可能需要用户补充信息(“请确认:发票抬头是公司全称还是简称?"),但 REST API 无法从服务端主动发起请求
  • 状态同步:用户界面需要实时反映 Agent 的内部状态(已执行步骤、当前思考、剩余计划)

AG-UI(Agent-User Interaction Protocol) 由 CopilotKit 在 2025 年提出,是一个专门解决 Agent 与前端交互的标准协议。2026 年初已获得主要 AI 应用框架的广泛支持。

协议机制

AG-UI 的核心机制建立在 Server-Sent Events(SSE)JSON-RPC 之上:

前端 → Agent(发送用户事件)

用户点击、输入、选择等事件,通过 JSON-RPC 发送到 Agent:

{
  "jsonrpc": "2.0",
  "method": "user_event",
  "params": {
    "type": "button_click",
    "target": "approve_contract",
    "session_id": "sess_abc123"
  }
}

Agent → 前端(推送状态更新)

Agent 内部的思考过程、工具调用状态、最终结果,通过 SSE 推送到前端:

event: tool_start
data: {"tool": "search_database", "args": {"query": "invoice history"}}

event: tool_end
data: {"tool": "search_database", "result": {"count": 42}}

event: thinking
data: {"content": "正在分析发票数据……"}

event: final
data: {"content": "分析完成,发现 3 笔异常交易,建议人工复核。"}

前端根据事件类型渲染不同的 UI 状态:工具执行中显示加载动画,Agent 思考时显示思考气泡,最终结果直接展示。

适用场景

AG-UI 最适合以下场景:

  • 需要用户参与决策的 Agent:Agent 推荐方案,用户确认或修改,Agent 继续执行
  • 长时运行的复杂任务:用户能看到 Agent 工作进度,而不是面对空白等待
  • 工具执行透明度要求高:金融、医疗、法律等高风险场景,用户需要理解 Agent 为什么这么做

三协议协同:实用架构决策

什么时候用哪个

场景:单 Agent 调用外部工具(数据库、API、文件系统)
→ MCP

场景:多 Agent 协作完成复杂任务(分工、委派、结果汇总)
→ MCP + A2A

场景:用户与 Agent 交互(实时状态、流式输出、主动询问)
→ AG-UI

场景:完整的人机交互 + 多 Agent + 工具调用
→ MCP + A2A + AG-UI

典型组合:企业合同审查系统

举一个具体例子说明三个协议如何协同:

用户界面层(AG-UI):用户在网页上提交合同文档,网页通过 AG-UI 与 Agent 通信,实时看到审查进度。

协调层(A2A):主 Agent 将合同审查任务分解为三个子任务,通过 A2A 分发给合同解析 Agent、风险评估 Agent、法律条款 Agent。

工具层(MCP):每个子 Agent 通过 MCP 调用各自的专业工具——合同解析 Agent 用 MCP 连接文档解析服务,风险评估 Agent 用 MCP 查询企业征信数据库,法律条款 Agent 用 MCP 访问法规知识库。

用户界面
    ↕ AG-UI
主协调 Agent
    ↕ A2A
子 Agent A(合同解析)── MCP ──→ 文档解析服务
子 Agent B(风险评估)── MCP ──→ 企业征信数据库
子 Agent C(法律条款)── MCP ──→ 法规知识库

这种分层架构让每层的复杂度独立演进:工具多了就加 MCP Server,协作逻辑复杂了就增强 A2A 编排,用户体验要求高了就优化 AG-UI 交互。

协议竞争格局与风险

Linux Foundation 的角色

值得注意的是,A2A 和 MCP 目前都在 Linux Foundation Agentic AI Foundation 下治理。这是一个积极的信号:主流协议选择开放标准而非私有锁定。

但竞争并未消失:

  • ANP(Agent Network Protocol) 由 W3C 社区推动,走完全去中心化路线(基于 DIDs 和语义发现),目标是大规模互联网级 Agent 网络,目前仍处于早期阶段
  • 各云厂商的私有扩展:AWS、Azure、GCP 都在 MCP 基础上添加了自己的扩展,企业在选择时需要评估厂商锁定风险

选型建议

  1. 优先选择已被主流厂商支持的协议:MCP 和 A2A 已经获得了 Anthropic、Google、Microsoft、OpenAI 的共同支持,生态最成熟
  2. 避免嵌套锁定:如果你的架构需要同时用 MCP 和 A2A,确保你的 Agent 框架(如 LangGraph、AutoGen)能原生支持两者的组合,而不是自己写胶水代码
  3. 关注治理归属:私有协议在短期内功能可能更丰富,但长期来看归属 Linux Foundation 等中立机构的协议更利于生态发展

结语

2026 年的 AI Agent 互联生态,比 2024 年的 LLM 工具调用生态更清晰——不是因为技术更简单,而是因为标准正在收敛。

MCP 解决了 Agent 与工具的互联问题,A2A 解决了 Agent 与 Agent 的协作问题,AG-UI 解决了 Agent 与用户的交互问题。三者各司其职,共同构成了 AI Agent 互联的基础设施栈。

对于开发者而言,这意味着:构建新的 Agent 应用时,不需要从零实现工具调用协议,不需要自己设计多 Agent 通信机制,也不需要发明用户交互模式。你只需要问自己一个问题:我的 Agent 要与什么互联?

答对了,协议选择自然清晰。