דוגמאות ל-Playbook

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

במסוף יש ממשק שבו אפשר להזין פעולות.

סוכנים רב-לשוניים

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

דוגמה לסיכום קלט ולסיכום פלט

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

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

מצב לדוגמה

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

  • OK: תוכנית הפעולה השיגה את המטרה שלה, ועכשיו השליטה תועבר לתוכנית הפעולה הראשית.
  • CANCELLED: המשתמש החליט לא להמשיך עם היעד שהוקצה לחוברת ההדרכה. השליטה תועבר עכשיו למדריך ההורים. אם ספר ההפעלה הראשי הוא רצף פעולות ב-CX, המערכת תזהה את הכוונה של קלט של משתמשים לפני הפעלת רצף הפעולות.
  • FAILED: אי אפשר להמשיך את תהליך ההגדרה של תוכנית הפעולה בגלל שגיאה מסוימת (למשל, הכלי מחזיר שגיאת 500). הסשן יסתיים עם הסטטוס 'נכשל'. הודעה מסוג EndInteraction תתווסף לתשובה.
  • ESCALATED: המדריך קבע שהוא לא יכול להשיג את המטרה וצריך להעביר את המצב לטיפול של נציג אנושי. הסשן יסתיים עם הסטטוס 'הועבר לטיפול ברמה גבוהה יותר'. הודעת EndInteraction תתווסף לתשובה.
  • PENDING: השיחה עדיין מתנהלת בתוך ספר ההפעלה.

הדוגמה ברמה העליונה והקריאות שלה ל-Playbook צריכות להיות מסומנות במצב שמתאים ל-Playbook שאליו הן מפנות.

אסטרטגיית בחירה

ההגדרה של אסטרטגיית הבחירה קובעת אם דוגמה תיכלל בהנחיה של מדריך ההפעלה שנשלחת ל-LLM. אלו האפשרויות הזמינות:

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

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

  • אף פעם לא לבחור: הדוגמה אף פעם לא נכללת בהנחיה. לדוגמה לא תהיה השפעה על הביצועים של מדריך הפעולה. ההגדרה הזו שימושית להחרגה זמנית של דוגמה לצורך בדיקה.

הוספת פעולה

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

יש שתי דרכים להוסיף פעולות לדוגמה:

  • כדי להוסיף פעולה באופן ידני, לוחצים על הלחצן + בתחתית החלונית השמאלית או על הלחצן הוספת פעולה כשמעבירים את מצביע העכבר מעל פעולות קיימות. אפשר להשתמש באפשרויות האלה כשיוצרים דוגמה חדשה על ידי לחיצה על האפשרות + דוגמה או כשעורכים דוגמה קיימת.
  • כדי ליצור פעולות באופן אוטומטי על סמך ההוראות הקיימות ב-Playbook, מזינים קלט של משתמשים בשדה Enter user input (הזנת קלט משתמש) בחלק התחתון של החלונית השמאלית. אפשר להשתמש באפשרות הזו כשיוצרים או עורכים דוגמה. אפשר גם להשתמש באפשרות הזו כשבודקים את ספר ההפעלה בזמן הריצה בחלונית תצוגה מקדימה של ספר ההפעלה בצד שמאל. כדי לשמור פעולות בדוגמה מתוך החלונית תצוגה מקדימה של ספר ההפעלה, לוחצים על שמירת הדוגמה אחרי שבוחרים את הקריאה לספר ההפעלה מתוך רשימת הקריאות בצד ימין של החלונית תצוגה מקדימה של ספר ההפעלה.

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

אלה סוגי הפעולות שנתמכות ב-Playbook:

תשובה של Playbook

התשובה של ספר ההפעלה לשאילתת המשתמש.

קלט של משתמשים

שאילתת המשתמש.

