2026年6月25日,Linux Foundation Agentic AI Foundation 正式发布了 MCP + A2A 融合草案。说实话,这个时间点选得挺有意思——正好赶在 WAIC 2026 开幕前一个月,等于是给整个行业递了一张"标准化路线图"。

如果你一直在关注 AI Agent 领域,应该对这个消息不意外。MCP(Model Context Protocol)和 A2A(Agent-to-Agent)这两个协议,一个管 Agent 和工具之间的通信,一个管 Agent 和 Agent 之间的通信。过去半年,这两个协议各自发展,社区里也一直在讨论"到底选哪个"。现在 Linux Foundation 一句话把这事儿定了调:不是二选一,是互补。


先搞清楚 MCP 和 A2A 分别解决什么问题

MCP 最早由 Anthropic 提出,解决的是 Agent 和外部工具之间的标准化连接问题。简单说,以前你要让 Agent 调用一个 API、查一个数据库、读一个文件,每种工具都要单独写适配代码。MCP 定义了一套统一的协议,Agent 只需要实现 MCP Client,工具提供方只需要实现 MCP Server,两边就能自动对接。

用过的都懂,这就好比 USB 接口出现之前,每个外设都有自己的接口标准,键盘是 PS/2、鼠标是串口、打印机是并口——乱得一塌糊涂。MCP 就是 AI Agent 世界的 USB 标准。

A2A 则是 Google 主推的,解决的是 Agent 之间的通信和协作问题。当你有多个 Agent 需要协同工作——比如一个 Agent 负责搜索信息、一个 Agent 负责分析数据、一个 Agent 负责写报告——它们之间怎么传递任务、怎么协商优先级、怎么处理冲突?A2A 就是干这个的。

下面这张图把两者的分工画得很清楚:

A2A域

MCP域

MCP

MCP

MCP

MCP

MCP

A2A 任务委派

A2A 结果同步

A2A 协商

Agent A

数据库工具

API工具

文件系统

Agent B

搜索工具

代码执行器

Agent C

说白了,MCP 管的是"Agent 怎么用工具",A2A 管的是"Agent 之间怎么聊天"。两者不是竞争关系,而是解决不同层面的问题。


融合草案到底定了什么

Linux Foundation 这次的融合草案,核心做了三件事:

第一,明确了协议边界。 MCP 和 A2A 不再各自为政,而是有了明确的分工定义。MCP 负责 Agent ↔ Tool 的通信,A2A 负责 Agent ↔ Agent 的通信。社区不用再纠结"选哪个"了,两个都要用。

第二,统一了治理框架。 两个协议都放在 Linux Foundation 旗下管理,这意味着它们会共享相同的版本迭代节奏、安全审计标准、社区治理规则。对开发者来说,不用再担心"今天学了这个协议,明天它被另一个协议替代了"。

第三,定义了互通接口。 融合草案里最关键的是一套"桥接规范"——当 Agent A 通过 MCP 调用了一个工具,产生的中间结果需要传递给 Agent B 时,怎么通过 A2A 把这个结果传过去?草案定义了一套标准的序列化格式和传递机制。

用代码来直观感受一下这个桥接过程:

import json
from dataclasses import dataclass, asdict
from typing import Any

@dataclass
class MCPToolResult:
    """MCP 工具调用结果"""
    tool_name: str
    result: Any
    error: str | None = None

@dataclass
class A2ATask:
    """A2A 任务定义"""
    task_id: str
    from_agent: str
    to_agent: str
    payload: dict
    priority: int = 1

class MCP2A2ABridge:
    """
    MCP → A2A 桥接器
    将 MCP 工具调用结果封装为 A2A 任务消息
    """
    
    def __init__(self, agent_id: str):
        self.agent_id = agent_id
        self.task_counter = 0
    
    def wrap_tool_result(self, mcp_result: MCPToolResult, 
                         target_agent: str) -> A2ATask:
        """将 MCP 结果包装为 A2A 任务"""
        self.task_counter += 1
        
        # 构建 A2A 消息体,附带 MCP 调用上下文
        payload = {
            "source": "mcp_bridge",
            "tool_name": mcp_result.tool_name,
            "tool_result": mcp_result.result,
            "mcp_call_id": f"{self.agent_id}_mcp_{self.task_counter}",
            "timestamp": "2026-07-22T10:00:00Z"
        }
        
        return A2ATask(
            task_id=f"task_{self.task_counter}",
            from_agent=self.agent_id,
            to_agent=target_agent,
            payload=payload,
            priority=1
        )

# 使用示例
bridge = MCP2A2ABridge(agent_id="search_agent_01")

