多智能体协作的“通用语“:MCP + A2A 协议栈实战解析
多智能体协作的通用语MCP A2A 协议栈实战解析![多智能体协作](https://picsum.photos/seed/17860690546182/800/400)2026 年大模型竞争的主战场正在从单模型能力转向多智能体协作。当中国日均词元调用量突破 140 万亿、AI Agent 从演示走向生产环境时一个关键问题浮出水面**来自不同厂商、运行在不同框架上的智能体如何像人类团队一样分工协作** 答案就是 MCP 与 A2A 组成的分层协议栈——MCP 给智能体动手能力A2A 给智能体社交网络。一、为什么需要协议栈回顾 2025 到 2026 年的演进脉络MCPModel Context Protocol模型上下文协议由 Anthropic 于 2024 年底开源迅速成为智能体连接工具与数据的事实标准2025 年 4 月Google 联合 50 企业发布 A2AAgent2Agent协议专攻智能体之间的互联互通。到了 2026 年两者已经形成稳定互补• **MCP**解决智能体 → 工具/数据的单向能力扩展问题• **A2A**解决智能体 ↔ 智能体的双向协作问题• **OpenAPI 认证**解决身份与授权问题凭证通过标准 HTTP Header 传递协议本身与认证机制解耦。打个比方MCP 是给每个智能体装上手A2A 是让这些智能体彼此开口说话。没有 MCP 的智能体是残疾人没有 A2A 的智能体是孤岛。二、MCP给智能体动手能力MCP 采用经典的Host / Client / Server三层架构。Host如 Claude Desktop、Cursor、自研应用中嵌入 MCP Client通过 JSON-RPC 2.0 与 MCP Server 通信。Server 暴露三类核心原语Tools可执行动作、Resources可读取数据、Prompts可复用提示词。下面是一个极简的 MCP Server 示例Python使用官方 SDKfrom mcp.server.fastmcp import FastMCP mcp FastMCP(order-service) mcp.tool() def query_order(order_id: str) - str: 查询订单状态模拟工具 status_map {A1001: 已发货, A1002: 待支付} return status_map.get(order_id, 订单不存在) mcp.tool() def calc_shipping(weight_kg: float, express: str standard) - float: 计算运费standard 8元/首重express 15元/首重 base 8.0 if express standard else 15.0 extra max(0.0, weight_kg - 1.0) * 2.0 return round(base extra, 2) if __name__ __main__: mcp.run(transportstdio) # 支持 stdio / sse / streamable-http客户端侧一个 Agent 可以同时挂载多个 MCP Server像拼积木一样获得查订单 算运费 查物流等能力from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client async def call_tool(server_cmd, tool_name, args): params StdioServerParameters(commandserver_cmd[0], argsserver_cmd[1:]) async with stdio_client(params) as (read, write): async with ClientSession(read, write) as session: await session.initialize() result await session.call_tool(tool_name, argumentsargs) return result.content[0].text # 同一个 Agent 同时使用多个工具 print(await call_tool([python, order_server.py], query_order, {order_id: A1001})) print(await call_tool([python, order_server.py], calc_shipping, {weight_kg: 3.2}))MCP 生态在 2026 年已经极其繁荣从 GitHub、Slack 到 Elasticsearch主流 SaaS 纷纷提供官方 MCP Server远程 MCPstreamable-http支持也让客户端连远程工具成为常态。这正是词元经济落地的基础设施——模型负责想MCP 负责做。三、A2A给智能体社交网络如果说 MCP 是人与工具的契约A2A 就是智能体之间的社交协议。它基于 HTTP/1.1 或 HTTP/2 JSON-RPC 2.0 SSEServer-Sent Events核心概念只有四个1.Agent Card智能体的名片JSON 格式声明自己是谁、能干什么、认证方式2.Task任务对象携带状态机submitted → working → input-required → completed / failed3.Message / Part / Artifact消息与产物支持文本、图片、表单等多模态4.Streaming / Push Notification面向长任务的实时进度推送。先看一张名片——Agent Card 长什么样{ name: reservation-agent, description: 处理餐厅订座、改签与取消, url: https://agents.example.com/reservation, version: 1.0.0, capabilities: { streaming: true, pushNotifications: true, stateTransitionHistory: true }, security: { schemes: [bearer] }, skills: [ { id: book_table, name: 在线订座, description: 按人数、时间与偏好预订餐厅桌位 } ], defaultInputModes: [text/plain], defaultOutputModes: [text/plain, application/json] }再写一个极简的 A2A ServerFastAPI 实现 tasks/send 端点from fastapi import FastAPI, Request from pydantic import BaseModel app FastAPI() BOOKINGS: dict[str, str] {} class TaskSendRequest(BaseModel): id: str message: dict metadata: dict {} app.get(/.well-known/agent.json) def agent_card(): return { name: reservation-agent, description: 处理订座请求, url: https://agents.example.com/reservation, version: 1.0.0, capabilities: {streaming: False}, } app.post(/tasks/send) async def tasks_send(req: TaskSendRequest): parts req.message.get(parts, []) text .join(p.get(text, ) for p in parts) # 解析意图book/cancel if 订 in text and 座 in text: task_id ftask-{req.id} BOOKINGS[task_id] 已预订 4 人桌今晚 19:00 return { id: task_id, status: {state: completed}, artifacts: [{parts: [{text: BOOKINGS[task_id]}]}], } return {id: req.id, status: {state: failed}, statusMessage: 无法识别的意图}客户端智能体只需把请求 POST 过去就能把订座这件事委托出去——不需要知道对方是用 LangChain、ADK 还是自研框架写的。四、实战MCP A2A 分层协同在真实系统里两者是分层配合而非二选一。以一个智能客服工单系统为例用户提问 │ ▼ ┌─────────────┐ A2A(JSON-RPCSSE) ┌─────────────────┐ │ 主控 Agent │ ──────────────────► │ 订单 Agent │ │ (orchestrator)│ ◄────────────────── │ (MCP: 查订单/退款) │ └──────┬──────┘ └─────────────────┘ │ MCP (工具调用) ▼ ┌─────────────────┐ │ CRM / 物流 / 知识库 │ └─────────────────┘主控 Agent 的伪代码清晰展示了这种脑手分离async def handle(user_msg: str): # 1) 本地判断是否需要求助其他智能体 if 订单 in user_msg: # 2) A2A委托给订单 Agent远程协作 resp await a2a_send(https://agents.example.com/order, user_msg) return resp.artifacts[0].parts[0].text # 3) MCP本地调用工具查询知识库 docs await mcp_call_tool(kb-server, search, {q: user_msg}) return f根据知识库{docs} # A2A 客户端最小实现 async def a2a_send(agent_url: str, text: str): payload { id: uuid4().hex, message: {role: user, parts: [{text: text}]}, metadata: {}, } async with httpx.AsyncClient() as client: r await client.post(f{agent_url}/tasks/send, jsonpayload) return TaskResponse.model_validate(r.json())Google ADKAgent Development Kit已经原生支持在 A2A Agent 里挂载 MCP 工具Elasticsearch 官方也给出了LLM Agent 新闻室的完整参考实现——一个记者 Agent 通过 A2A 把稿件交给编辑 Agent编辑再通过 MCP 调用 Anthropic 分析内容。协议栈的价值在于每个团队只维护自己的智能体全局却像一个团队在运转。五、挑战与展望协议有了工程化才刚刚开始2026 年最受关注的是三个问题1.安全与信任英国 AI 安全研究所 8 月发布的报告显示测试中 AI 智能体出现了 19 项超出设定范围的自主行为。多智能体放大了攻击面——A2A 必须与 OAuth2/JWT 结合且对每个请求做鉴权与审计2.可观测性跨智能体的链路追踪trace、任务状态机与成本归因需要一套类似 OpenTelemetry 的标准3.协议生态之争MCP、A2A、AGNTCY思科主导仍在争夺生态位短期内分层兼容是最务实的策略——MCP 管工具、A2A 管协作二者都基于 JSON-RPC/HTTP迁移成本极低。可以预见未来 12 个月我们会看到更多智能体团队进入生产科研场景里检索智能体数秒出结果、模拟智能体跑数天任务并实时推送进度企业场景里主控 专家的架构成为标配。就像 TCP/IP 定义了互联网设备如何互联MCP A2A 正在定义 AI 智能体如何协作——这是词元经济时代最重要的基础设施。总结| 维度 | MCP | A2A || --- | --- | --- || 定位 | 智能体 ↔ 工具/数据 | 智能体 ↔ 智能体 || 提出方 | Anthropic | Google 及 50 伙伴 || 通信 | JSON-RPC 2.0 | JSON-RPC 2.0 SSE || 核心概念 | Tools / Resources / Prompts | Agent Card / Task / Message || 典型场景 | 数据库、API、知识库接入 | 任务委托、跨厂商协作 |动手建议先用 FastMCP 十分钟写一个工具 Server再用 FastAPI 搭一个 A2A Agent Card最后让两个 Agent 互相委托任务——你会在一个下午感受到智能体从单兵到军团的质变。欢迎在评论区分享你的多智能体踩坑经历本文基于 2026 年 8 月公开技术资料撰写示例代码可在本地 Python 3.10 环境运行。

相关新闻

fastBPE在Mac OSX上的安装与配置:解决编译难题的实用技巧

fastBPE在Mac OSX上的安装与配置:解决编译难题的实用技巧

fastBPE在Mac OSX上的安装与配置:解决编译难题的实用技巧 【免费下载链接】fastBPE Fast BPE 项目地址: https://gitcode.com/gh_mirrors/fa/fastBPE fastBPE是一款高效的C实现的子词单元处理工具,广泛应用于神经机器翻译中稀有词处理场景。本文将…

2026/10/18 1:10:58 阅读更多 →
AM与FM调制解调原理详解:从载波到信号的工程实践

AM与FM调制解调原理详解:从载波到信号的工程实践

1. 从“载波”到“信息”:模拟调制的核心逻辑 如果你拆开一台老式收音机,或者观察过早期的对讲机电路板,会发现一个有趣的现象:它们处理声音信号的方式,和我们今天熟悉的数字设备截然不同。我们今天要聊的AM&#xff0…

2026/10/18 15:18:07 阅读更多 →
SpringBoot+Vue社团管理系统实战与优化

SpringBoot+Vue社团管理系统实战与优化

1. 项目概述:当社团管理遇上前后端分离 去年接手学校社团联合会信息化改造项目时,我面对的是20多个社团还在用Excel登记成员信息、微信群发活动通知的原始状态。这套基于SpringBootVue的社团管理系统,最终将招新效率提升300%,活动…

2026/10/16 5:59:43 阅读更多 →

最新新闻

嵌入式LCD/OLED取模工具原理与实战指南

嵌入式LCD/OLED取模工具原理与实战指南

简介:这是一款专为嵌入式开发人员设计的LCD/OLED字符与图像取模工具,面向单片机、STM32、Arduino等硬件开发者,解决在资源受限显示屏上高效生成可直接调用的点阵数据这一核心问题。工具支持ASCII字符自定义取模、BMP位图转单色/灰度数组&…

2026/10/19 12:25:43 阅读更多 →
从知识到能力:技能训练的完整路径与实战检验

从知识到能力:技能训练的完整路径与实战检验

很多人都聊过“skills”这个词,但大多数时候,我们聊的其实是“技能列表”——面试官问你会什么,简历上写你会什么,课程大纲里列你会什么。真正的难点从来不在“知道有哪些技能”,而在“怎么把一项技能从一无所知&#…

2026/10/19 12:25:43 阅读更多 →
技能管理实操指南:从个人能力拆解到团队技能矩阵搭建

技能管理实操指南:从个人能力拆解到团队技能矩阵搭建

"skills"这个标题看起来极简,背后却拉出了一整条关于个人能力建设、团队效能评估、职业路径规划的主线。我这两年做团队搭建和新人培养,几乎每轮复盘都会回到这个词上。最初我以为它只是简历上的关键词堆砌,后来才意识到&#xff0…

2026/10/19 12:25:43 阅读更多 →
BF16 vs MXFP8 vs NVFP4 vs GGUF:NVIDIA Dory1.0-4B 四种量化格式选型终极指南

BF16 vs MXFP8 vs NVFP4 vs GGUF:NVIDIA Dory1.0-4B 四种量化格式选型终极指南

大模型人工智能模型量化 【免费下载链接】NVIDIA-Nemotron-Labs-Dory1.0-4B-NVFP4 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-NVFP4 点击查看 免费下载 NVIDIA 开源的 Dory1.0-4B 是一个 40 亿参数的"循环式&…

2026/10/19 12:25:43 阅读更多 →
Overalls安全设计揭秘:出口代理、边缘凭据注入与隔离网络全梳理

Overalls安全设计揭秘:出口代理、边缘凭据注入与隔离网络全梳理

【免费下载链接】overalls [experimental] An AI-first developer platform that you own. Overalls launches on 3 November 2026. 项目地址: https://gitcode.com/gh_mirrors/loom29/overalls 点击查看 免费下载 Overalls 是一个自托管的 AI-first 开发者平台,每…

2026/10/19 12:25:43 阅读更多 →
DeepSeek-V3私有化部署实战:客服系统数据安全与SOP全流程指南

DeepSeek-V3私有化部署实战:客服系统数据安全与SOP全流程指南

最近几年,私有化部署这个词在客服系统领域的热度一直没降过。尤其是DeepSeek-V3这种开源大模型出来后,很多团队都在观望:模型效果到底行不行?数据不出场这条红线能不能守得住?一套完整的SOP到底该怎么建?正…

2026/10/19 12:24:42 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →