当前位置: 首页 > ai >正文

AI 智能体架构中的协议设计三部曲:MCP → A2A → AG-UI

AI 智能体应用在企业实际落地越来越多,一个完整的 AI 智能体应用系统通常包含三个主要角色:用户、AI 智能体和外部工具。AI 智能体架构设计的核心任务之一,就是解决这三个角色之间的沟通问题。

这三个角色的沟通,涉及到:MCP 协议、A2A 协议和 AG-UI 协议。其中,MCP 协议解决 AI 智能体和外部工具的标准化交互问题;A2A 协议解决 AI 智能体间的标准通信问题;AG-UI 解决前端应用(比如:APP)和 AI 智能体间的标准交互的问题。

img

下文详细剖析之。

01

MCP 协议架构设计

MCP(模型上下文协议)是由 Anthropic 定义的一个开放协议,标准化应用程序如何为大语言模型(LLM)提供上下文。更具体地说,它试图标准化基于 LLM 的应用程序与其他环境集成的协议。

在 AI Agent 系统(Agentic Systems)中,上下文可以通过多种方式提供:

1、外部数据:这是长期记忆的一部分。

2、工具:系统与环境交互的能力。

3、动态提示词:可以作为系统提示词(System Prompt)的一部分注入。

第一、为什么要标准化?

目前,AI Agent 应用的开发流程很混乱:

1、有许多 AI 智能体框架存在细微差异。虽然看到生态系统蓬勃发展令人鼓舞,但这些细微差异很少能带来足够的价值,但可能会显著改变你的代码编写方式。

2、与外部数据源的集成通常是临时实现的,并且使用不同的协议,即使在组织内部也是如此。对于不同公司来说,这显然是如此。

3、工具在代码库中以略微不同的方式定义。如何将工具附加到增强型 LLM 上也是不同的。

目标是提高我们创新 AI 智能体应用的速度、安全性以及将相关数据带入上下文的便利性。

在这里插入图片描述

第二、MCP 协议架构设计

图片

1、MCP Host:使用 LLM 为核心并希望通过 MCP 访问数据的程序。

2、MCP Client:与 MCP Server 保持1:1连接的客户端。

3、MCP Server:每个 MCP Server 都通过标准化的模型上下文协议公开特定功能的轻量级程序。

4、Local Data Sources:你计算机上的文件、数据库和服务,MCP Server 可以安全访问。

5、Remote Data Sources:通过互联网可用的外部系统(比如:通过 API),MCP Server 可以连接到这些系统。

第三、通过 MCP 分离控制责任

MCP Server 公开三个主要元素(Prompts、Resoures、Tools),这些元素是有意设计的,以帮助实现特定的控制分离。

图片

1、Prompts 提示词被设计为用户控制的。后端的程序员可以公开特定的提示词(适用于与后端服务公开的数据交互),这些提示词可以注入到使用 LLM 的应用程序中,并暴露给给定应用程序的用户。

2、Resoures 资源被设计为应用程序控制的。Resources 资源是任何可以被利用 LLM 构建的应用程序使用的数据(文本或二进制)。应用程序的程序员(通常是 AI 应用开发工程师)负责将这些信息编码到应用程序中。通常,这里没有自动化,LLM 不参与此选择。

3、Tools 工具被设计为大模型控制的。如果我们赋予应用程序如何与环境交互的代理权,我们使用 Tools 工具来实现这一点。MCP Server 公开一个端点,可以列出所有可用 Tools 工具及其描述和所需参数,应用程序可以将此列表传递给 LLM,以便它决定哪些 Tools 工具适用于手头的任务以及如何调用它们。

02

A2A 协议架构设计

第一、为什么会有 A2A?

现在越来越清楚,未来的 AI 智能体系统(Agentic Systems)将是多 AI 智能体的。而且,这些 AI 智能体会在彼此之间远程协作,每个 AI 智能体都可能使用不同的 AI 智能体框架(比如:LangGraph、AutoGen、CrewAI、Agent Development Kit 等)来实现。

这里面有3个固有的问题

1、不同框架实现的 AI 智能体系统之间,不支持系统状态的转移和交换。

2、远程 AI 智能体之间也无法转移系统状态。

3、离线的 AI 智能体不共享工具、上下文和内存(包括系统状态)。

第二、A2A 解决方案

A2A 是一个开放协议,它为 AI 智能体之间提供了一种标准方式,无论底层开发框架或供应商如何,都可以进行协作。

图片

根据谷歌的官方文档: A2A 协议促进了“客户端”和“远程” AI 智能体之间的通信。

简单来说,“客户端” AI 智能体创建任务并与“远程” AI 智能体沟通,期望执行某些工作或返回数据。

第三、A2A 架构设计

1、能力发现:所有实现 A2A 的 AI 智能体都通过“Agent Card”公开其能力目录。这有助于其他 AI 智能体发现给定 AI 智能体实现的潜在有用功能。

2、任务管理:通信协议,使得短期和长期任务变得更容易。它帮助通信中的 AI 智能体保持同步,直到请求的任务完成并返回答案。这很重要,因为有些 AI 智能体可能需要很长时间来执行工作,而且目前没有统一标准如何等待这种情况发生。