# 模拟 MCP 调用数据库工具
db_result = MCPToolResult(
    tool_name="postgres_query",
    result={"rows": 1500, "columns": ["id", "name", "score"]}
)

# 通过桥接器传给分析 Agent
task = bridge.wrap_tool_result(db_result, target_agent="analysis_agent_02")
print(f"生成 A2A 任务: {task.task_id}")
print(f"目标 Agent: {task.to_agent}")
print(f"载荷: {json.dumps(task.payload, ensure_ascii=False, indent=2)}")

这个桥接器虽然简单,但体现了融合草案的核心思想:MCP 和 A2A 不是两个孤岛,而是通过标准化的桥接层无缝衔接。


协议层就绪了,信任层才是硬仗

融合草案发布后,社区的反应挺有意思。技术圈一片叫好,觉得"Agent 标准化终于有了定论"。但企业级用户的态度更谨慎,他们在关心另一个问题:协议标准了,但谁来保证 Agent 的行为是可信的?

说实话,这确实是个真问题。回顾一下 Agent 的发展历程就能看出来:

2023-2024
LLM 基础能力

2025
工具调用
Function Calling

2026 上半年
MCP/A2A
协议标准化

2026 下半年
信任层
Agent 安全

权限控制

行为审计

沙箱隔离

结果验证

当你的 Agent 可以自主调用工具、自主和其他 Agent 通信、自主执行任务时,权限控制就变成了生死攸关的问题。比如,一个财务 Agent 能不能直接调用银行转账 API?一个代码 Agent 能不能直接 push 到生产分支?这些不是协议能解决的问题,需要在协议之上构建一套信任层。

目前业界有几个方向在探索:

  1. OAuth 2.0 扩展:把 OAuth 的作用域(Scope)机制引入 Agent 工具调用,Agent 只能访问被授权范围内的资源
  2. 沙箱执行环境:类似 Docker 容器的隔离机制,Agent 的所有操作在沙箱内完成,不影响宿主系统
  3. 行为审计链:用区块链记录 Agent 的每一次决策和操作,实现事后可追溯

对开发者的实际影响

协议层标准化之后,对开发者来说有几个直接的好处:

开发效率大幅提升。 以前你要对接一个新的 API,需要自己写适配层。现在只要这个 API 有 MCP Server,你的 Agent 就能直接调用。社区里 MCP Server 的数量正在快速增长,从数据库、搜索引擎到云服务,覆盖越来越全。

多 Agent 协作门槛降低。 A2A 标准化之前,多 Agent 系统基本都是各家自己搓的通信协议。现在有了统一标准,不同团队开发的 Agent 可以直接对话——前提是大家都遵循 A2A 规范。

技术栈选择更灵活。 你可以用 LangChain 的 Agent 框架,同事用 AutoGen 的框架,只要两者都支持 MCP + A2A,就能互相配合。这比之前"要么全用 LangChain,要么全用 AutoGen"的局面好太多了。

下面是一个 MCP Server 的简单实现示例,展示怎么把一个现有的 API 包装成 MCP 工具:

from mcp.server import Server, Tool
from mcp.types import TextContent
import httpx

# 创建 MCP Server
server = Server("weather-tool")

@server.tool()
async def get_weather(city: str) -> list[TextContent]:
    """查询城市天气 - 这是一个 MCP 工具"""
    async with httpx.AsyncClient() as client:
        resp = await client.get(
            f"https://api.weather.com/v1/current",
            params={"city": city}
        )
        data = resp.json()
    
    return [TextContent(
        type="text",
        text=f"{city}当前温度: {data['temp']}°C, "
             f"湿度: {data['humidity']}%, "
             f"天气: {data['condition']}"
    )]

# 启动 Server
if __name__ == "__main__":
    import asyncio
    asyncio.run(server.run())

说实话,这套东西写起来比想象中简单。MCP 的 Python SDK 封装得很干净,核心就是定义工具函数、注册到 Server、启动服务。你的 Agent 只需要配置这个 MCP Server 的地址,就能直接调用 get_weather 这个工具。


写在最后

MCP + A2A 融合草案的发布,标志着 AI Agent 从"散兵游勇"阶段进入了"正规军"阶段。协议层标准化是生态繁荣的前提——就像 HTTP 标准化之后 Web 才真正爆发一样。

但协议层只是第一步。接下来的信任层、安全层、治理层,每一个都比协议层更难啃。用 Linux Foundation 的话说:“协议层已就绪,信任层才是真正的硬仗。”

对开发者来说,现在是最好的入局时机。协议刚定下来,生态还在早期,现在把 MCP + A2A 这套东西吃透,等 Agent 真正大规模落地的时候,你就有了先发优势。

标签: MCP协议、A2A协议、AI Agent、Linux Foundation、Agent标准化

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