מגה סוכנים

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

יש מגוון סיבות שבגללן כדאי לכם להשתמש בסוכנים גדולים:

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

מגבלות

המגבלות הבאות חלות על סוכנים ראשיים:

  • מגה סוכן והסוכנים המשניים שלו צריכים להיווצר באותו אזור.
  • באותו אזור, מגה סוכן וסוכני המשנה שלו משויכים לפרויקטים שונים ב- Google Cloud .
  • למגה סוכן יכולים להיות עד 10 סוכני משנה.
  • שיחה קלילה לא עובדת עם סוכנים גדולים.
  • לסדר העדיפויות של הכוונות של סוכני המשנה אין השפעה על התאמת הכוונות כששולחים בקשות לסוכן ראשי.
  • אי אפשר להשתמש בשילוב עם Google Assistant עם מגה סוכן.
  • שילובים מובנים של טלפוניה שנוצרו על ידי שותפים (AudioCodes,‏ Avaya,‏ SignalWire,‏ Voximplant) לא נתמכים.
  • מגה סוכן לא תומך בכוונות ברירת מחדל שמשמשות ככוונות המשך.

יצירת סוכני משנה

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

יצירה או עדכון של מגה סוכן

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

‫Dialogflow מביא בחשבון את רוב ההגדרות של הסוכן מהמגה סוכן ומתעד נתונים במגה סוכן. לדוגמה:

ממשק משתמש באינטרנט

1. יצירת מגה סוכן

  1. עוברים אל מסוף Dialogflow ES.
  2. בתפריט הצדדי הימני, לוחצים על יצירת סוכן. (אם כבר יש לכם סוכנים אחרים, לוחצים על שם הסוכן, גוללים לתחתית ולוחצים על יצירת סוכן חדש).
  3. מזינים את השם של הנציג, את שפת ברירת המחדל, את אזור הזמן שמוגדר כברירת מחדל ואתGoogle Cloud הפרויקט.
  4. מגדירים את סוג הסוכן כסוכן מגה.
  5. לוחצים על הלחצן יצירה.

2. הוספה וניהול של סוכני משנה

  1. בתפריט הצד הימני, לוחצים על סוכני משנה.
  2. בוחרים סוכן משנה שרוצים להוסיף למגה סוכן.
  3. ברירת המחדל של סוכן המשנה Environment היא Draft, אבל אפשר לעדכן אותה לפי הצורך.
  4. אם רוצים להשתמש במאגר הידע שמשויך לסוכן המשנה, צריך לשנות את השדה מExcluded (לא נכלל) ל-Included (נכלל).
  5. לוחצים על Save.

הגדרת תפקידים

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

  1. יוצרים את הפרויקטים של המגה סוכן וסוכני המשנה Google Cloud בדרך הרגילה, ומוודאים שהפעלתם את Dialogflow API בכל אחד מהם.
  2. אם אתם מתכננים להשתמש ב-API כדי ליצור אינטראקציה עם המגה סוכן, אתם צריכים להקצות תפקיד בכל אחד מהפרויקטים של הסוכנים המשניים לחשבון השירות שבו אתם משתמשים לקריאות ל-API של המגה סוכן. התפקיד צריך לכלול הרשאה לביצוע קריאות לזיהוי כוונות. התפקידים הבאים יספקו את הגישה הזו: Project Owner, עריכת פרויקט, אדמין של Dialogflow API או לקוח של Dialogflow API. כדי לקבל את כתובת האימייל של חשבון השירות הזה:
    1. עוברים אל הדף בנושא חשבונות שירות ב-IAM.
    2. בוחרים את הפרויקט של המגה סוכן.
    3. בוחרים חשבון שירות שכבר יצרתם לקריאות API או מוסיפים חשבון שירות חדש עם התפקיד הרצוי. פועלים לפי הוראות ההגדרה כדי ליצור חשבון שירות חדש ולהוריד מפתח פרטי.
    4. רושמים את כתובת האימייל בחשבון השירות שנבחר. תצטרכו את זה בהמשך.
  3. אם אתם מתכננים להשתמש בשילובים כלשהם למגה סוכן, לחשבון השירות שנוצר אוטומטית service-project-number@gcp-sa-dialogflow. של פרויקט מגה סוכן צריכה להיות הרשאה בפרויקט הזה שכוללת הרשאה לבצע שיחות לזיהוי כוונות. התפקידים הבאים יספקו את הגישה הזו: Project Owner, עריכת פרויקט, אדמין של Dialogflow API או לקוח של Dialogflow API. כדי לקבל את כתובת האימייל של חשבון השירות הזה:

    1. עוברים אל הדף הראשי של IAM.
    2. בוחרים את הפרויקט של המגה סוכן.
    3. בצד שמאל, מפעילים את האפשרות Include Google-provided role grants (הכללת תפקידים שניתנו על ידי Google).
    4. מאתרים את חשבון השירות שתואם לתבנית:
      service-project-number@gcp-sa-dialogflow..
    5. רושמים את כתובת האימייל בחשבון השירות שנבחר. תצטרכו את זה בהמשך.
  4. לכל פרויקט של סוכן משנה, מקצים תפקידים לחשבונות השירות של מגה סוכן שאספתם למעלה:

    1. עוברים אל הדף הראשי של IAM.
    2. בוחרים את הפרויקט של סוכן המשנה.
    3. מקצים את התפקידים הרצויים לכתובות האימייל בחשבון השירות של מגה סוכן בפרויקט.

זיהוי כוונות

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

לדוגמה, נניח שיש לכם את הסוכנים המשניים הבאים:

סוכן משנה הרציונל ביטויים לאימון
הזמנות ספרים ‫"I want to buy a book" (אני רוצה לקנות ספר)
‫"Add a book to my cart" (הוספת ספר לעגלת הקניות)
כובעים ‫"I want to purchase a hat" (אני רוצה לקנות כובע)
‫"I want a hat" (אני רוצה כובע)
חשבון יתרה ‫"What is my balance?‎" (מה היתרה שלי?)
‫"How much is left in my account?‎" (כמה כסף נשאר לי בחשבון?)
כתובת ‫"I want to change my address" (אני רוצה לשנות את הכתובת שלי)
‫"I have a new address" (יש לי כתובת חדשה)

אם משתמש קצה אומר "I want to buy a hat please" (אני רוצה לקנות כובע בבקשה), בקשה לזיהוי כוונות שנשלחת למגה סוכן תניב התאמה לכוונת Hats בסוכן Orders.

כדי לציין סוכנים משניים אחד או יותר לבקשת זיהוי כוונות, צריך להגדיר את השדה subAgents של QueryParameters. לדוגמה, קובץ ה-JSON של בקשת REST ייראה כך:

{
  "queryInput": {
    "text": {
      "text": "reserve a meeting room for six people",
      "languageCode": "en-US"
    }
  },
  "queryParams": {
    "subAgents": [
       {"project": "projects/sub-agent-1-project-id"},
       {"project": "projects/sub-agent-2-project-id"}
    ]
  }
}

הפעלת אירועים

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

sub-agent-project-id.event-name

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

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

הגדרת הקשר הפלט

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

projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_agent_project_id.context_name

לדוגמה, אם הסשן הוא projects/mega_agent_project_id/agent/sessions/session_id, ואתם רוצים להגדיר הקשר בשם music_context לסוכן משנה עם מזהה פרויקט sub_project_1, אתם יכולים להגדיר את הקשר של הפלט עם השם הבא:

projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_project_1.music_context

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

משך החיים של ההקשר

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

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

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

גרסאות וסביבות

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

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