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

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

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

תרחיש: תהליך החזר כספי
שקלו תרחיש שבו לקוח מנסה לקבל החזר עבור מוצר — ייתכן שיהיו מספר סוכנים המעורבים בתהליך זה, אך נחלק אותם בין סוכנים ספציפיים לתהליך זה וסוכנים כלליים שניתן להשתמש בהם בתהליכים אחרים.
סוכנים ייעודיים לתהליך ההחזר:
להלן כמה סוכנים שיכולים להיות מעורבים בתהליך ההחזר:
- סוכן הלקוח: סוכן זה מייצג את הלקוח ואחראי על יזימת תהליך ההחזר.
- סוכן המוכר: סוכן זה מייצג את המוכר ואחראי על עיבוד ההחזר.
- סוכן התשלום: סוכן זה מייצג את תהליך התשלום ואחראי על החזרת התשלום ללקוח.
- סוכן הפתרון/יישוב: סוכן זה מייצג את תהליך הפתרון ואחראי על פתרון כל בעיה שעולה במהלך תהליך ההחזר.
- סוכן ציות: סוכן זה מייצג את תהליך הציות ואחראי על ווידוא שתהליך ההחזר עומד בתקנות ובמדיניות.
סוכנים כלליים:
אלה סוכנים שניתן להשתמש בהם גם בחלקים אחרים בעסק שלכם.
- סוכן שילוח: סוכן זה מייצג את תהליך השילוח ואחראי על החזרת המוצר למוכר. סוכן זה ניתן לשימוש הן בתהליך ההחזר והן למשלוח רגיל של מוצר ברכישה.
- סוכן משוב: סוכן זה מייצג את תהליך איסוף המשוב ואחראי על איסוף משוב מהלקוח. משוב יכול להינתן בכל זמן ולא רק במהלך תהליך ההחזר.
- סוכן הסלמה: סוכן זה מייצג תהליך ההסלמה ואחראי על הסלמת בעיות לרמת תמיכה גבוהה יותר. תוכלו להשתמש בסוג סוכן זה בכל תהליך שבו יש צורך להסלים בעיה.
- סוכן התראות: סוכן זה מייצג את תהליך ההתראות ואחראי על שליחת התראות ללקוח בשלבים שונים של תהליך ההחזר.
- סוכן אנליטיקה: סוכן זה מייצג את תהליך האנליטיקה ואחראי על ניתוח נתונים הקשורים לתהליך ההחזר.
- סוכן ביקורת: סוכן זה מייצג את תהליך הביקורת ואחראי על ביצוע ביקורת על תהליך ההחזר כדי לוודא שהוא מתבצע כהלכה.
- סוכן דוחות: סוכן זה מייצג את תהליך הדיווח ואחראי על יצירת דוחות על תהליך ההחזר.
- סוכן ידע: סוכן זה מייצג את תהליך הידע ואחראי על תחזוקת מאגר ידע של מידע הקשור לתהליך ההחזר. סוכן זה יכול להיות בעל ידע גם בנושאי החזרים וגם בחלקים אחרים של העסק.
- סוכן אבטחה: סוכן זה מייצג את תהליך האבטחה ואחראי על הבטחת אבטחת תהליך ההחזר.
- סוכן איכות: סוכן זה מייצג את תהליך האיכות ואחראי על הבטחת איכות תהליך ההחזר.
נרשמו למעלה מספר סוכנים הן עבור תהליך ההחזר הייעודי והן עבור הסוכנים הכלליים שניתן להשתמש בהם בחלקים אחרים של העסק שלכם. מקווה שזה נותן לכם רעיון כיצד תוכלו להחליט אילו סוכנים להשתמש במערכת הרב-סוכנית שלכם.
משימה
עצבו מערכת רב-סוכנית לתהליך תמיכת לקוחות. הזהו את הסוכנים המעורבים בתהליך, את תפקידיהם ואחריותם, ואת אופן האינטראקציה ביניהם. שקלו גם סוכנים ייעודיים לתמיכת לקוחות וסוכנים כלליים שניתן להשתמש בהם בחלקים אחרים של העסק שלכם.
חשוב לחשוב לפני קריאת הפתרון הבא, ייתכן שתזדקקו ליותר סוכנים ממה שאתם חושבים.
טיפ: חשבו על השלבים השונים בתהליך תמיכת הלקוחות ושקלו גם סוכנים הנדרשים לכל מערכת.
פתרון
פתרון
בדיקות ידע
שאלה: מתי כדאי לשקול שימוש בריבוי סוכנים?
חידון הפתרון
סיכום
בשיעור זה בחנו את דפוס העיצוב של ריבוי סוכנים, כולל התרחישים שבהם ריבוי סוכנים ישים, היתרונות של שימוש בריבוי סוכנים לעומת סוכן יחיד, אבני הבניין ליישום דפוס העיצוב של ריבוי סוכנים, ואיך לקבל נראות על האופן שבו הסוכנים המרובים מתקשרים זה עם זה.
יש לכם שאלות נוספות לגבי דפוס העיצוב של ריבוי סוכנים?
הצטרפו לערוץ ה‑Discord של Microsoft Foundry כדי להיפגש עם לומדים אחרים, להשתתף בשעות ייעוץ ולקבל מענה לשאלותיכם על סוכני ה-AI.
משאבים נוספים
השיעור הקודם
תכנון ועיצוב
השיעור הבא
מטה־קוגניציה בסוכני AI
הצהרת אחריות:
מסמך זה תורגם באמצעות שירות תרגום בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדייק, יש לקחת בחשבון שתרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. יש לראות במסמך המקורי בשפתו המקורית כמקור הסמכות. עבור מידע קריטי מומלץ תרגום מקצועי על ידי מתרגם אנושי. איננו אחראים לכל אי-הבנה או פרשנות שגויה הנובעת מהשימוש בתרגום זה.