Jetpack Compose 代理至 UI (A2UI) 算繪器提供 A2UI 通訊協定的實作項目,可讓 AI 代理生成豐富的互動式使用者介面,並算繪原生 Compose 元件,而不會執行任意程式碼。這個程式庫會將 A2UI JSON 通訊協定對應至 Compose 基本類型,同時遵循慣用的狀態管理,並根據 Compose Snapshot 狀態系統提供精細的反應性。
Compose A2UI 轉譯器程式庫提供下列功能:
- 高效能反應性 (
androidx.a2ui.compose:compose-runtime):運用 Compose 快照狀態系統,提供精細的 UI 更新,確保只有受串流代理程式更新或使用者互動影響的特定元件會重新組合。 - 彈性元件 API 和自訂功能
(
androidx.a2ui.compose:compose-ui):提供結構化模式,用於定義元件實作的目錄,將 JSON 通訊協定結構定義對應至原生 Compose UI。您可以藉此建構支援漸進式算繪、子元件自訂載入狀態、動畫轉場效果,以及可將資料傳回代理程式的雙向資料繫結。 - 與設計系統無關的核心:讓執行階段和 UI 算繪層獨立於任何特定設計系統,方便您為應用程式的設計系統建構自訂目錄,或採用提供的基本目錄。
- 妥善處理 AI 幻覺 (
androidx.a2ui:a2ui-model和androidx.a2ui:a2ui-engine):提供結構定義驗證功能,在錯誤的酬載送達狀態模型前攔截,透過元件錯誤狀態妥善處理錯誤,並自動向代理程式回報錯誤,以進行自我修正。 - 內建基本目錄
(
androidx.compose.material3:material3-a2ui):提供使用 Material 3 元件的現成基本目錄實作,支援在 Compose 算繪器上進行漸進式算繪和 Material 主題設定。
整體架構
所有 A2UI 介面都由元件目錄驅動。目錄可做為合約,定義代理程式可用的特定 UI 元素、屬性和函式,避免代理程式產生任意 UI 程式碼或發明未註冊的元件。目錄會宣告元件,代理程式則會使用這些元件建構使用者介面。
為支援這個模型,Compose A2UI 算繪器會將核心、與設計系統無關的算繪引擎,從先前所述 Jetpack 構件中的具體目錄實作項目分離,並在 androidx.a2ui.compose:compose-ui-testing 中提供專屬測試 API。
通訊協定演進和 API 相容性
Compose A2UI 轉譯器目前支援 A2UI 規格的 0.9.1 版。
UI (androidx.a2ui.compose:compose-ui) 和執行階段層 (androidx.a2ui.compose:compose-runtime) 會為應用程式和元件目錄提供 API 介面,而底層資料層 (androidx.a2ui:a2ui-model 和 androidx.a2ui:a2ui-engine) 則會管理通訊協定版本專屬的剖析和訊息處理作業。由於這些程式庫屬於 AndroidX,因此適用嚴格的二進位檔相容性規則。舉例來說,公用 API 達到穩定版 1.0.0 後,公用 API 介面 (例如類別和介面) 不會出現破壞性變更。
Compose A2UI 轉譯器會使用下列策略,支援通訊協定演進。
演進 UI 和執行階段算繪器 API
隨著 A2UI 通訊協定演進或新增功能,Renderer API 會透過下列方式支援這些變更:
- 不會造成中斷的 API 新增項目:導入新功能時,會成為核心公開介面 (例如
A2uiComponent或A2uiCatalog) 的一部分,並提供預設實作方式。這樣一來,應用程式的元件就能繼續編譯及運作,不必進行修改。 - 重大變更會導致舊版介面遭到淘汰:如果日後的通訊協定更新導入不相容的變更,舊版不相容的介面 (例如
A2uiComponent) 就會遭到淘汰,並推出新的介面 (例如A2uiComponentV2) 供支援。
版本目錄和元件結構定義
目錄結構定義與特定通訊協定版本相關聯。 隨著通訊協定演進,目錄定義也會相應演進,並提升版本。這個「下一個」版本的元件實作項目可以使用更新的算繪器 API。
為協助順暢遷移,用戶端可以宣告多個支援的目錄版本,代理程式會在功能協商階段取得這些版本。