MCP、A2A 後,AI 領域又新增 AG-UI 協議
什麼是 AG-UI
AG-UI(Agent User Interaction Protocol,智能體用戶交互協議) 是一個開放的、輕量的、基於事件的協議,由 CopilotKit 公司發佈,它通過標準 HTTP 或可選的二進制通道,以流式方式傳輸一系列 JSON 事件,主要用來對 AI agent 和前端應用程序的交互進行標準化。
CopilotKit 是一家成立於 2022 年的 AI 初創公司,聚焦在產品的 AI 助手打造上。官網的介紹是:AI Copilots for your product. Build fast, customize effortlessly. 官網地址爲:https://www.copilotkit.ai/。
AG-UI 主要解決什麼問題
CopilotKit 公司的人員解釋,當前大多數 agent 都屬於後端自動化工具,執行一些數據遷移、表單填寫、內容總結一類的任務,這些 agent 在後臺運行,對用戶不可見。但是交互式 agent(比如 Cursor、Windsurf、Devin 等)已經實現了與用戶的實時協同工作,它們也將帶來海量的應用場景。這種情況下,就需要這些 agent 能夠具備實時更新、工具編排、可共享的可變狀態、安全邊界控制以及前端同步等能力。爲此他們構建併發布了 AG-UI 協議。
AG-UI 介紹
AG-UI 爲 AI agent 和前端應用程序之間搭建了一座橋樑,讓這兩者之間的交互更加友好,爲用戶帶來更好體驗。示意圖如下:
-
• Application:用戶交互用到的應用程序(比如 chat 或其他任何 AI 應用)
-
• AG-UI 客戶端:通用的通信客戶端,諸如
HttpAgent,或用於連接現有協議的專用客戶端 -
• Agent:後端用戶處理用戶請求並生成流式響應的 agent
-
• Secure Proxy:能夠提供額外能力或作爲安全代理的後端服務
核心組件
AG-UI 的核心組件包括協議層(Protocol Layer)、標準化 HTTP 客戶端(Standard HTTP Client)、消息類型(Message Type)、運行智能體(Running Agent)、狀態管理(State Management)、工具交接(Tools and Handoff)以及事件(Events)。
協議層(Protocol Layer)
AG-UI 協議層主要爲 agent 通信提供一個靈活的基礎。協議的核心讓應用程序能夠運行 agent 並且接受到事件流。
標準 HTTP 客戶端
AG-UI 提供了一個標準的 HTTP 客戶端 HttpAgent,可用於連接任何支持 POST 請求的端點。該端點接收 RunAgentInput 類型的請求體,並返回 BaseEvent 對象的數據流。
HttpAgent 支持 HTTP SSE (Server-Sent Events) 和 HTTP binary protocol 兩種模式。
消息類型
AG-UI 爲 agent 通信的不同方面定義了一些事件策略,主要包括:
-
• Lifecycle events:監控 Agent 的運行情況。Agent 的運行狀態可能包含
RunStarted、StepStarted/StepFinished、RunFinished(成功)、RunError(失敗)。 -
• Text message events:用於處理文本流式內容的事件。這些事件遵循流模式,並以增量的方式交付內容。文本消息可能以
TextMessageStart開始,然後用TextMessageContent事件來交付文本,最後以TextMessageEnd事件結束。 -
• Tool call events:管理 Agent 對工具的執行。當 Agent 想要使用某個 tool 時,會觸發一個
ToolCallStart事件,隨後會有ToolCallArgs事件,用於流式傳輸傳遞給工具的參數,最後以一個ToolCallEnd事件結束。 -
• State management events:同步 Agent 和 UI 之間的狀態。協議中的狀態管理採用高效的 “快照 - 增量” 模式:初始或偶爾發送完整的狀態快照,而持續的變更則通過增量更新(delta)來傳遞。快照能夠確保前端有完整的狀態上下文,而 delta 最小化了需要頻繁更新的數據傳輸。兩者的有效結合,可以使前端不進行不必要數據傳輸的情況下,保持對 Agent 狀態的準確呈現。包括的事件有
StateSnapshot和StateDelta。 -
• Special events:支持自定義功能,比如和外部系統集成。包括的事件由
Raw和Custom。
運行 Agent
創建 agent 客戶端實例並啓用 agent。
狀態管理
AG-UI 通過專用事件對狀態進行管理,目前提供的事件有:
-
• STATE_SNAPSHOT:某一時刻的完整狀態表示;
-
• STATE_DELTA:使用 JSON 補丁格式(RFC 6902)的增量狀態變更;
-
• MESSAGES_SNAPSHOT:表示完整的對話歷史;
工具和交接
AG-UI 通過標準化事件來提供 agent 之間的任務移交的和工具的使用。
事件
AG-UI 中的所有通信都是基於類型事件。每一個事件都繼承自 BaseEvent,其接口如下:
interface BaseEvent {
type: EventType
timestamp?: number
rawEvent?: any
}
目前官方已經提供 TypeScript 和 Python SDK 來對協議進行開發使用。
MCP vs A2A vs AG-UI
去年底 Anthropic 發佈了 MCP(Model Context Protocol),今年 Google 又發佈了 A2A(Agent to Agent),都是面向這一輪 AI 發展的協議。
相比於 MCP 和 A2A,AG-UI 主要聚焦在智能體和用戶(agent-user)的交互層上。它和 MCP 於 A2A 並不是競爭關係。這三者在 AI 生態中的作用不同:
-
• AG-UI:主要處理由用戶(人)參與的交互以及流式更新用戶界面;
-
• A2A:主要促進智能體(agent-to-agent)之間的通信和協作;
-
• MCP:主要解決跨不同模型之間工具調用的標準化和上下文處理問題;
這三者互爲補充。舉個簡單的例子:相同的 agent 可以通過 A2A 來跟其他的 agent 進行通信,同時又使用 AG-UI 來跟用戶進行交互,另外還能通過 MCP 來進行工具的調用(tool call)。這三個協議,完成用戶 - Agent-LLM 之間交互的標準化。
三個協議構成的 Agent 協議棧如下圖所示:
相關鏈接
-
• CopilotKit 官網:https://copilotkit.ai/
-
• AG-UI GitHub:https://github.com/ag-ui-protocol/ag-ui
-
• AG-UI docs:https://docs.ag-ui.com/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/7mjuil26LHDWPtQQei7-mg