3、协作:AI 智能体可以相互发送消息以传达上下文、回复、工件或用户指令。

4、用户体验协商:这是一个很有趣的功能。它允许协商数据返回的格式,以符合用户界面的期望(比如:图像、视频、文本等)。

通过 A2A 公开的 AI 智能体的发现是一个重要话题。谷歌建议使用统一的位置来存储组织的“Agent Card”。

比如:

https://<DOMAIN>/<agreed-path>/agent.json

这并不意外,因为谷歌将处于最佳位置,能够索引全球所有可用的 AI 智能体,可能创建一个类似于当前搜索引擎索引的全球 AI 智能体目录。

我喜欢 A2A 强调无需重新发明轮子,并且建立在现有标准之上:

1、该协议建立在现有、流行的标准之上,包括:HTTP、SSE、JSON-RPC,这意味着它更容易与企业日常使用的现有 IT 堆栈集成。

2、默认安全 - A2A 旨在支持企业级身份验证和授权,与 OpenAPI 的身份验证方案相当。

03

AG-UI 协议架构设计

第一、为什么需要 AG-UI?

每个 AI 智能体后端都有自己的工具调用ReAct 样式规划状态差异和输出格式机制

如果你使用 LangGraph,前端将实现自定义的 WebSocket 逻辑、杂乱的 JSON 格式和特定于 LangGraph 的 UI 适配器。

但要迁移到 CrewAI/Dify 等,一切都必须进行调整,这样工作量大大增加。

图片

第二、AG-UI 架构设计

AG-UI 使用一个轻量级、事件驱动的协议来连接 AI Agents 和前端应用程序,架构设计如图所示:

图片

  • Front-end:通过 AG-UI 进行通信的应用(聊天或任何启用 AI 应用) ;

  • AI Agent A:前端可以直接连接的 AI Agent,无需通过代理;

  • Secure Proxy:一个中介代理,安全地将前端的请求路由到多个 AI Agents;

  • AI Agent B 和 C:由代理服务管理的 AI Agents。

第三、AG-UI 工作机制

AG-UI 的核心工作机制非常简洁而优雅,如下图所示:

图片

    • 客户端通过 POST 请求启动一次 AI Agent 会话;
    • 随后建立一个 HTTP 流(可通过 SSE/WebSocket 等传输协议)用于实时监听事件;
    • 每条事件都有类型和元信息(Metadata);
    • AI Agent 持续将事件流式推送给 UI;
    • UI 端根据每条事件实时更新界面;
    • 与此同时,UI 也可反向发送事件、上下文信息,供 AI Agent 使用。

AG-UI 不再是单向的信息流,而是一种真正的双向“心跳式”交互机制。AG-UI 就像 REST 是客户端到服务器请求的标准一样,AG-UI 将实时 AI Agent 更新流式传输回 UI 的标准。从技术上讲,AG-UI 使用服务器发送事件(SSE)将结构化 JSON 事件流式传输到前端。

每个事件都有一个显式的有效负载(比如:Python 字典中的 keys):

  • TEXT_MESSAGE_CONTENT 用于令牌流式处理;

  • TOOL_CALL_START 以显示工具执行情况;

  • STATE_DELTA 更新共享状态(代码、数据等);

  • AGENT_HANDOFF 在 AI Agent 之间顺利传递控制权。

并且 AG-UI 带有 TypeScript 和 Python 的 SDK,即插即用适用于任何技术栈,如下图所示:

图片

在上图中,来自 AI Agent 的响应并不特定于任何工具包。这是一个标准化的 AG-UI 响应。

AG-UI 提供了前端 TypeScript 和后端 Python 的 SDK,可无缝接入到现有 AI Agent 代码中核心模块包括:

    • RunAgentInput:运行 AI Agent 的输入参数;
    • Message:用户助手通信和工具使用;
    • Context:提供给 AI Agent 的上下文信息;
    • Tool:定义 AI Agent 可以调用的函数;
    • State:AI Agent 状态管理。

1、前端接入

npm install @ag-ui/core
npm install @ag-ui/client

2、后端 Python 端接入

from ag_ui.core import TextMessageContentEvent, EventType
from ag_ui.encoder import EventEncoder
# Create an event
event = TextMessageContentEvent(type=EventType.TEXT_MESSAGE_CONTENT,message_id="msg_123",delta="Hello, world!"
)
# Initialize the encoder
encoder = EventEncoder()
# Encode the event
encoded_event = encoder.encode(event)
print(encoded_event)
# Output: data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_123","delta":"Hello, world!"}\n\n

第四、AG-UI 关键特性

  • 轻量级:设计简单,易于理解与扩展;

  • 支持多种传输协议:Server-Sent Events(SSE)、WebSocket、Webhook 任你选择;

  • 真正双向同步:支持实时对话、工具调用、上下文更新等;

  • 框架无关:LangGraph、CrewAI、Mastra 等框架均可无缝对接;

  • 宽松的 Schema 匹配策略:低耦合、高兼容,降低开发门槛;

  • 即插即用:开源协议,前端(比如:React/Vue)快速集成无门槛。

