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.pswp.cn/diannao/94976.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94976.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94976.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習DBSCAN密度聚類

引言 在機器學習的聚類任務中,K-means因其簡單高效廣為人知,但它有一個致命缺陷——假設簇是球形且密度均勻,且需要預先指定簇數。當數據存在任意形狀的簇、噪聲點或密度差異較大時,K-means的表現往往不盡如人意。這時候&#xff…

RecyclerView 緩存機制

一、四級緩存體系1. Scrap 緩存(臨時緩存)位置:mAttachedScrap 和 mChangedScrap作用:存儲當前屏幕可見但被標記為移除的 ViewHolder用于局部刷新(如 notifyItemChanged())特點:生命周期短&…

大模型SSE流式輸出技術

文章目錄背景:為什么需要流式輸出SSE 流式輸出很多廠商還是小 chunk背景:為什么需要流式輸出 大模型的響應通常很長,比如幾百甚至幾千個 token,如果等模型一次性生成完才返回: 延遲高:用戶要等很久才能看…

[Flutter] v3.24 AAPT:錯誤:未找到資源 android:attr/lStar。

推薦超級課程: 本地離線DeepSeek AI方案部署實戰教程【完全版】Docker快速入門到精通Kubernetes入門到大師通關課AWS云服務快速入門實戰 前提 將 Flutter 升級到 3.24.4 后,構建在我的本地電腦上通過,但Github actions 構建時失敗。 Flutt…

go語言標準庫學習, fmt標準輸出,Time 時間,Flag,Log日志,Strconv

向外輸出 fmt包實現了類似C語言printf和scanf的格式化I/O。主要分為向外輸出內容和獲取輸入內容兩大部分。 內置輸出 不需要引入標準庫,方便 package mainfunc main() {print("我是控制臺打印,我不換行 可以自己控制換行 \n我是另一行")prin…

ElementUI之表格

文章目錄使用ElementUI使用在線引入的方式表格1. 帶狀態表格row-class-name"Function({row, rowIndex})/String"2. 固定表頭(height"string/number"屬性)2.1 屬性的取值2.2 動態響應式高度使用演示2.3 ??自定義滾動條樣式??2.4 表頭高度定制獲取一行信…

K8S 的 Master組件

K8S 的 Master 組件有哪些?每個組件的作用? K8s 大腦的 4 大核心模塊,掌控全局! Kubernetes 集群的 Master(主節點) 就像一座 指揮中心,負責整個集群的調度、管理和控制。它由 4 大核心組件組成…

如何 讓ubuntu 在root 下安裝的docker 在 普通用戶下也能用

在 Ubuntu 系統中,如果 Docker 是以 root 用戶安裝的,普通用戶默認無法直接使用 Docker 命令(會報權限錯誤)。要讓普通用戶也能使用 Docker,可以按照以下步驟操作:方法 1:將用戶加入 docker 用戶…

模板方法模式:優雅封裝算法骨架

目錄 一、模板方法模式 1、結構 2、特性 3、優缺點 3.1、優點 3.2、缺點 4、使用場景 5、實現示例 5.1、抽象類 5.2、實現類 5.3、測試類 一、模板方法模式 模板方法模式(Template Method Pattern)是一種行為設計模式,它在一個方…

韋東山STM32_HAl庫入門教程(SPI)學習筆記[09]內容

(1)SPI程序層次一、核心邏輯:“SPI Flash 操作” 是怎么跑起來的?要讀寫 SPI Flash,需同時理解 硬件連接(怎么接線) 和 軟件分層(誰負責發指令、誰負責控制邏輯)&#xf…

線上Linux服務器的優化設置、系統安全與網絡安全策略

一、Linux服務器的優化設置 線上Linux的優化配置序號基礎優化配置內容說明1最小化安裝系統【僅安裝需要的,按需安裝、不用不裝】,必須安裝的有基本開發環境、基本網絡包、基本應用包。2ssh登錄策略優化 Linux服務器上的ssh服務端配置文件是【/et…

基于人眼視覺特性的相關圖像增強基礎知識介紹

目錄 1. 傳統的灰度級動態范圍優化配置方法 2.基于視覺特性的灰度級動態范圍調整優化 1. 傳統的灰度級動態范圍優化配置方法 傳統的灰度級動態范圍調整方法主要包括線性動態范圍調整及非線性動態 范圍調整。線性動態范圍調整是最簡單的灰度級動態范圍調整方法,觀察…

Selenium使用超全指南

🍅 點擊文末小卡片 ,免費獲取軟件測試全套資料,資料在手,漲薪更快概述selenium是網頁應用中最流行的自動化測試工具,可以用來做自動化測試或者瀏覽器爬蟲等。官網地址為:相對于另外一款web自動化測試工具QT…

Go通道操作全解析:從基礎到高并發模式

一、channel類型 Go 語言中的通道(channel)是一種特殊的類型。它類似于傳送帶或隊列,遵循先進先出(FIFO)原則,確保數據收發順序的一致性。每個通道都是特定類型的導管,因此在聲明時必須指定其元素類型。 channel是一種類型, 一種引用類型。 聲明通道類型的格式如下:…

Linux網絡--1、網絡基礎

目錄 一、網絡發展 二、理解分層 2.1OSI七層模型 2.2TCP/IP分層模型 2.3分層的好處 三、認識協議 3.1初步認識 3.2了解指定組織 3.3具體協議理解 3.3.1是什么 3.3.2為什么 3.3.3與OS的關系 3.4總結 四、網絡傳輸流程 4.1局域網網絡傳輸 4.1.1通信過程 4.1.2概念解析 4.2跨網…

前端視角下關于 WebSocket 的簡單理解

參考 RFC 6455: The WebSocket Protocol WebSocket 協議基礎 協議本質:在單個 TCP 連接上提供全雙工通信通道的協議核心優勢: 雙向實時通信(服務器主動推送)低延遲(相比 HTTP 輪詢)高效數據傳輸&#xff0…

自動化一鍵部署 LNMP 環境

第一步:準備環境 & 準備腳本文件1. 你在 CentOS 7 的服務器/虛擬機里打開終端,確認你有 root 權限或者能用 sudo。輸入下面命令確認你的系統版本:cat /etc/centos-release你應該看到類似:CentOS Linux release 7.9.2009 (Core…

react之React.cloneElement()

react提供的這個方法克隆組件的方法,可能我們在平常的開發中用的很少,主要可能是我們并不知道或者并不了解這個方法。因為我在之前react的children文章中用到過,所以我就進行了一系列的測試,發現真的非常的好用。我們同樣使用一些…

學習Java的Day27

今天學習的主要內容是在IntelliJ IDEA開發環境中,通過部署Tomcat服務器并連接MySQL數據庫,實現了一個完整的留言板系統。這個項目涵蓋了前后端開發的全流程,具體包括以下關鍵環節:開發環境搭建使用IntelliJ IDEA Ultimate版&#…

【計算機網絡 | 第3篇】物理媒介

文章目錄物理媒介介紹與物理媒體的分類🥝成本考量引導型傳輸媒體🍋引導型傳輸媒體:雙絞線🍋?🟩雙絞線類別雙絞線的發展歷程雙絞線的物理限制引導型傳輸媒體:同軸電纜🍋?🟩結構組成…