Renderer agent-to-UI (A2UI) Jetpack Compose menyediakan implementasi protokol A2UI, sehingga agen AI dapat membuat antarmuka pengguna yang interaktif dan lengkap yang merender komponen Compose native—tanpa menjalankan kode arbitrer. Library ini memetakan protokol JSON A2UI ke primitif Compose sambil mematuhi pengelolaan status idiomatis dan menyediakan reaktivitas terperinci berdasarkan sistem status Snapshot Compose.
Library perender A2UI Compose menawarkan kemampuan berikut:
- Reaktivitas berperforma tinggi
(
androidx.a2ui.compose:compose-runtime): Memberikan update UI yang terperinci dengan memanfaatkan sistem status Snapshot Compose, sehingga hanya komponen tertentu yang terpengaruh oleh update agen streaming atau interaksi pengguna yang direkomposisi. - API dan penyesuaian komponen yang fleksibel
(
androidx.a2ui.compose:compose-ui): Menyediakan pola terstruktur untuk menentukan katalog penerapan komponen yang memetakan skema protokol JSON ke UI Compose native Anda. Dengan begitu, Anda dapat membuat komponen yang mendukung rendering progresif, status pemuatan kustom subkomponen, transisi animasi, dan binding data dua arah yang dapat mengirim data kembali ke agen. - Inti yang agnostik terhadap sistem desain: Menjaga lapisan rendering UI dan runtime agar tidak bergantung pada sistem desain tertentu, sehingga Anda dapat membuat katalog kustom untuk sistem desain aplikasi atau menggunakan Katalog Dasar yang disediakan.
- Penanganan halus halusinasi AI (
androidx.a2ui:a2ui-modeldanandroidx.a2ui:a2ui-engine): Menyediakan validasi skema untuk mencegat payload yang salah format sebelum mencapai model status, penanganan error yang lancar melalui status error komponen, dan pelaporan error otomatis ke agen untuk mengoreksi diri sendiri. - Katalog Dasar Bawaan
(
androidx.compose.material3:material3-a2ui): Menyediakan implementasi Katalog Dasar siap pakai menggunakan komponen Material 3, yang mendukung rendering progresif dan tema Material di atas perender Compose.
Arsitektur tingkat tinggi
Setiap antarmuka A2UI didorong oleh katalog komponen. Daripada membuat agen menghasilkan kode UI arbitrer atau membuat komponen yang tidak terdaftar, katalog bertindak sebagai kontrak yang menentukan elemen UI, properti, dan fungsi tertentu yang tersedia untuk agen. Katalog mendeklarasikan komponen; agen menggunakannya untuk membuat antarmuka pengguna.
Untuk mendukung model ini, perender A2UI Compose memisahkan mesin rendering inti yang agnostik terhadap sistem desain dari penerapan katalog konkret di seluruh artefak Jetpack yang dijelaskan sebelumnya, dan menyediakan API pengujian khusus di androidx.a2ui.compose:compose-ui-testing.
Evolusi protokol dan kompatibilitas API
Renderer A2UI Compose saat ini mendukung versi 0.9.1 dari spesifikasi A2UI.
UI (androidx.a2ui.compose:compose-ui) dan lapisan runtime
(androidx.a2ui.compose:compose-runtime) menyediakan permukaan API untuk
aplikasi dan katalog komponen Anda, sementara lapisan data pokok
(androidx.a2ui:a2ui-model dan androidx.a2ui:a2ui-engine) mengelola
pemrosesan pesan dan penguraian khusus versi protokol. Karena library ini adalah bagian dari AndroidX, aturan kompatibilitas biner yang ketat berlaku. Misalnya, setelah API publik mencapai versi 1.0.0 yang stabil, tidak ada perubahan yang merusak pada permukaan API publik, seperti class dan antarmuka.
Renderer A2UI Compose menggunakan strategi berikut untuk mendukung evolusi protokol.
Mengembangkan UI dan API perender runtime
Seiring berkembangnya protokol A2UI atau penambahan kemampuan baru, API perender mendukung perubahan tersebut melalui pendekatan berikut:
- Penambahan API yang tidak merusak: Saat kemampuan baru diperkenalkan, kemampuan tersebut menjadi bagian dari antarmuka publik inti (seperti
A2uiComponentatauA2uiCatalog) dengan penerapan default. Hal ini memungkinkan komponen aplikasi Anda terus dikompilasi dan berfungsi tanpa modifikasi. - Perubahan yang menyebabkan gangguan membuat antarmuka lama tidak digunakan lagi: Jika
update protokol mendatang memperkenalkan perubahan yang tidak kompatibel, antarmuka lama yang tidak kompatibel (seperti
A2uiComponent) tidak digunakan lagi, dan antarmuka baru, sepertiA2uiComponentV2, diperkenalkan dan didukung bersama antarmuka lama.
Mengelola versi skema komponen dan katalog
Definisi skema katalog dikaitkan dengan versi protokol tertentu. Saat protokol berkembang, definisi katalog juga akan berkembang dan meningkatkan versinya. Implementasi komponen untuk versi "berikutnya" ini dapat menggunakan API perender yang telah diupdate.
Untuk membantu mengaktifkan migrasi yang lancar, klien Anda dapat mendeklarasikan beberapa versi katalog yang didukung, yang diperoleh agen selama fase negosiasi kemampuan.