לכל מדריך צריך להיות לפחות דוגמה אחת. הדוגמאות האלה הן שיחות לדוגמה בין משתמש קצה לבין ספר ההפעלה, כולל הדיאלוג והפעולות שהסוכן מבצע. אלה למעשה דוגמאות להנחיות מכמה דוגמאות עבור ה-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, נדרש JSON עבור סוגי ה-method
POST, PUTו-PATCH.requestBodyדוגמה לקלט של כלי 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 .." } ] }
כדי לוודא שהמדריך הוא חסין תקלות, כדאי לכלול בו גם דוגמאות לאופן שבו המדריך צריך להגיב אם הפעלת הכלי נכשלת.
הפעלת כלי 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.
- פרמטרים של החזרת נתונים מהזרימה: פרמטרים של פלט שמוחזרים מהזרימה.
מעבר בין רצפי פעולות
פעולת מעבר ב-Flow היא פעולה סופית (לא אמורות להיות פעולות נוספות אחריה) שמציינת שהמדריך לשגרה החליט לצאת ולעבור ל-Flow יעד. הערה: מכיוון שהפעולה הזו מציינת שה-Playbook יוצא, צריך להוסיף את פרמטרי הפלט של ה-Playbook לפלט של ה-Playbook בדוגמה.