Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
人工智慧介面7 分鐘閱讀·Updated 2026 年 10 月·ExodeUI 團隊

A2UI 解釋:代理到 UI 協定的作用(和不作用)

A2UI 是一種聲明性 JSON 協議,可讓 AI 代理程式描述客戶端要渲染的介面。它是如何運作的,有哪些渲染器,以及它不做什麼。

直接總結與定義

核心要點

A2UI(Agent to UI)是由 Google 創建的開放式宣告式 JSON 協定。 AI 代理程式發送介面的描述,客戶端使用自己的本機元件呈現它,而不是從代理執行程式碼。它是一種跨信任邊界移動 UI 結構和資料的方法,而不是動畫系統、元件庫或成品渲染器。 ExodeUI 不是 A2UI 渲染器,也不隸屬於 Google。

A2UI是什麼?

A2UI 是代理驅動介面的協定。 AI 代理程式不是返回文字牆或執行產生的程式碼,而是發送描述 UI 的 JSON 訊息流:要建立哪個表面、它包含哪些元件以及填充它們的資料。客戶端接收這些訊息並使用它已經信任的元件呈現結果。 A2UI 由 Google 創建,並獲得 Apache 2.0 許可,並獲得 CopilotKit 和開源社群的貢獻。截至 2026 年 10 月,目前生產規範為 v0.9.1,v1.0 為候選版本。

A2UI正在嘗試解決的問題

代理擅長產生有用的答案,但不擅長將其作為介面提供。文字回覆無法顯示比較表、訂單表或儀表板。產生任意 HTML 或 JavaScript 解決了表示問題並建立了安全性問題,因為客戶端現在正在執行它未編寫的程式碼。 A2UI 採用第三條路線:代理程式以受約束的格式描述 UI,客戶端決定如何呈現它。代理只能使用客戶端認可的元件,輸出是資料而不是可執行程式碼。

A2UI 曲面是如何建構的

該協定使用一小組訊息類型。確切的架構在版本之間會發生變化,因此在實現之前請檢查規範,但形狀是穩定的。

  • createSurface:告訴渲染器建立一個新的表面,這是代理可以更新的介面區域
  • updateComponents:新增或變更該表面上的元件定義
  • updateDataModel:更改元件顯示的數據,而不重新傳送結構
  • deleteSurface:刪除不再需要的表面

渲染器和傳輸

A2UI 與傳輸無關。該規範描述了訊息,而不是訊息的傳輸方式。本專案列出了 Angular、Flutter、Lit、React 和 Markdown 的渲染器實現,以及 AG-UI、A2A 和 MCP 的傳輸綁定,也可以使用 WebSockets、SSE 和 REST。這種靈活性就是重點:相同的代理回應可以由 Web 用戶端、行動應用程式或桌面應用程式呈現,每個應用程式都使用自己的設計系統。

A2UI 不做什麼

A2UI 很容易被過度閱讀。它不提供可放入應用程式的元件庫,而且它本身不會渲染任何內容:您需要客戶端控制的渲染器和元件目錄。它不決定 UI 如何移動。它不會取代 MCP(向模型公開工具和資料)或 AG-UI(承載代理與前端之間的交互事件)。而且它並沒有消除工程審查的需要:產生的介面仍然必須處理載入、空和錯誤狀態、權限和可存取性。

A2UI vs AG-UI vs MCP

這三者經常被一起提及,因為它們解決同一問題的不同層面。一個有用的簡寫:A2UI 描述介面,AG-UI 承載交互,MCP 提供代理工具和資料。 A2UI自己的文件將AG-UI描述為A2UI的傳輸綁定,並且A2UI也可以透過MCP傳輸。它們是互補的,而不是競爭的標準。如果您選擇集成,請從您的客戶端可以呈現的內容以及它已經支援的傳輸開始,而不是從最具動力的協定開始。

動畫和互動的契合點

A2UI描述結構和資料。運動是客戶關心的問題:渲染器決定表面是否立即出現、淡入或從先前狀態過渡。這對產品團隊來說是個好消息,因為它將動畫系統保留在客戶端中,可以尊重設計系統和輔助功能設定。這也意味著 A2UI 實作不會自動設定動畫。如果產生的介面需要按下按鈕、狀態轉換或吉祥物反應,則用戶端必須提供該行為。 ExodeUI可以在客戶端播放互動式動作,而且它有一個用於AI編碼工具的MCP伺服器,但它不是A2UI渲染器,不應該被描述為一個。

生產實施片段

互動組件實現
// Simplified shape of an A2UI message stream (schema differs by version).
{ "createSurface":    { "surfaceId": "cart" } }
{ "updateComponents": { "surfaceId": "cart", "components": [ /* ... */ ] } }
{ "updateDataModel":  { "surfaceId": "cart", "data": { /* ... */ } } }
{ "deleteSurface":    { "surfaceId": "cart" } }

要記住的關鍵 Principle

  • A2UI 是用於代理描述介面的 JSON 協議,由 Google 創建並在 Apache 2.0 下獲得許可
  • 客戶端用自己的元件進行渲染;代理程式不會執行任意 UI 程式碼
  • 它定義訊息並將渲染器、傳輸和運動留給客戶端
  • 它不是動畫系統或嵌入式元件庫
  • ExodeUI 不是 A2UI 渲染器,與 Google 沒有任何關係

常見問題解答

相關指南和範例

互動式 UI 只需設計一次,交付同一個檔案。

在 ExodeUI 中以視覺方式建立狀態、彈簧物理與邏輯,並在 React、SwiftUI、Flutter 等中播放同一個檔案。免費開始。

免費試用