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

LLM - AI大模型应用集成协议三件套 MCP、A2A与AG-UI

文章目录

  • 1. 引言:背景与三协议概览
  • 2. MCP(Model Context Protocol)
    • 起源与动因
    • 架构与规范要点
    • 开发实践
  • 3. A2A(Agent-to-Agent Protocol)
    • 起源与动因
    • 架构与规范要点
    • 开发实践
  • 4. AG-UI(Agent-User Interaction Protocol)
    • 起源与动因
    • 架构与规范要点
    • 开发实践
  • 5. 对比与组合使用建议
  • 6. 如何落地

在这里插入图片描述

1. 引言:背景与三协议概览

随着大模型(LLM)从单一问答工具逐步演进到具备自主决策能力的Agent,开发者面临三大痛点:

  • 外部资源集成困难(M×N 适配挑战)
  • 多 Agent 协作通信缺乏统一标准
  • 前端 UI 与后端 Agent 交互混乱多样

为了解决上述问题,业界先后推出了三套开放协议:

  • MCP:模型 ↔ 工具/资源 的统一“USB-C”接口
  • A2A:Agent ↔ Agent 的“网络协议”
  • AG-UI:Agent ↔ 用户界面 的“翻译官”

2. MCP(Model Context Protocol)

在这里插入图片描述

起源与动因

  • M×N 集成难题:不同模型(M)要接入不同工具或数据源(N),往往需要自己实现 M×N 套适配。
  • 解决方案:Anthropic 于 2024 年 11 月开源 MCP,将各种工具/数据源封装成符合协议的 Server,模型端只需一套 Client 即可接入所有资源。

架构与规范要点

在这里插入图片描述

  • 客户端–服务器模式

    • MCP Client:嵌入到 LLM 应用中,负责发起请求。
    • MCP Server:将工具、数据库或 API 封装成轻量服务,暴露统一接口。
  • 协议标准化内容

    • 传输层:JSON-RPC / HTTP / SSE
    • 消息格式:请求/响应、批量处理、工具注解等
    • 安全与授权:API Key、OAuth2 等

开发实践

  1. 编写 MCP Server

    • 使用官方 SDK(Python/JS/Go/Java)或直接按照规范实现 HTTP 接口。
    • 定义工具元数据(名称、输入输出 schema、权限要求)。
  2. 在 LLM 应用中调用

    • 引入 MCP Client,加载各 Server 的“描述文件”(类似 USB-C 的 PD 协商)。
    • 发起工具调用请求,处理返回结果。
  3. 最佳实践

    • 批量模式:合并多次调用减少网络延迟
    • Streamable HTTP:实时返回流式输出
    • 工具注解:丰富命令与参数说明,提高调用准确度

3. A2A(Agent-to-Agent Protocol)

在这里插入图片描述

起源与动因

  • 多 Agent 协作:在复杂业务场景中,往往需要不同智能体互相分工、串联工作。
  • 信息孤岛:缺乏统一协议时,不同厂商或框架的 Agent“各说各话”,难以互通。
  • 发布:Google 在 2025 年 4 月 Cloud Next 大会上开放 A2A,目标打造 AI Agent 的“TCP/IP”。

架构与规范要点

在这里插入图片描述

  • Agent Card:每个 Agent 对外的“名片”,包含名称、版本、端点 URL、可用技能、认证方式。

  • 双向客户端–服务端角色

    • 发起方 Agent 扮演 Client
    • 接收方 Agent 扮演 Server
    • 同一个 Agent 可动态切换角色
  • 任务模型与流程

    1. submitted → 2. working → (可能 input-required)→ 3. completedfailed
    • 支持异步通知、回调、状态查询
  • 交换内容

    • 消息:文本、文件、结构化数据
    • 工件:最终结果对象

开发实践

  1. 实现 A2A Server

    • 准备 Agent Card 文档(JSON 格式),托管在可访问的端点。
    • 实现标准接口:接收任务、查询状态、推送回调。
  2. 调用其他 Agent

    • 发现并下载目标 Agent’s Card
    • 发起 HTTP 请求到其任务接口
    • 处理异步通知或轮询结果
  3. 工具与框架

    • 官方 SDK:Python/JS/Go/Java
    • Demo 项目:配置式开启 A2A 支持

