(לחצו על התמונה למעלה לצפייה בסרטון של השיעור הזה)
ברגע שתתחילו לעבוד על פרויקט שכולל מספר סוכנים, תצטרכו לשקול את תבנית העיצוב למערכות מרובות סוכנים. עם זאת, ייתכן שלא יהיה ברור מיד מתי לעבור למערכות מרובות סוכנים ומה היתרונות שלהן.
בשיעור הזה, אנחנו מחפשים לענות על השאלות הבאות:
לאחר השיעור הזה, תוכלו:
מה התמונה הגדולה?
מערכות מרובות סוכנים הן תבנית עיצוב שמאפשרת לסוכנים מרובים לעבוד יחד כדי להשיג מטרה משותפת.
תבנית זו נמצאת בשימוש נרחב בתחומים שונים, כולל רובוטיקה, מערכות אוטונומיות ומחשוב מבוזר.
אז באילו תרחישים כדאי להשתמש במערכות מרובות סוכנים? התשובה היא שישנם תרחישים רבים שבהם שימוש בסוכנים מרובים מועיל, במיוחד במקרים הבאים:
מערכת סוכן יחיד יכולה לעבוד היטב עבור משימות פשוטות, אך עבור משימות מורכבות יותר, שימוש בסוכנים מרובים יכול לספק מספר יתרונות:
בואו ניקח דוגמה: נניח שאנחנו רוצים להזמין טיול עבור משתמש. מערכת סוכן יחיד תצטרך לטפל בכל ההיבטים של תהליך הזמנת הטיול, החל מחיפוש טיסות ועד להזמנת מלונות ורכבים להשכרה. כדי להשיג זאת עם סוכן יחיד, הסוכן יצטרך להיות מצויד בכלים לטיפול בכל המשימות הללו. זה יכול להוביל למערכת מורכבת ומונוליתית שקשה לתחזק ולהרחיב. מערכת מרובת סוכנים, לעומת זאת, יכולה לכלול סוכנים שונים שמתמחים בחיפוש טיסות, הזמנת מלונות ורכבים להשכרה. זה יהפוך את המערכת ליותר מודולרית, קלה לתחזוקה וניתנת להרחבה.
השוו זאת למשרד נסיעות שמנוהל כעסק משפחתי לעומת משרד נסיעות שמנוהל כזכיינות. העסק המשפחתי יכלול סוכן יחיד שמטפל בכל ההיבטים של תהליך הזמנת הטיול, בעוד הזכיינות תכלול סוכנים שונים שמטפלים בהיבטים שונים של תהליך הזמנת הטיול.
לפני שתוכלו ליישם את תבנית העיצוב למערכות מרובות סוכנים, עליכם להבין את אבני הבניין שמרכיבות את התבנית.
בואו נעשה את זה יותר מוחשי על ידי התבוננות שוב בדוגמה של הזמנת טיול עבור משתמש. במקרה זה, אבני הבניין יכללו:
חשוב שתהיה לכם שקיפות לגבי האינטראקציות בין הסוכנים השונים. שקיפות זו חיונית לצורך איתור תקלות, אופטימיזציה והבטחת יעילות המערכת הכוללת. כדי להשיג זאת, עליכם להחזיק בכלים וטכניקות למעקב אחר פעילויות ואינטראקציות של סוכנים. זה יכול להיות בצורה של כלי רישום ומעקב, כלי ויזואליזציה ומדדי ביצועים.
לדוגמה, במקרה של הזמנת טיול עבור משתמש, תוכלו להחזיק לוח מחוונים שמציג את מצב כל סוכן, העדפות והגבלות המשתמש והאינטראקציות בין הסוכנים. לוח מחוונים זה יכול להציג את תאריכי הנסיעה של המשתמש, הטיסות שהומלצו על ידי סוכן הטיסות, המלונות שהומלצו על ידי סוכן המלונות והרכבים להשכרה שהומלצו על ידי סוכן הרכבים להשכרה. זה ייתן לכם תמונה ברורה של איך הסוכנים מתקשרים זה עם זה והאם העדפות והגבלות המשתמש מתקיימות.
בואו נבחן כל אחד מההיבטים הללו בפירוט.
כלי רישום ומעקב: אתם רוצים לבצע רישום עבור כל פעולה שנעשתה על ידי סוכן. רשומת רישום יכולה לכלול מידע על הסוכן שביצע את הפעולה, הפעולה שנעשתה, הזמן שבו הפעולה נעשתה והתוצאה של הפעולה. מידע זה יכול לשמש לצורך איתור תקלות, אופטימיזציה ועוד.
כלי ויזואליזציה: כלי ויזואליזציה יכולים לעזור לכם לראות את האינטראקציות בין סוכנים בצורה אינטואיטיבית יותר. לדוגמה, תוכלו להחזיק גרף שמציג את זרימת המידע בין סוכנים. זה יכול לעזור לכם לזהות צווארי בקבוק, חוסר יעילות ונושאים אחרים במערכת.
מדדי ביצועים: מדדי ביצועים יכולים לעזור לכם לעקוב אחר יעילות המערכת מרובת הסוכנים. לדוגמה, תוכלו לעקוב אחר הזמן שנדרש להשלמת משימה, מספר המשימות שהושלמו ליחידת זמן והדיוק של ההמלצות שנעשו על ידי הסוכנים. מידע זה יכול לעזור לכם לזהות אזורים לשיפור ולבצע אופטימיזציה למערכת.
בואו נצלול לתוך כמה תבניות קונקרטיות שניתן להשתמש בהן ליצירת אפליקציות מרובות סוכנים. הנה כמה תבניות מעניינות שכדאי לשקול:
תבנית זו שימושית כאשר אתם רוצים ליצור אפליקציית צ’אט קבוצתי שבה סוכנים מרובים יכולים לתקשר זה עם זה. שימושים טיפוסיים לתבנית זו כוללים שיתוף פעולה צוותי, תמיכת לקוחות ורשתות חברתיות.
בתבנית זו, כל סוכן מייצג משתמש בצ’אט הקבוצתי, והודעות מוחלפות בין סוכנים באמצעות פרוטוקול הודעות. הסוכנים יכולים לשלוח הודעות לצ’אט הקבוצתי, לקבל הודעות מהצ’אט הקבוצתי ולהגיב להודעות מסוכנים אחרים.
תבנית זו יכולה להיות מיושמת באמצעות ארכיטקטורה מרכזית שבה כל ההודעות מנותבות דרך שרת מרכזי, או ארכיטקטורה מבוזרת שבה ההודעות מוחלפות ישירות.
תבנית זו שימושית כאשר אתם רוצים ליצור אפליקציה שבה סוכנים מרובים יכולים להעביר משימות זה לזה.
שימושים טיפוסיים לתבנית זו כוללים תמיכת לקוחות, ניהול משימות ואוטומציה של תהליכים.
בתבנית זו, כל סוכן מייצג משימה או שלב בתהליך עבודה, וסוכנים יכולים להעביר משימות לסוכנים אחרים על בסיס כללים מוגדרים מראש.
תבנית זו שימושית כאשר אתם רוצים ליצור אפליקציה שבה סוכנים מרובים יכולים לשתף פעולה כדי להמליץ למשתמשים.
למה שתרצו שסוכנים מרובים ישתפו פעולה? כי כל סוכן יכול להיות בעל מומחיות שונה ולתרום לתהליך ההמלצה בדרכים שונות.
בואו ניקח דוגמה שבה משתמש רוצה המלצה על המניה הטובה ביותר לקנות בשוק המניות.
שקלו תרחיש שבו לקוח מנסה לקבל החזר כספי עבור מוצר. יכולים להיות לא מעט סוכנים שמעורבים בתהליך הזה, אבל בואו נחלק אותם לסוכנים ספציפיים לתהליך הזה ולסוכנים כלליים שיכולים לשמש בתהליכים אחרים.
סוכנים ספציפיים לתהליך ההחזר הכספי:
הנה כמה סוכנים שיכולים להיות מעורבים בתהליך ההחזר הכספי:
סוכנים כלליים:
סוכנים אלה יכולים לשמש חלקים אחרים בעסק שלכם.
יש לא מעט סוכנים שצוינו קודם, הן לתהליך ההחזר הכספי הספציפי והן לסוכנים הכלליים שיכולים לשמש חלקים אחרים בעסק שלכם. מקווים שזה נותן לכם רעיון איך להחליט אילו סוכנים להשתמש במערכת מרובת הסוכנים שלכם.
עצב מערכת רב-סוכנים לתהליך תמיכה בלקוחות. זהה את הסוכנים המעורבים בתהליך, תפקידיהם ואחריותם, וכיצד הם מתקשרים זה עם זה. שקול גם סוכנים ספציפיים לתהליך התמיכה בלקוחות וגם סוכנים כלליים שניתן להשתמש בהם בחלקים אחרים של העסק שלך.
חשוב לפני שאתה קורא את הפתרון הבא, ייתכן שתצטרך יותר סוכנים ממה שאתה חושב.
TIP: חשוב על השלבים השונים בתהליך התמיכה בלקוחות וגם שקול סוכנים הנדרשים לכל מערכת.
שאלה: מתי כדאי לשקול להשתמש ברב-סוכנים?
בשיעור זה, בחנו את תבנית העיצוב של רב-סוכנים, כולל התרחישים שבהם רב-סוכנים רלוונטיים, היתרונות של שימוש ברב-סוכנים לעומת סוכן יחיד, אבני הבניין ליישום תבנית העיצוב של רב-סוכנים, וכיצד לקבל תובנות לגבי האינטראקציה בין הסוכנים השונים.
הצטרף ל-Azure AI Foundry Discord כדי לפגוש לומדים אחרים, להשתתף בשעות קבלה ולקבל תשובות לשאלות שלך על סוכני AI.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס AI Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.