אתם יכולים להשתמש בכללי העברה כדי לשלוט באופן דטרמיניסטי בהעברות בין סוכנים ראשיים וסוכנים משניים באפליקציה מרובת סוכנים. אתם יכולים לשלוט בהעברות האלה על ידי הגדרת תנאים להעברות. אפשר לאלץ העברה באופן מיידי כשמתקיים תנאי מסוים, או לחסום העברות עד שיתקיים תנאי מסוים.
לדוגמה, סוכן א' מעביר את השיחה לסוכן ב' כשהמשתמש מאומת, או לסוכן ג' כשהמשתמש לא מאומת.
אפשר להשיג שליטה דומה בהעברות של נציגים באמצעות הוראות, אבל השליטה הזו לא דטרמיניסטית. אפשר גם להשתמש בפונקציות קריאה חוזרת (callback), אבל כדי להשתמש בהן צריך לכתוב קוד.
תרחישים לדוגמה:
- העברות קדימה (מסוכן לסוכן משנה)
- הפניית משתמשים מאומתים או לא מאומתים לסוכנים שונים
- הבנת הכוונה של המשתמש והפנייה לסוכן המתאים
- הפניית בקשות חשובות (לדוגמה, העברות כספיות, טיפול בפרטים אישיים מזהים) לסוכנים ספציפיים
- העברות לאחור (מסוכן משנה לסוכן)
- ניסיון חוזר של ניסיונות אימות שנכשלו
- חזרה ללולאה כדי לאסוף מידע נוסף
- הסמכה מחדש אחרי שינויים בדרישות המשתמשים
- תהליכים איטרטיביים לפתרון בעיות
הגדרות אישיות
כדי להגדיר כללי העברה מבונה הסוכנים:
- לוחצים על הלחצן + מתחת לצומת של סוכן.
- לוחצים על הוספת כללי העברה. ייפתח חלונית ההגדרות של כללי ההעברה, וסוכני הצאצא יופיעו בה.
- בוחרים נציג תמיכה משני. נפתחת חלונית הגדרת הכלל.
- בוחרים את כיוון ההעברה (להורה או לילד).
- אפשר להשתמש בממשק כדי להגדיר תנאים על סמך משתנים, או להשתמש באפשרות הקוד המתקדם.
- לוחצים על Save.
אם בוחרים באפשרות הקוד המתקדם, הנה דוגמה:
def should_trigger_transfer_callback(callback_context: CallbackContext) -> bool:
# Access session variables using callback_context:
# callback_context.variables['variable_name]
return True
מגבלות
חלות המגבלות הבאות.
כשיוצרים כלל שמשתמש בבדיקת משתנה, אפשר לציין כמה תנאים (אחד לכל משתנה). אפשר לקשר ביניהם באמצעות האופרטורים הלוגיים AND או OR. אפשר לבחור רק אופרטור אחד (AND/OR) לכל התנאים שמופיעים ברשימה. אם רוצים לשלב בין אופרטורים לוגיים לבין תנאים מקובצים, אפשר להשתמש באפשרות של קוד Python או לציין את התנאי באמצעות ה-API.
בבדיקות משתנים נתמכים רק סוגי המשתנים text, number ו-boolean (לא נתמכים סוגי הרשימות והאובייקטים המותאמים אישית).
כשמגדירים כלל שחוסם העברות, אפשר לציין את התנאי רק באמצעות משתנים (לא באמצעות קוד).
אם יוצרים תנאי מורכב באמצעות ה-API (שימוש בכמה AND/OR, קיבוץ וכו'), כלל ההעברה יופיע בממשק המשתמש כקריאה בלבד, וניתן יהיה לשנות אותו רק באמצעות ה-API.