כלי לרינדור ממשק משתמש של סוכן ב-Jetpack Compose (A2UI)

רכיב ה-renderer של Jetpack Compose agent-to-UI ‏ (A2UI) מספק הטמעה של פרוטוקול A2UI, ומאפשר לסוכני AI ליצור ממשקי משתמש עשירים ואינטראקטיביים שמציגים רכיבי Compose נייטיביים – בלי להריץ קוד שרירותי. הספרייה הזו ממפה את פרוטוקול ה-JSON של A2UI לפרימיטיבים של Compose, תוך הקפדה על ניהול מצב אידיומטי ומתן תגובתיות מדויקת שמבוססת על מערכת המצב של Compose Snapshot.

ספריית רכיבי ה-UI של Compose A2UI מציעה את היכולות הבאות:

  • תגובתיות עם ביצועים גבוהים (androidx.a2ui.compose:compose-runtime): מספקת עדכונים מדויקים בממשק המשתמש באמצעות מערכת מצב התמונה של Compose, כדי להבטיח שרק הרכיבים הספציפיים שמושפעים מעדכונים של סוכן הסטרימינג או מאינטראקציות של המשתמשים יורכבו מחדש.
  • APIs גמישים של רכיבים והתאמה אישית (androidx.a2ui.compose:compose-ui): מספק תבנית מובנית להגדרת קטלוגים של הטמעות רכיבים שממפים סכימות של פרוטוקול JSON לממשק המשתמש המקורי של Compose. כך תוכלו ליצור רכיבים שתומכים בעיבוד הדרגתי, במצבי טעינה מותאמים אישית של רכיבי משנה, במעברים מונפשים ובקישורי נתונים דו-כיווניים שיכולים לשלוח נתונים בחזרה לסוכן.
  • ליבה אגנוסטית למערכת עיצוב: שומרת על השכבות של זמן הריצה ושל עיבוד ממשק המשתמש באופן בלתי תלוי בכל מערכת עיצוב ספציפית, ומאפשרת לכם ליצור קטלוגים בהתאמה אישית למערכת העיצוב של האפליקציה או להשתמש בקטלוג הבסיסי שסופק.
  • טיפול יעיל בהזיות של AI (androidx.a2ui:a2ui-model ו-androidx.a2ui:a2ui-engine): אימות סכימה כדי ליירט מטען ייעודי פגום לפני שהוא מגיע למודלים של מצבים, טיפול יעיל בשגיאות באמצעות מצבי שגיאה של רכיבים ודיווח שגיאות אוטומטי לסוכן לצורך תיקון עצמי.
  • קטלוג בסיסי מובנה (androidx.compose.material3:material3-a2ui): הטמעה מוכנה לשימוש של קטלוג בסיסי באמצעות רכיבי Material 3, עם תמיכה בעיבוד הדרגתי ועיצוב Material על גבי רכיב העיבוד של Compose.

ארכיטקטורה ברמה גבוהה

כל ממשק A2UI מבוסס על קטלוג רכיבים. במקום שהנציג ייצור קוד שרירותי של ממשק משתמש או ימציא רכיבים לא רשומים, הקטלוג משמש כחוזה שמגדיר את רכיבי ממשק המשתמש הספציפיים, המאפיינים והפונקציות שזמינים לנציג. הקטלוג מכריז על הרכיבים; הסוכן משתמש בהם כדי ליצור ממשקי משתמש.

כדי לתמוך במודל הזה, רכיב ה-renderer של Compose A2UI מפריד בין מנוע ה-rendering של ליבת המערכת, שלא תלוי במערכת העיצוב, לבין הטמעות קונקרטיות של קטלוגים בארטיפקטים של Jetpack שמתוארים למעלה, ומספק ממשקי API ייעודיים לבדיקה בכתובת androidx.a2ui.compose:compose-ui-testing.

התפתחות הפרוטוקול ותאימות ה-API

רכיב ה-Renderer של ממשק המשתמש המתקדם של Compose תומך כרגע בגרסה 0.9.1 של מפרט ממשק המשתמש המתקדם.

שכבות ממשק המשתמש (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 הציבוריים, כמו מחלקות וממשקים.

רכיב ה-Renderer של Compose A2UI משתמש באסטרטגיות הבאות כדי לתמוך בהתפתחות הפרוטוקול.

שיפור ממשקי ה-API של ממשק המשתמש ושל רכיב ה-renderer בזמן הריצה

ככל שהפרוטוקול A2UI מתפתח או נוספות לו יכולות חדשות, ממשקי ה-API של רכיב הרינדור תומכים בשינויים האלה באמצעות הגישות הבאות:

  • תוספות ל-API שלא גורמות לשינויים שוברים: כשמוסיפים יכולת חדשה, היא הופכת לחלק מממשק ציבורי מרכזי (כמו A2uiComponent או A2uiCatalog) עם הטמעה שמוגדרת כברירת מחדל. כך רכיבי האפליקציה ימשיכו להתקמפל ולפעול ללא שינוי.
  • שינויים שוברים גורמים להוצאה משימוש של ממשקים ישנים יותר: אם עדכון עתידי של הפרוטוקול יכלול שינוי לא תואם, ממשקים ישנים ולא תואמים (כמו A2uiComponent) יוצאו משימוש, וממשקים חדשים (כמו A2uiComponentV2) יושקו ויתמכו בהם.

קטלוג גרסאות וסכימות של רכיבים

הגדרת סכימת קטלוג משויכת לגרסה ספציפית של פרוטוקול. כשהפרוטוקול מתפתח, הגדרת הקטלוג מתפתחת בהתאם והגרסה שלו מתקדמת. הטמעות של רכיבים בגרסה ה'הבאה' הזו יכולות להשתמש בממשקי ה-API המעודכנים של רכיב הרינדור.

כדי לאפשר העברות חלקות, הלקוח יכול להצהיר על כמה גרסאות קטלוג נתמכות, שהסוכן מקבל במהלך שלב המשא ומתן על היכולות.