4. AG-UI(Agent-User Interaction Protocol)

在这里插入图片描述

起源与动因

  • UI 适配纷繁:聊天面板、助手插件、Web 应用,各自接口和消息格式不一致,开发成本高,用户体验差。
  • 发布:CopilotKit 团队 2025 年 5 月开源 AG-UI,将前后端交互抽象为事件流。

架构与规范要点

在这里插入图片描述

  • 事件驱动:定义标准事件类型(文本消息、工具调用、状态更新、用户输入等),前后端通过流式通道(WebSocket/SSE)收发事件。

  • 双向协作

    • Agent 发出事件,前端渲染 UI
    • 用户动作产生事件,后端 Agent 响应
  • 灵活传输:不绑定具体协议,保证事件格式一致即可。

开发实践

  1. 接入 SDK

    • Python 或 TS/JS SDK,封装底层事件通道。
    • CopilotKit:快速集成示例,内置常用组件。
  2. 前端构建

    • 订阅事件流,按事件类型渲染消息、控件、进度等。
    • 发送用户操作事件(点击、输入、选择)。
  3. 优化建议

    • 事件分组:将相关事件打包发送,减少频繁交互
    • 重试机制:连接断开时自动重连
    • UI 组件库:统一样式与行为

5. 对比与组合使用建议

协议解决场景典型用法推荐组合
MCP模型接入工具/数据源URL+API Key 嵌入 LLM 应用与 A2A 联动:自动调用工具后再交给其他 Agent
A2A多 Agent 间协作Agent Card + 异步任务流程与 AG-UI 联动:前端触发多 Agent 协作
AG-UIAgent 与用户界面实时、结构化交互事件流通道 + UI 组件同时接入 MCP:用户触发工具调用

6. 如何落地

  1. 评估需求:先确定项目是单模型调用外部资源(MCP)、多 Agent 协作(A2A)还是复杂前端交互(AG-UI)。
  2. 分步实施:建议先引入 MCP,完成资源接入;再逐步拆分多 Agent 逻辑,用 A2A 构建微服务式智能体;最后以 AG-UI 打通人机交互环节。
  3. 选用框架/SDK:优先使用官方 SDK 或成熟开源项目,如 LangGraph、Google ADK、CopilotKit,减少底层实现成本。
  4. 测试与监控:设计完整的端到端测试用例,监控协议调用延迟、消息丢失、错误恢复等指标。

在这里插入图片描述

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

相关文章:

  • Rust 同步方式访问 REST API 的完整指南
  • 04.Redis 的多实例
  • Linux 文件系统基本管理
  • go 中的 fmt 占位符
  • 【lucene】ByteBufferGuard
  • RabbitMQ面试精讲 Day 9:优先级队列与惰性队列
  • 深度学习中的三种Embedding技术详解
  • 【内容规范】关于标题中【】标记的使用说明
  • 02.Redis 安装
  • 浅窥Claude-Prompting for Agents的Talk
  • Thread 类的基本用法
  • 位运算在权限授权中的应用及Vue3实践
  • 深度学习(鱼书)day10--与学习相关的技巧(后两节)
  • 【Python练习】075. 编写一个函数,实现简单的语音识别功能
  • MySQL Undo Log
  • 从零开始设计一个分布式KV存储:基于Raft的协程化实现
  • golang 函数选项模式
  • 手机(电脑)与音响的蓝牙通信
  • Python 实例属性与方法命名冲突:一次隐藏的Bug引发的思考
  • 抽奖系统中 Logback 的日志配置文件说明
  • Easy系列PLC相对运动指令实现定长输送(ST源代码)
  • 长文:Java入门教程
  • 求定积分常用技巧
  • 前端工程化:npmvite
  • 小红书开源dots.ocr:单一视觉语言模型中的多语言文档布局解析
  • CUDA杂记--nvcc使用介绍
  • k8s黑马教程笔记
  • MySQL 索引失效的场景与原因
  • 第二章 矩阵
  • Apple基础(Xcode④-Flutter-Platform Channels)