איך יוצרים תהליכי עבודה מבוססי-סוכנים באמצעות Gemini Nano

תהליכי העבודה מבוססי-הסוכנים של ML Kit (גרסת אלפא, com.google.mlkit:genai-agent) מאפשרים לכם ליצור ממשקי צ'אט אוטונומיים עם מספר שלבים במכשיר, שמבוססים על Gemini Nano ועל שירות המערכת Android AICore.

הכלי AgentRunner מבוסס על המחלקה GenerativeModel (גישה ישירה למודל), והוא הופך לאוטומטיות לולאות סוכנים מלאות שמוכוונות למטרה מסוימת ישירות באפליקציה: צפייה בהקשר, הסקת מסקנות על סמך קלט מהמשתמש, פעולה באמצעות כלים מסוג Kotlin והערכת משוב עד שמתקיים תנאי סיום.

תבניות נפוצות של סוכנים

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

דוגמת עיצוב

דוגמה

ביצוע פעולות באפליקציה וקיצורי דרך

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

חיפוש מובנה וחישוב מקומי

אחזור רשומה ספציפית לפי מזהה (כמו סטטוס הזמנה או יתרה בחשבון) וביצוע חישובים מתמטיים בכמה שלבים (כמו הפחתת הלוואות או מדדי כושר).

סינון ואוצרות תוכן באמצעות שיחה

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

קלט מודרך בכמה שלבים

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

ביצועים ופרטיות במכשיר

תהליכי עבודה מבוססי-סוכנים פועלים ב-Android AICore כדי לספק ביצוע פרטי ומהיר ישירות במכשיר של המשתמש:

  • הסקת מסקנות מקומית ופרטיות ההנחיות: לולאת הסקת המסקנות והתכנון של המודל פועלת אך ורק במכשיר, בלי זמן אחזור ברשת. נתוני ההנחיות של המשתמשים נשארים פרטיים במכשיר. עם זאת, כלים ספציפיים שמוטמעים באפליקציה עדיין יכולים לבצע קריאות לרשת או לשלוח שאילתות ל-Cloud API אם תרחיש השימוש שלכם דורש נתונים חיצוניים.
  • ניהול של סשנים עם כמה שלבים: הממשק של AgentSession שומר בזיכרון את היסטוריית השיחה לאורך השלבים, כך שלא צריך לנהל את התמלילים באופן ידני. אתם יכולים להחזיר את הזיכרון בכל שלב באמצעות השיטות session.close(),‏ deleteSession(sessionId) או clearAllSessions().
  • אמצעי הגנה על הביצוע: הגדרות הנציג אוכפות מגבלה מקסימלית על מספר התורות (המגבלה של maxTurns, שמוגדרת כברירת מחדל ל-10) כתנאי לסיום המשאבים, כדי למנוע לולאות ביצוע בלתי נשלטות, לחסוך בסוללה ולהגן על מהירות התגובה של המכשיר.

בוחרים בין יצירה בהתאמה אישית, סוכנים וממשקי API ספציפיים למשימות

היכולות של ה-AI הגנרטיבי במכשיר מאורגנות ב-ML Kit לפי רמת ההתאמה האישית והתזמור שהתכונה שלכם צריכה:

  • יצירה וסוכנים בהתאמה אישית: עובדים ישירות עם המודל הבסיסי של Gemini Nano כשהתכונה דורשת הוראות בהתאמה אישית או לוגיקה ספציפית לדומיין. בחרו בAgentic Workflows (באמצעות המחלקה AgentRunner, שמבוססת על המחלקה GenerativeModel) אם אתם רוצים סשנים מנוהלים רב-שלביים ולולאות קריאה אוטומטית לפונקציות, או בחרו בגישה ישירה למודל (באמצעות המחלקה GenerativeModel) להנחיות בהתאמה אישית, פלט מובנה עם סוגים או היסטוריה של כמה פניות שמנוהלת על ידי הלקוח.
  • דיבור ואודיו: שימוש במודלים ייעודיים של דיבור ו-AI גנרטיבי (כמו זיהוי דיבור) כדי לתמלל אודיו של דיבור לטקסט.
  • ‫משימות טקסט ותמונה: משתמשים בסוגי תכונות שהוגדרו מראש וספציפיים למשימה, ובמתאמי LoRA שעברו כוונון על גבי מודל הבסיס המשותף (כמו תיאור תמונה, סיכום, הגהה ושכתוב) לתרחישי שימוש מוכנים לראייה ולכתיבה בלי הנדסת פרומפטים.

בטבלה הבאה מפורטת השוואה בין הגישות האלה:

התעניינות ברכישה

Agentic Workflows (AgentRunner)

גישה ישירה למודל (GenerativeModel)

ממשקי Tasks API לטקסט ותמונה

ארכיטקטורה

שכבת תזמור ברמה גבוהה שמבוססת על GenerativeModel.

ממשק ישיר למודל הבסיס Gemini Nano להנחיות בהתאמה אישית.

סוגי תכונות ספציפיים למשימות שמגובים במתאמי LoRA שעברו כוונון עדין, בנוסף למודל הבסיס המשותף.

הקשר של שיחה רב-שלבית

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

הקשר רב-שלבי בניהול הלקוח. ‫GenerateContentRequest תומך בשיחה מרובת-תורות (התפקידים USER ו-MODEL) וב-sessionId למפתחים שרוצים לנהל את היסטוריית הצ'אט שלהם ישירות.List<Content>

קריאות למשימות ללא שמירת מצב (stateless) עם קלט יחיד.

הפעלת כלים ופעולות

לולאה אוטומטית של קריאה לפונקציות. הוא מגלה פונקציות AppFunctions רשומות ב-Android, מפעיל קריאות שנבחרו על ידי המודל ומזין את התוצאות בחזרה למודל באופן אוטומטי.

הצהרות על כלים בניהול הלקוח. ‫GenerateContentRequest מקבל סכימות של כלים ושולח בקשות להפעלת פונקציות שהאפליקציה שלכם צריכה להריץ ולהחזיר באופן ידני.

לא רלוונטי (צינור עיבוד נתונים קבוע של משימות).

מתי להשתמש?

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

אפשר להשתמש בו כדי להתאים אישית את ההנחיות, להבין תמונות בכמה אופנים, להקליד פלט מובנה (@Generable) או כשרוצים לנהל את היסטוריית הצ'אט או את שליחת הכלים ישירות.

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

השלבים הבאים