שימוש בכלי

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

  • כלי: שם הכלי שצריך להפעיל.

  • פעולה: שם הפעולה של כלי OpenAPI שצריך להפעיל. בכלים לאחסון נתונים ובכלי הפונקציות, שם הפעולה זהה לשם הכלי.

  • קלט לכלי: קלטים שייכללו בקריאה לכלי. התשובות האלה נגזרות בדרך כלל מהתורות הקודמות בשיחה עם המשתמש.

    ב כלי Open API, requestBody נדרש JSON עבור סוגי ה-method‏ POST, ‏ PUT ו-PATCH.

    דוגמה לקלט של כלי Open API requestBody לפעולה createPet:

    {
      "id": 1,
      "name": "Luna"
    }
    

    בכלי מאגר הנתונים, הדוגמה requestBody שבה השאילתה היא חובה ושאר השדות הם אופציונליים.

    {
      "query": "Where is my nearest store?",
      "filter": "country: ANY(\"United States\")",
      "userMetadata": {
        "userCity": "San Francisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • פלט הכלי: התגובה של הפעלת הכלי. זו תגובת JSON תקינה מהכלי לקלט שצוין. במקרה של כלי Open API, יכול להיות שזו גם שגיאת מחרוזת (לדוגמה, '404 לא נמצא').

    פלט לדוגמה של כלי Open API לפעולה listPets:

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    פלט לדוגמה של הכלי 'מאגר נתונים לדוגמה':

    {
      "answer": "Here's the address to your nearest store ...",
      "snippets": [
        {
          "title": "San Francisco Downtown",
          "uri": "https://www.example.com/San_Francisco_Downtown",
          "text": "Address for San Francisco Downtown .."
        }
      ]
    }
    

כדי לוודא שה-playbook לא ייכשל, כדאי לכלול בו גם דוגמאות לאופן שבו הוא צריך להגיב אם הפעלת הכלי נכשלת. הפעלת כלי API שנכשלה יכולה להיות מיוצגת כמחרוזת שגיאה ("404 לא נמצא") בפלט של הכלי. בכלים של מאגר נתונים, אפשר להשתמש בקלט fallback כדי לציין איך להגיב אם אין תשובה מסוכמת.

אם רוצים שכלי מאגר הנתונים יכלול URI בתשובה של ספר ההפעלה, צריך להוסיף דוגמאות שמכילות את ה-URI שרוצים שספר ההפעלה ישיב. אם ה-URI הזה מגיע מכלי מאגר הנתונים, הפלט של כלי מאגר הנתונים צריך להכיל URI שתואם ל-URI בתגובת מדריך ההפעלה. הערה fallback לא יכולה לשמש בתרחיש הזה כי היא תשבית את היכולת של חוברת ההפעלה של LLM לנסח מחדש את התשובה של כלי מאגר הנתונים כדי לכלול כתובות URI בתשובה של חוברת ההפעלה.

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

הפעלת הפלייבוק

הפעולה הזו משמשת כשצריך להפעיל מחברת הפעלה אחרת של משימה כדי למלא את השאילתה של המשתמש. בפעולה הזו צריך לציין את הפרטים הבאים:

  • Playbook: שם הפלייבוק להפעלה.
  • סיכום של הקלט להפעלת מדריך הפעולה: סיכום של החלקים הרלוונטיים בשיחה הקודמת שעשויים להיות שימושיים למדריך הפעולה שמופעל.
  • פרמטרים של קלט: פרמטרים של קלט להעברה ל-Playbook.
  • סיכום פלט של הפעלת Playbook: סיכום של מה ש-Playbook צריך ליצור בסיום השגת היעד שלו.
  • פרמטרים של פלט: פרמטרים של פלט שנוצרו על ידי ספר ההפעלה לאחר השלמת היעד שלו.

מודעת מעבר ב-Playbook

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

הפעלת תהליך

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

  • Flow: שם התהליך להפעלה.
  • פרמטרים של קלט ל-Flow: פרמטרים של קלט להעברה ל-Flow.
  • פרמטרים של החזרת נתונים מהזרימה: פרמטרים של פלט שמוחזרים מהזרימה.

מעבר בין רצפי פעולות

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