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

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.dtcms.com/a/313117.html

相关文章:

  • 用 Eland 在 Elasticsearch Serverless 部署 Learning-to-Rank 排序模型
  • 数据,正在成为AI大模型最后的护城河
  • leetcode 2106. 摘水果 困难
  • Rust 同步方式访问 REST API 的完整指南
  • 道格拉斯-普克算法 - 把一堆复杂的线条变得简单,同时尽量保持原来的样子
  • python---赋值、浅拷贝、深拷贝
  • 【C 学习】03-你的第一个C程序
  • 上位机知识篇---脚本文件
  • Linux环境下使用Docker搭建多服务环境
  • Corrosion2靶场
  • xxljob总结
  • Obsidian结合CI/CD实现自动发布
  • 1、docker容器命令 | 生命周期管理
  • NX969NX972美光固态闪存NX975NX977
  • python 12 install jupyter时zmq.h或libzmq报错处理
  • MVCC:数据库事务隔离的 “时空魔法”
  • nvm切换本地nodejs环境
  • node中shapefile字符集判断
  • Sklearn 机器学习 数据聚类 KMeans实现聚类
  • wav音频格式中,ACM波形、A/mu-Law Wave、Windows PCM、Microsoft ADPCM的区别
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——9. 接入真实硬件:驱动USB摄像头
  • LeetCode 分类刷题:2824. 统计和小于目标的下标对数目
  • Go语言--语法基础7--函数定义与调用--自定义函数
  • Go语言实战案例:TCP服务器与客户端通信
  • HoloLens+vuforia打包后遇到的问题
  • 图像、视频、音频多模态大模型中长上下文token压缩方法综述
  • Connection refused: no further information: localhost/127.0.0.1:2375
  • Git的安装和配置
  • JavaWeb开发
  • XSS-DOM 2