第五、AG-UI、A2A、MCP 协议对比

AG-UI 明确且专门针对 AI 智能体-用户交互层。它不与诸如 A2A(AI Agent 到 AI Agent 协议)和 MCP(模型上下文协议)等协议竞争。

比如:同一个 AI 智能体可能通过 A2A 与另一个 AI 智能体通信,同时通过 AG-UI 与用户通信,同时调用由 MCP Server 提供的工具。

这些协议在 AI 智能体生态系统中起到互补的作用:

  • AG-UI:处理人在循环中的交互和流式 UI 更新;

  • A2A:促进 AI 智能体到 AI 智能体之间的通信和协作;

  • MCP:在不同模型之间标准化工具调用和上下文处理。

04

AI 智能体协议架构设计总结

AI 智能体协议三部曲的对比如下

图片

AI 智能体架构设计中的这三个协议共同构成了 AI 智能体应用系统架构设计的基础设施。它们让 AI 智能体能够“长出手脚”(通过 MCP 实现操作能力)、拥有协作伙伴(通过 A2A 实现 AI 智能体之间的协作),并且能够通过 AG-UI 与用户直接交互,实现落地应用。

这三个协议推动了 AI 智能体应用系统从单一 AI 智能体向多 AI 智能体 的进化,不仅提升了底层能力,还优化了上层的用户体验。同时,它们的开放性和兼容性也为更多 AI 创新应用和跨领域协作提供了可能。

好了,这就是我今天想分享的内容。

最后

选择AI大模型就是选择未来!最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个,现在还在不断的发掘中,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?

与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,整体AI领域2025年预计缺口1000万人,人才需求急为紧迫!

由于文章篇幅有限,在这里我就不一一向大家展示了,学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。

【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

获取方式:有需要的小伙伴,可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
包括:AI大模型学习路线、LLM面试宝典、0基础教学视频、大模型PDF书籍/笔记、大模型实战案例合集、AI产品经理合集等等

在这里插入图片描述
大模型学习之路,道阻且长,但只要你坚持下去,一定会有收获。本学习路线图为你提供了学习大模型的全面指南,从入门到进阶,涵盖理论到应用。在这里插入图片描述
L1阶段:启航篇|大语言模型的基础认知与核心原理

L2阶段:攻坚篇|高频场景:RAG认知与项目实践

L3阶段:跃迀篇|Agent智能体架构设计

L4阶段:精进篇|模型微调与私有化部署

L5阶段:专题篇|特训集:A2A与MCP综合应用 追踪行业热点(全新升级板块)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
AI大模型全套学习资料【获取方式】

在这里插入图片描述

http://www.xdnf.cn/news/19491.html

相关文章:

  • uniApp App 嵌入 H5 全流程:通信与跳转细节拆解
  • 嵌入式ARM程序高级调试技能:22.malloc free 的wrap实现,free支持 align free
  • 【机器学习入门】5.1 线性回归基本形式——从“选西瓜”看懂线性模型的核心逻辑
  • [Java]PTA:jmu-java-01入门-基本输入
  • YOLO 目标检测:YOLOv3网络结构、特征输出、FPN、多尺度预测
  • 在 React Native 层禁止 iOS 左滑返回(手势返回/手势退出)
  • 每日算法题【二叉树】:二叉树查找值为x的节点、给定字符串用前序遍历构建二叉树、二叉树的销毁
  • Topaz Video AI:AI驱动的视频增强与修复工具
  • 如何选择单北斗变形监测系统才高效?
  • 【思考】WSL是什么
  • 深度学习环境搭建运行(一) Ubuntu22.04 系统安装 CUDA11.8 和 CUDNN8.6.0 详细步骤(新手入门)
  • AI 赋能 Java 开发效率:全流程痛点解决与实践案例(三)
  • 【先楫HPM5E00_EVK系列-板卡测评3】hpm5e00evk平台中断、定时器、PWM、USART等基础功能详解
  • NOSQL——Redis
  • Trae + MCP : 一键生成专业封面
  • @Autowired注入底层原理
  • STM32-FreeRTOS操作系统-任务创建
  • 洛谷 P5836 [USACO19DEC] Milk Visits S-普及/提高-
  • 贪心算法解决钱币找零问题(二)
  • 基于单片机倒车雷达/超声波测距设计
  • Linux->网络入门
  • 《论文阅读》从心到词:通过综合比喻语言和语义上下文信号产生同理心反应 2025 ACL findings
  • infinityfree mysql 加入数据库部分 filezilla 设备共享图片和文本不用浏览器缓存
  • 第六章 Vue3 + Three.js 实现高质量全景图查看器:从基础到优化
  • hive表不显示列注释column comment的问题解决
  • Linux signal 图文详解(二)信号发送
  • 为什么服务器接收 URL 参数时会接收到解码后的参数
  • DHT11-温湿度传感器
  • openEuler2403部署Redis8集群
  • 京东入局外卖,还有很多问题。