رندرکنندهی Jetpack Compose agent-to-UI (A2UI) پیادهسازی پروتکل A2UI را ارائه میدهد که به عاملهای هوش مصنوعی امکان میدهد رابطهای کاربری غنی و تعاملی ایجاد کنند که اجزای Compose بومی را رندر میکنند - بدون اجرای کد دلخواه. این کتابخانه پروتکل A2UI JSON را به Compose primitives نگاشت میکند و در عین حال به مدیریت حالت اصطلاحی پایبند است و واکنشپذیری دقیقی را بر اساس سیستم حالت Compose Snapshot ارائه میدهد.
کتابخانه رندر Compose A2UI قابلیتهای زیر را ارائه میدهد:
- واکنشپذیری با عملکرد بالا (
androidx.a2ui.compose:compose-runtime): با استفاده از سیستم وضعیت Compose Snapshot، بهروزرسانیهای دقیق رابط کاربری را ارائه میدهد و تضمین میکند که فقط اجزای خاصی که تحت تأثیر بهروزرسانیهای عامل جریان یا تعاملات کاربر قرار گرفتهاند، دوباره ترکیب میشوند. - APIهای کامپوننت انعطافپذیر و سفارشیسازی (
androidx.a2ui.compose:compose-ui): یک الگوی ساختاریافته برای تعریف کاتالوگهای پیادهسازی کامپوننتها ارائه میدهد که طرحوارههای پروتکل JSON را به رابط کاربری بومی Compose شما نگاشت میکنند. این به شما امکان میدهد کامپوننتهایی بسازید که از رندرینگ پیشرونده، حالتهای بارگذاری سفارشی زیرکامپوننتها، انتقالهای انیمیشنی و اتصال دادههای دوطرفه که میتوانند دادهها را به عامل ارسال کنند، پشتیبانی میکنند. - هسته مستقل از سیستم طراحی : لایههای زمان اجرا و رندر رابط کاربری را مستقل از هر سیستم طراحی خاصی نگه میدارد و به شما امکان میدهد کاتالوگهای سفارشی برای سیستم طراحی برنامه خود بسازید یا کاتالوگ پایه ارائه شده را اتخاذ کنید.
- مدیریت بهینه توهمات هوش مصنوعی (
androidx.a2ui:a2ui-modelوandroidx.a2ui:a2ui-engine): اعتبارسنجی طرحواره را برای رهگیری بارهای ناقص قبل از رسیدن به مدلهای حالت، مدیریت بهینه خطا از طریق حالتهای خطای مؤلفه و گزارش خودکار خطا به یک عامل برای اصلاح خودکار، فراهم میکند. - کاتالوگ پایه داخلی (
androidx.compose.material3:material3-a2ui): پیادهسازی کاتالوگ پایه آماده برای استفاده را با استفاده از کامپوننتهای Material 3 ارائه میدهد که از رندرینگ پیشرونده و قالببندی Material بر روی رندرکننده Compose پشتیبانی میکند.
معماری سطح بالا
هر رابط کاربری A2UI توسط یک کاتالوگ کامپوننت هدایت میشود. به جای اینکه یک عامل کد رابط کاربری دلخواه تولید کند یا کامپوننتهای ثبت نشده اختراع کند، کاتالوگ به عنوان قراردادی عمل میکند که عناصر رابط کاربری خاص، ویژگیها و توابع موجود برای عامل را تعریف میکند. کاتالوگ کامپوننتها را اعلام میکند؛ عامل از آنها برای ساخت رابطهای کاربری استفاده میکند.
برای پشتیبانی از این مدل، رندرکننده Compose A2UI هسته، موتور رندرینگ مستقل از سیستم طراحی را از پیادهسازیهای کاتالوگ عینی در سراسر مصنوعات Jetpack که قبلاً توضیح داده شد، جدا میکند و APIهای تست اختصاصی را در androidx.a2ui.compose:compose-ui-testing ارائه میدهد.
تکامل پروتکل و سازگاری API
رندرکنندهی Compose A2UI در حال حاضر از نسخه ۰.۹.۱ مشخصات A2UI پشتیبانی میکند.
لایههای رابط کاربری ( 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 از استراتژیهای زیر برای پشتیبانی از تکامل پروتکل استفاده میکند.
رابط کاربری و APIهای رندرکنندهی زمان اجرا را تکامل دهید
همزمان با تکامل یا اضافه شدن قابلیتهای جدید به پروتکل A2UI، رابطهای برنامهنویسی کاربردی (API) رندرکننده از این تغییرات از طریق رویکردهای زیر پشتیبانی میکنند:
- اضافه شدن APIهای بدون مشکل : وقتی یک قابلیت جدید معرفی میشود، به بخشی از یک رابط عمومی اصلی (مانند
A2uiComponentیاA2uiCatalog) با پیادهسازی پیشفرض تبدیل میشود. این به اجزای برنامه شما اجازه میدهد بدون تغییر به کامپایل و عملکرد خود ادامه دهند. - تغییرات ناگهانی باعث منسوخ شدن رابطهای قدیمیتر میشوند : اگر بهروزرسانی پروتکل در آینده تغییر ناسازگاری ایجاد کند، رابطهای قدیمی ناسازگار (مانند
A2uiComponent) منسوخ میشوند و رابطهای جدید، مانندA2uiComponentV2، در کنار آنها معرفی و پشتیبانی میشوند.
کاتالوگ نسخه و طرحوارههای کامپوننت
تعریف طرحواره کاتالوگ با یک نسخه پروتکل خاص مرتبط است. هنگامی که پروتکل تکامل مییابد، تعریف کاتالوگ نیز به تبع آن تکامل مییابد و نسخه خود را ارتقا میدهد. پیادهسازیهای کامپوننت برای این نسخه "بعدی" میتوانند از APIهای رندرکننده بهروزرسانیشده استفاده کنند.
برای کمک به فعالسازی مهاجرتهای یکپارچه، کلاینت شما میتواند چندین نسخه کاتالوگ پشتیبانیشده را اعلام کند که عامل در طول مرحله مذاکره قابلیتها دریافت میکند.