במסמך הזה מוסבר איך לבחור תבנית עיצוב למערכת ה-AI האקטיבי שלכם. תבניות עיצוב של סוכנים הן גישות ארכיטקטוניות נפוצות ליצירת אפליקציות מבוססות-סוכנים. תבנית עיצוב של סוכן מציעה מסגרת נפרדת לארגון הרכיבים של המערכת, לשילוב המודל ולתזמור של סוכן אחד או כמה סוכנים כדי להשלים תהליך עבודה.
סוכני AI יעילים לאפליקציות שפותרות בעיות פתוחות, שעשויות לדרוש קבלת החלטות אוטונומית וניהול תהליכי עבודה מורכבים עם כמה שלבים. הם מצוינים בפתרון בעיות בזמן אמת באמצעות נתונים חיצוניים, ובאוטומציה של משימות שדורשות ידע רב. סוכני AI מתאימים כשרוצים שה-AI ישלים משימות ממוקדות מטרה עם מידה מסוימת של אוטונומיה. לתרחישים אחרים, אתם יכולים להשתמש באפליקציות של AI גנרטיבי ו-AI מסייע. מה ההבדל בין סוכני AI, עוזרים אישיים מבוססי-AI ובוטים?
המדריך הזה מבוסס על ההנחה שיש לכם ידע בסיסי במערכות AI אקטיבי, ועל ההבדלים בין הארכיטקטורה שלהן לבין זו של מערכות לא אקטיביות, כמו מערכות שמשתמשות בהסקת מסקנות ישירה ממודלים או בדור מבוסס-אחזור (RAG).
לסיכום של ההנחיות לתבניות של סוכנים, קראו את הקטע השוואה בין תבניות עיצוב בהמשך המאמר.
סקירה כללית של תהליך העיצוב
אלה השלבים העיקריים לבחירת תבנית עיצוב למערכת ה-AI האקטיבי. השלבים האלה מתוארים בפירוט בהמשך המסמך.
- הגדרת הדרישות: בוחנים את המאפיינים של עומס העבודה, כולל מורכבות המשימה, ציפיות לגבי זמן האחזור והביצועים, התקציב והצורך במעורבות אנושית.
- סקירת תבניות העיצוב הנפוצות של סוכנים: במדריך הזה מוסבר על תבניות העיצוב הנפוצות, כולל מערכות עם סוכן יחיד ומערכות עם כמה סוכנים.
- בחירת תבנית: בוחרים את תבנית העיצוב המתאימה לפי מאפייני עומס העבודה.
התהליך הזה הוא לא החלטה חד-פעמית. כדאי לחזור על השלבים האלה מדי פעם כדי לשפר את הארכיטקטורה בהתאם לשינויים במאפיינים של עומס העבודה, להתפתחות הדרישות או לתכונות חדשות של Google Cloud .
הגדרת הדרישות
השאלות הבאות הן לא רשימות משימות מקיפות לתכנון. השאלות האלה יכולות לעזור לכם לזהות את המטרה העיקרית של המערכת מבוססת הסוכנים ולבחור את תבנית העיצוב המתאימה.
- מאפייני המשימה: האם אפשר להשלים את המשימה בשלבים מוגדרים מראש בתהליך העבודה, או שהמשימה פתוחה? האם המשימה שלכם צריכה להשתמש במודל AI כדי לתזמר את תהליך העבודה?
- זמן אחזור וביצועים: האם אתם צריכים לתת עדיפות לתשובות מהירות או אינטראקטיביות על חשבון הדיוק או האיכות של התשובות? או שאפשר להמתין קצת כדי לקבל תוצאה מדויקת או יסודית יותר?
- עלות: מה התקציב שלכם לעלויות הסקה? האם אפשר לתמוך בתבניות שדורשות כמה קריאות למודל בשביל בקשה אחת?
- מעורבות אנושית: האם המשימה כוללת החלטות חשובות, פעולות קריטיות לבטיחות או אישורים סובייקטיביים שדורשים שיקול דעת אנושי?
אם עומס העבודה שלכם צפוי או מובנה מאוד, או אם אפשר לבצע אותו באמצעות קריאה אחת למודל AI, יכול להיות שיהיה משתלם יותר לבחון פתרונות לא מבוססי-סוכנים למשימה. לדוגמה, יכול להיות שלא תצטרכו תהליך עבודה מבוסס-סוכנים למשימות כמו סיכום מסמך, תרגום טקסט או סיווג משוב מלקוחות. במאמר בחירת מודלים ותשתית לאפליקציית AI גנרטיבי מוסבר איך לבחור רכיבי ארכיטקטורה לאפליקציות AI גנרטיבי שלא דורשות תשתית מבוססת-סוכנים.
בקטעים הבאים מתוארות תבניות עיצוב נפוצות של סוכנים, שיעזרו לכם לבנות מערכת AI אקטיבית יעילה ואמינה.
מערכת עם נציג אחד
מערכת עם סוכן יחיד משתמשת במודל AI, בקבוצה מוגדרת של כלים ובהנחיית מערכת מקיפה כדי לטפל באופן אוטונומי בבקשת משתמש או להשלים משימה ספציפית. בדפוס הבסיסי הזה, הנציג מסתמך על יכולות החשיבה של המודל כדי לפרש את הבקשה של המשתמש, לתכנן רצף של שלבים ולהחליט באילו כלים להשתמש מתוך קבוצה מוגדרת. ההנחיה למערכת מעצבת את התנהגות הנציג על ידי הגדרת המשימה העיקרית, הדמות והפעולות שלו, והתנאים הספציפיים לשימוש בכל כלי.
בתרשים הבא מוצגת תצוגה כללית של תבנית עם נציג אחד:
מערכת עם סוכן אחד מתאימה למשימות שדורשות כמה שלבים וגישה לנתונים חיצוניים. לדוגמה, נציג תמיכת לקוחות צריך לשלוח שאילתה למסד נתונים כדי למצוא סטטוס הזמנה, או שעוזר מחקר צריך לקרוא לממשקי API כדי לסכם חדשות אחרונות. מערכת לא-סוכנתית לא יכולה לבצע את המשימות האלה כי היא לא יכולה להשתמש בכלים באופן אוטונומי או להוציא לפועל תוכנית עם כמה שלבים כדי לסנתז תשובה סופית.
אם אתם בשלבים המוקדמים של פיתוח הנציג, מומלץ להתחיל עם נציג אחד. כשמתחילים לפתח סוכן במערכת עם סוכן יחיד, אפשר להתמקד בשיפור הלוגיקה, ההנחיות וההגדרות של הכלים של הסוכן לפני שמוסיפים רכיבים מורכבים יותר לארכיטקטורה.
אם סוכן אחד משתמש ביותר כלים והמשימות שלו מורכבות יותר, הביצועים שלו עלולים להיות פחות יעילים. יכול להיות שתבחינו בכך כזמן אחזור מוגבר, בחירה או שימוש שגויים בכלים, או אי-השלמה של המשימה. במקרים רבים אפשר לצמצם את הבעיות האלה על ידי שיפור תהליך החשיבה של הנציג באמצעות טכניקות כמו דפוס סיבה ופעולה (ReAct). עם זאת, אם תהליך העבודה שלכם דורש סוכן שינהל כמה תחומי אחריות נפרדים, יכול להיות שהשיטות האלה לא יספיקו. במקרים כאלה, כדאי להשתמש במערכת מרובת סוכנים, שיכולה לשפר את העמידות והביצועים על ידי הקצאת מיומנויות ספציפיות לסוכנים ייעודיים.
מערכות מרובות סוכנים (MAS)
מערכת מרובת סוכנים מתאמת בין כמה סוכנים ייעודיים כדי לפתור בעיה מורכבת שסוכן אחד לא יכול לנהל בקלות. העיקרון הבסיסי הוא לפרק מטרה גדולה למשימות משנה קטנות יותר, ולהקצות כל משימת משנה לנציג ייעודי עם מיומנות ספציפית. הסוכנים האלה פועלים בתהליכי עבודה משותפים או היררכיים כדי להשיג את היעד הסופי. תבניות עם כמה סוכנים מספקות עיצוב מודולרי שיכול לשפר את יכולת ההתאמה לעומס, את האמינות ואת יכולת התחזוקה של המערכת כולה, בהשוואה לסוכן יחיד עם הנחיה מונוליתית.
במערכת מרובת סוכנים, כל סוכן צריך הקשר ספציפי כדי לבצע את המשימה שלו ביעילות. ההקשר יכול לכלול מסמכים, העדפות קודמות, קישורים רלוונטיים, היסטוריית שיחות או מגבלות תפעוליות. תהליך הניהול של זרימת המידע הזו נקרא הנדסת הקשר. הנדסת הקשר כוללת אסטרטגיות כמו בידוד ההקשר של נציג ספציפי, שמירת מידע לאורך כמה שלבים או דחיסת כמויות גדולות של נתונים כדי לשפר את היעילות.
סוכני AI מציגים סיכוני אבטחה ייחודיים וקריטיים, ששיטות אבטחה דטרמיניסטיות רגילות לא תמיד יכולות לצמצם בצורה מספקת. משתמשים ב-Agent Gateway כדי לנתב את תעבורת הנתונים הנכנסת והיוצאת ולאבטח אותה, ב-Agent Identity כדי לאמת את עומסי העבודה ולבצע בקרת גישה עם הרשאות מינימליות, וב-Agent Registry כדי לוודא שהסוכנים משתמשים בכלים ובסוכני משנה מאומתים.
ההנחיות בקטע הזה הן חלקיות. מידע נוסף על גורמי תכנון ושיטות מומלצות, והמלצות לבנייה ולפריסה של מערכת AI אקטיבי עם כמה סוכנים, זמינים במאמר מערכת AI אקטיבי עם כמה סוכנים ב- Google Cloud.
תבנית רציפה
בתבנית רציפה של כמה סוכנים, סדרה של סוכנים עם התמחויות שונות פועלת בסדר לינארי שנקבע מראש, שבו הפלט של סוכן אחד משמש כקלט הישיר של הסוכן הבא. התבנית הזו משתמשת בסוכן של תהליך עבודה סדרתי שפועל לפי לוגיקה מוגדרת מראש, בלי להתייעץ עם מודל AI כדי לתזמר את סוכני המשנה שלו.
התרשים הבא מציג תצוגה כללית של תבנית רציפה עם כמה סוכנים:
התבנית הרציפה מתאימה לתהליכים מובנים מאוד שחוזרים על עצמם, שבהם רצף הפעולות לא משתנה. לדוגמה, יכול להיות שבתהליך עיבוד נתונים, סוכן לחילוץ נתונים ישלוף נתונים גולמיים, יעביר אותם לסוכן לניקוי נתונים כדי שיעצב אותם, והסוכן הזה יעביר את הנתונים הנקיים לסוכן לטעינת נתונים כדי שישמור אותם במסד נתונים.
התבנית הרציפה יכולה להפחית את זמן האחזור ואת עלויות התפעול בהשוואה לתבנית שמשתמשת במודל AI כדי לתזמר את תהליך העבודה של המשימות. עם זאת, היעילות הזו באה על חשבון הגמישות. המבנה הקשיח והמוגדר מראש של צינור עיבוד הנתונים מקשה על ההתאמה לתנאים דינמיים או על דילוג על שלבים מיותרים, מה שעלול לגרום לעיבוד לא יעיל או להוביל לזמן אחזור מצטבר ארוך יותר אם שלב מיותר הוא איטי.
תבנית מקבילה
בתבנית מקבילה עם כמה סוכנים, שנקראת גם תבנית בו-זמנית, כמה סוכני משנה ייעודיים מבצעים משימה או משימות משנה באופן עצמאי ובמקביל. הפלט של סוכני המשנה מסונתז כדי ליצור את התשובה המאוחדת הסופית. בדומה לתבנית רציפה, התבנית המקבילה משתמשת בסוכן מקביל של תהליך עבודה כדי לנהל את האופן שבו הסוכנים האחרים פועלים ואת הזמן שבו הם פועלים, בלי להתייעץ עם מודל AI כדי לתזמר את סוכני המשנה שלו.
התרשים הבא מציג תצוגה ברמה גבוהה של תבנית מקבילה עם כמה סוכנים:
השתמשו בתבנית המקבילה כשאתם יכולים לבצע משימות משנה בו-זמנית כדי לצמצם את זמן האחזור או לאסוף נקודות מבט שונות, כמו איסוף נתונים ממקורות שונים או הערכה של כמה אפשרויות בבת אחת. לדוגמה, כדי לנתח משוב מלקוחות, סוכן מקביל יכול להפיץ רשומת משוב אחת לארבעה סוכנים עם התמחויות שונות בו-זמנית: סוכן לניתוח סנטימנטים, סוכן לחילוץ מילות מפתח, סוכן לסיווג וסוכן לזיהוי דחיפות. סוכן אחרון אוסף את ארבעת הפלטים האלה לניתוח מקיף אחד של המשוב הזה.
התבנית המקבילה יכולה להפחית את זמן האחזור הכולל בהשוואה לגישה רציפה, כי היא יכולה לאסוף מידע מגוון מכמה מקורות בו-זמנית. עם זאת, הגישה הזו כרוכה בפשרות מבחינת עלות ומורכבות. הפעלה של כמה נציגים במקביל יכולה להגדיל את ניצול המשאבים המיידי ואת צריכת הטוקנים, מה שמוביל לעלויות תפעול גבוהות יותר. בנוסף, שלב האיסוף דורש לוגיקה מורכבת כדי לסנתז תוצאות שעלולות להיות סותרות, מה שמוסיף לעלויות הפיתוח והתחזוקה של המערכת.
תבנית לולאה
תבנית לולאת הסוכנים המרובים מפעילה שוב ושוב רצף של סוכני משנה ייעודיים עד שמתקיים תנאי סיום ספציפי. התבנית הזו משתמשת בסוכן של תהליך עבודה בלולאה, שכמו סוכנים אחרים של תהליכי עבודה, פועל לפי לוגיקה מוגדרת מראש בלי להתייעץ עם מודל AI לצורך תזמור. אחרי שכל סוכני המשנה מסיימים את המשימות שלהם, סוכן הלולאה בודק אם מתקיים תנאי יציאה. התנאי יכול להיות מספר מקסימלי של חזרות או מצב מותאם אישית. אם תנאי היציאה לא מתקיים, סוכן הלולאה מתחיל שוב את רצף הסוכנים המשניים. אפשר להטמיע תבנית לולאה שבה תנאי היציאה נבדק בכל שלב בתהליך. השתמשו בתבנית הלולאה למשימות שדורשות שיפור איטרטיבי או תיקון עצמי, כמו יצירת תוכן ושימוש בסוכן ביקורת כדי לבדוק אותו עד שהוא עומד בתקן איכות.
התרשים הבא מציג תצוגה ברמה גבוהה של תבנית לולאה עם כמה סוכנים:
תבנית הסוכן בלולאה מאפשרת ליצור תהליכי עבודה מורכבים ואיטרטיביים. הוא מאפשר לסוכנים לשפר את העבודה שלהם ולהמשיך לעבד עד שהם מגיעים לאיכות או למצב מסוימים. עם זאת, החיסרון העיקרי של התבנית הזו הוא הסיכון ללולאה אינסופית. אם תנאי הסיום לא מוגדר נכון או אם סוכני המשנה לא מצליחים להגיע למצב שנדרש כדי לעצור, הלולאה יכולה לפעול ללא הגבלה. זה יכול להוביל לעלויות תפעול מוגזמות, לצריכת משאבים גבוהה ולתקיעות פוטנציאליות של המערכת.
תבנית לבדיקה וביקורת
תבנית הביקורת והביקורת של כמה סוכנים, שנקראת גם תבנית הגנרטור והביקורת, משפרת את האיכות והאמינות של התוכן שנוצר באמצעות שני סוכנים ייעודיים, בדרך כלל בתהליך עבודה רציף. תבנית הבדיקה והביקורת היא הטמעה של תבנית סוכן הלולאה.
בתבנית "בדיקה וביקורת", סוכן יוצר מפיק פלט ראשוני, כמו בלוק קוד או סיכום של מסמך. בשלב הבא, סוכן ביקורת מעריך את הפלט הזה לפי קריטריונים מוגדרים מראש, כמו דיוק עובדתי, עמידה בכללי עיצוב או הנחיות בטיחות. על סמך ההערכה, המבקר יכול לאשר את התוכן, לדחות אותו או להחזיר אותו ליוצר עם משוב לתיקון.
התרשים הבא מציג תצוגה כללית של דפוס בדיקה וביקורת של כמה סוכנים:
התבנית הזו מתאימה למשימות שבהן הפלט חייב להיות מדויק מאוד או לעמוד במגבלות מחמירות לפני שהוא מוצג למשתמש או משמש בתהליך המשך. לדוגמה, בתהליך עבודה של יצירת קוד, סוכן יוצר יכול לכתוב פונקציה כדי למלא את הבקשה של המשתמש. הקוד שנוצר מועבר לסוכן ביקורת שפועל כמבקר אבטחה. התפקיד של סוכן הביקורת הוא לבדוק את הקוד מול קבוצה של אילוצים, כמו סריקה לאיתור נקודות חולשה באבטחה או אימות שהוא עובר את כל בדיקות היחידה, לפני שהקוד מאושר לשימוש.
תבנית הבדיקה והביקורת יכולה לשפר את האיכות, הדיוק והאמינות של הפלט, כי היא מוסיפה שלב אימות ייעודי. עם זאת, בקרת האיכות הזו כרוכה בעלות ישירה של זמן אחזור מוגבר והוצאות תפעוליות. תהליך העבודה דורש לפחות קריאה אחת נוספת למודל כדי שהמבקר יעריך את התוכן. אם התהליך כולל לולאות של תיקונים שבהן התוכן נשלח בחזרה לשיפור, זמן האחזור והעלויות מצטברים בכל איטרציה.
תבנית שיפור איטרטיבי
תבנית השיפור האיטרטיבי משתמשת במנגנון לולאה כדי לשפר בהדרגה את הפלט לאורך כמה מחזורים. תבנית השיפור האיטרטיבי היא הטמעה של תבנית סוכן הלולאה.
בדפוס הזה, נציג אחד או יותר פועלים בתוך לולאה כדי לשנות תוצאה שמאוחסנת במצב הסשן במהלך כל איטרציה. התהליך נמשך עד שהפלט עומד בסף איכות שהוגדר מראש או עד שהוא מגיע למספר מקסימלי של חזרות, כדי למנוע לולאות אינסופיות.
התרשים הבא מציג תצוגה ברמה גבוהה של תבנית שיפור איטרטיבית עם כמה סוכנים:
התבנית הזו מתאימה למשימות יצירה מורכבות שקשה להשיג את הפלט שלהן בשלב אחד. דוגמאות למשימות כאלה: כתיבה וניפוי באגים של קטע קוד, פיתוח תוכנית מפורטת עם כמה חלקים או ניסוח ועריכה של מסמך ארוך. לדוגמה, בתהליך עבודה של כתיבה יצירתית, נציג יכול ליצור טיוטה של פוסט בבלוג, לבקר את הטיוטה מבחינת הזרימה והטון, ואז לשכתב את הטיוטה על סמך הביקורת הזו. התהליך הזה חוזר על עצמו בלולאה עד שהעבודה של הנציג עומדת בתקן איכות מוגדר מראש, או עד שהחזרה מגיעה למספר מקסימלי של איטרציות.
תבנית השיפור החוזר יכולה להפיק פלטים מורכבים או מלוטשים מאוד, שקשה להשיג בשלב אחד. עם זאת, מנגנון הלולאה מגדיל באופן ישיר את זמן האחזור ואת עלויות התפעול בכל מחזור. התבנית הזו גם מוסיפה מורכבות לארכיטקטורה, כי היא דורשת תנאי יציאה מתוכננים בקפידה – כמו הערכת איכות או מגבלת איטרציות מקסימלית – כדי למנוע עלויות מוגזמות או הרצה לא מבוקרת.
תבנית של רכז
תבנית התיאום בין כמה סוכנים משתמשת בסוכן מרכזי, המתאם, כדי לנהל תהליך עבודה. המתאם מנתח ומפרק את בקשת המשתמש למשימות משנה, ואז שולח כל משימת משנה לסוכן ייעודי לביצוע. כל נציג מתמחה בפונקציה ספציפית, כמו שליחת שאילתה למסד נתונים או קריאה ל-API.
המאפיין שמבדיל את תבנית התיאום הוא השימוש במודל AI כדי לתזמר משימות ולנתב אותן באופן דינמי. לעומת זאת, התבנית המקבילה מסתמכת על תהליך עבודה בתוך הקוד כדי לשלוח משימות לביצוע בו-זמני, בלי צורך בתזמור של מודל ה-AI.
התרשים הבא מציג תצוגה ברמה גבוהה של תבנית תיאום בין כמה סוכנים:
כדאי להשתמש בתבנית התיאום כדי להפוך תהליכים עסקיים מובְנים שדורשים ניתוב דינמי לאוטומטיים. לדוגמה, נציג שירות לקוחות יכול לשמש כרכז. הנציג המתאם מנתח את הבקשה כדי לקבוע אם מדובר בבקשה לסטטוס הזמנה, החזרת מוצר או בקשה להחזר כספי. בהתאם לסוג הבקשה, הרכז מעביר את המשימה לסוכן המתאים.
תבנית התיאום מציעה גמישות בהשוואה לתהליכי עבודה נוקשים יותר ומוגדרים מראש. באמצעות מודל לניתוב משימות, המתאם יכול לטפל במגוון רחב יותר של קלטים ולהתאים את תהליך העבודה בזמן הריצה. עם זאת, לגישה הזו יש גם חסרונות. מכיוון שהסוכן המתאם וכל סוכן ייעודי מסתמכים על מודל לצורך הסקת מסקנות, התבנית הזו גורמת ליותר קריאות למודל מאשר מערכת עם סוכן יחיד. למרות שתבנית התיאום יכולה להוביל להסקת מסקנות איכותית יותר, היא גם מגדילה את תפוקת הטוקנים, את עלויות התפעול ואת זמן האחזור הכולל בהשוואה למערכת עם סוכן יחיד.
תבנית פירוק משימות היררכית
תבנית פירוק המשימות ההיררכית עם כמה סוכנים מארגנת את הסוכנים בהיררכיה עם כמה רמות כדי לפתור בעיות מורכבות שדורשות תכנון נרחב. תבנית פירוק המשימות ההיררכית היא הטמעה של תבנית התיאום. סוכן הורה ברמה העליונה, או שורש, מקבל משימה מורכבת ואחראי לפרק אותה לכמה משימות משנה קטנות יותר שניתן לנהל. הנציג הראשי מאציל כל משימת משנה לנציג משנה ייעודי ברמה נמוכה יותר. התהליך הזה יכול לחזור על עצמו בכמה שכבות, עם נציגים שמפרקים בהדרגה את המשימות שהוקצו להם עד שניתן לבצע אותן ישירות על ידי נציג עובד ברמה הנמוכה ביותר.
התרשים הבא מציג תצוגה כללית של דפוס פירוק משימות היררכי עם כמה סוכנים:
השתמשו בתבנית של פירוק משימות היררכי לבעיות פתוחות ולא ברורות שדורשות חשיבה רציונלית רב-שלבית, כמו משימות שכוללות מחקר, תכנון וסינתזה. לדוגמה, כדי להשלים פרויקט מחקר מורכב, סוכן מתאם מפרק את המטרה ברמה הגבוהה לכמה משימות, כמו איסוף מידע, ניתוח הממצאים וסיכום הדוח הסופי. לאחר מכן, סוכן התיאום מקצה את המשימות האלה לסוכני משנה ייעודיים, כמו סוכן לאיסוף נתונים, סוכן לניתוח נתונים וסוכן לכתיבת דוחות, כדי לבצע את המשימות או לפרק אותן עוד יותר.
תבנית פירוק המשימות ההיררכית היא אידיאלית לפתרון בעיות מורכבות מאוד ולא ברורות, כי היא מפרקת אותן באופן שיטתי למשימות משנה שקל יותר לנהל. התבנית הזו יכולה להניב תוצאות מקיפות ואיכותיות יותר מאשר תבניות פשוטות יותר. עם זאת, היכולת המתקדמת הזו כרוכה בפשרות משמעותיות. המבנה הרב-שכבתי מוסיף מורכבות ארכיטקטונית משמעותית, שמקשה על התכנון, ניפוי הבאגים והתחזוקה של המערכת. בנוסף, ריבוי השכבות של הקצאת המשימות וההסקה גורם למספר גבוה של קריאות למודל, מה שמאריך משמעותית את זמן האחזור הכולל ומגדיל את עלויות התפעול בהשוואה לדפוסים אחרים.
תבנית נחיל
תבנית נחיל של כמה סוכנים משתמשת בגישה של תקשורת שיתופית בין כולם. בתבנית הזו, כמה נציגים מומחים עובדים יחד כדי לשפר באופן איטרטיבי פתרון לבעיה מורכבת.
התרשים הבא מציג תצוגה כללית של דפוס נחיל עם כמה סוכנים:
בתבנית הנחיל, נציג מוקדן מנתב בקשה של משתמש לקבוצה של נציגים מומחים שעובדים בשיתוף פעולה. הסוכן המקצה מפרש את הבקשה וקובע איזה סוכן בנחיל הכי מתאים להתחיל את המשימה. בדפוס הזה, כל נציג יכול לתקשר עם כל נציג אחר, וכך הם יכולים לשתף ממצאים, לבקר הצעות ולהתבסס על העבודה של נציגים אחרים כדי לשפר את הפתרון באופן איטרטיבי. כל נציג בנחיל יכול להעביר את המשימה לנציג אחר שלדעתו מתאים יותר לטפל בשלב הבא, או להעביר את התשובה הסופית למשתמש דרך הנציג המתאם.
בדרך כלל, בנחיל אין סוכן פיקוח או תיאום מרכזי ששומר על התהליך במסלול הנכון. בניגוד לתבנית התיאום, נציג ההקצאה לא מתזמר את תהליך העבודה של הנציגים. במקום זאת, נציג ההקצאה מאפשר תקשורת בין נציגי המשנה של הנחיל לבין המשתמש. כדי לוודא שהנחיל יפסיק בסופו של דבר ויחזיר תוצאה, צריך להגדיר תנאי יציאה מפורש. התנאי הזה הוא בדרך כלל מספר מקסימלי של חזרות, מגבלת זמן או השגת מטרה ספציפית, כמו הגעה לקונצנזוס.
השתמשו בתבנית הנחיל לבעיות מעורפלות או מורכבות מאוד, שבהן כדאי לקיים דיון ולשפר את הפתרון בהדרגה. לדוגמה, תהליך של פיתוח מוצר חדש יכול לכלול סוכן מחקר שוק, סוכן הנדסה וסוכן מידול פיננסי. הסוכנים ישתפו רעיונות ראשוניים, ידונו ביתרונות ובחסרונות של תכונות ועלויות, ויגיעו יחד למפרט עיצוב סופי שמאזן בין כל הדרישות המתחרות.
תבנית הנחיל מדמה צוות מומחים שעובדים יחד, ולכן היא יכולה להפיק פתרונות יצירתיים ואיכותיים במיוחד. עם זאת, זהו דפוס ריבוי הסוכנים המורכב והיקר ביותר להטמעה. אם אין נציג שמשתמש במודל AI כדי לתזמר, יכול להיות שהתהליך ייתקע בלולאות לא פרודוקטיביות או שלא יתכנס לפתרון. לכן, צריך לתכנן לוגיקה מתוחכמת כדי לנהל את התקשורת המורכבת בין הסוכנים, לשלוט בתהליך העבודה האיטרטיבי ולטפל בעלויות התפעול המשמעותיות ובזמן האחזור שקשורים להפעלת שיחה דינמית עם כמה שלבים בין כמה סוכנים.
דפוס סיבה ופעולה (ReAct)
דפוס ReAct הוא גישה שבה מודל ה-AI משמש כדי למסגר את תהליכי החשיבה והפעולות שלו כרצף של אינטראקציות בשפה טבעית. בתבנית הזו, הסוכן פועל בלולאה איטרטיבית של חשיבה, פעולה ותצפית עד שמתקיים תנאי יציאה.
- חשיבה: המודל מנתח את המשימה ומחליט מה לעשות הלאה. המודל מעריך את כל המידע שהוא אסף כדי לקבוע אם הבקשה של המשתמש נענתה במלואה.
- פעולה: על סמך תהליך החשיבה שלו, המודל מבצע אחת משתי פעולות:
- אם המשימה לא הושלמה, הוא בוחר כלי ויוצר שאילתה כדי לאסוף מידע נוסף.
- אם המשימה הושלמה, הוא מנסח את התשובה הסופית לשליחה למשתמש, ובכך מסתיימת הלולאה.
- תצפית: המודל מקבל את הפלט מהכלי ושומר מידע רלוונטי בזיכרון שלו. המודל שומר את הפלט הרלוונטי, ולכן הוא יכול להתבסס על תצפיות קודמות, מה שמונע ממנו לחזור על עצמו או לאבד את ההקשר.
הלולאה מסתיימת כשהנציג מוצא תשובה חד-משמעית, מגיע למספר המקסימלי של חזרות שהוגדר מראש או נתקל בשגיאה שמונעת ממנו להמשיך. הלולאה הזו מאפשרת לנציג לבנות תוכנית באופן דינמי, לאסוף ראיות ולשנות את הגישה שלו תוך כדי עבודה על התשובה הסופית.
התרשים הבא מציג תצוגה כללית של דפוס ReAct:
כדאי להשתמש בדפוס ReAct למשימות מורכבות ודינמיות שדורשות תכנון והתאמה מתמשכים. לדוגמה, נניח שיש סוכן רובוטי שצריך ליצור נתיב כדי לעבור ממצב התחלתי למצב יעד:
- מחשבה: המודל חושב על הדרך האופטימלית לעבור מהמצב הנוכחי למצב היעד. במהלך תהליך החשיבה, המודל מבצע אופטימיזציה למדדים כמו זמן או אנרגיה.
- פעולה: המודל מבצע את השלב הבא בתוכנית שלו על ידי מעבר לאורך קטע מסלול מחושב.
- תצפית: המודל צופה במצב החדש של הסביבה ושומר אותו. המודל שומר את המיקום החדש שלו ואת כל השינויים בסביבה שהוא מזהה.
הלולאה הזו מאפשרת לסוכן לעמוד במגבלות דינמיות, כמו הימנעות ממכשולים חדשים או ציות לתקנות התנועה, על ידי עדכון מתמיד של התוכנית שלו על סמך תצפיות חדשות. הסוכן ממשיך בלולאה החוזרת עד שהוא מגיע ליעד או נתקל בשגיאה.
הרבה יותר פשוט ומשתלם להטמיע ולתחזק סוכן ReAct אחד מאשר מערכת מורכבת עם כמה סוכנים. תהליך החשיבה של המודל מספק תמליל של תהליך החשיבה של המודל, שעוזר בניפוי באגים. עם זאת, לגמישות הזו יש מחיר. האופי האיטרטיבי והרב-שלבי של הלולאה יכול להוביל לזמן אחזור ארוך יותר מקצה לקצה בהשוואה לשאילתה אחת. בנוסף, היעילות של הנציג תלויה מאוד באיכות החשיבה של מודל ה-AI. לכן, שגיאה או תוצאה מטעה של כלי בשלב תצפית אחד יכולה להתפשט ולגרום לתשובה הסופית להיות שגויה.
תבנית "האדם שבתהליך"
תבנית "האדם שבתהליך" משלבת נקודות להתערבות אנושית ישירות בתהליך העבודה של הנציג. בנקודת בקרה מוגדרת מראש, הנציג משהה את הביצוע וקורא למערכת חיצונית כדי להמתין שאדם יבדוק את העבודה שלו. התבנית הזו מאפשרת לאדם לאשר החלטה, לתקן שגיאה או לספק קלט נדרש לפני שהנציג יכול להמשיך.
התרשים הבא מציג תצוגה ברמה גבוהה של תבנית "האדם שבתהליך":
השתמשו בתבנית "האדם שבתהליך" במשימות שדורשות פיקוח אנושי, שיפוט סובייקטיבי או אישור סופי לפעולות קריטיות. פעולות כאלה כוללות אישור של עסקה פיננסית גדולה, אימות של סיכום מסמך רגיש או מתן משוב סובייקטיבי על תוכן יצירתי שנוצר. לדוגמה, יכול להיות שהסוכן יקבל משימה להפוך לאנונימית קבוצת נתונים של מטופלים לצורך מחקר. הסוכן יזהה ויצנזר באופן אוטומטי את כל המידע הרפואי המוגן, אבל הוא יעצור בנקודת בקרה סופית. לאחר מכן, המערכת תמתין לקצין ציות אנושי שיאמת ידנית את מערך הנתונים ויאשר את הפרסום שלו, כדי לוודא שמידע אישי רגיש לא ייחשף.
התבנית "האדם שבתהליך" משפרת את הבטיחות והאמינות על ידי הוספת שיקול דעת אנושי בנקודות קריטיות לקבלת החלטות בתהליך העבודה. התבנית הזו יכולה להוסיף מורכבות משמעותית לארכיטקטורה, כי צריך לבנות ולתחזק את המערכת החיצונית לאינטראקציה עם המשתמשים.
תבנית לוגית מותאמת אישית
תבנית הלוגיקה בהתאמה אישית מספקת את הגמישות המקסימלית בתכנון תהליך העבודה. הגישה הזו מאפשרת לכם להטמיע לוגיקה ספציפית של תזמור שמשתמשת בקוד, כמו הצהרות מותנות, כדי ליצור תהליכי עבודה מורכבים עם כמה נתיבי הסתעפות.
בתרשים הבא מוצגת דוגמה לשימוש בתבנית לוגיקה מותאמת אישית כדי לתעד תהליך של החזר כספי:
בתרשים שלמעלה, זהו תהליך העבודה של הסוכן בדוגמה של סוכן להחזרים כספיים ללקוחות:
- המשתמש שולח שאילתה לסוכן להחזרים כספיים ללקוחות, שפועל כסוכן מתאם.
- הלוגיקה המותאמת אישית של המתאם מפעילה קודם סוכן אימות מקביל, ששולח בו-זמנית שני סוכני משנה: סוכן אימות הרוכש וסוכן הזכאות להחזר כספי.
- אחרי שהתוצאות נאספות, הנציג המתאם מפעיל כלי כדי לבדוק אם הבקשה עומדת בדרישות לקבלת החזר כספי.
- אם המשתמש עומד בדרישות, הרכז מעביר את המשימה לסוכן לעיבוד החזרים כספיים, שמפעיל את הכלי
process_refund. - אם המשתמש לא עומד בדרישות, המתאם מעביר את המשימה לתהליך נפרד, שמתחיל בסוכן הזיכוי ב-Store ובסוכן לקבלת החלטות לגבי עיבוד הזיכוי.
- אם המשתמש עומד בדרישות, הרכז מעביר את המשימה לסוכן לעיבוד החזרים כספיים, שמפעיל את הכלי
- התוצאה מכל נתיב שנבחר נשלחת לסוכן התשובה הסופית כדי לנסח את התשובה למשתמש.
בדוגמה של נציג החזרים כספיים ללקוחות, נדרש פתרון ייחודי לתזמור ברמת הלוגיקה, שחורג מהגישות המובנות שמציעות תבניות אחרות. תהליך העבודה הזה משלב דפוסים כי הוא מריץ בדיקה מקבילה, ואז מפעיל הסתעפות מותנית בהתאמה אישית שמנתבת לשני תהליכים שונים לחלוטין בהמשך. סוג כזה של תהליך עבודה מורכב עם דפוסים מעורבים הוא תרחיש השימוש האידיאלי לדפוס הלוגיקה בהתאמה אישית.
השתמשו בתבנית הלוגיקה בהתאמה אישית כשאתם צריכים שליטה מדויקת על ביצוע הנציג, או כשזרימת העבודה לא מתאימה לאחת מהתבניות האחרות שמתוארות במסמך הזה. עם זאת, הגישה הזו מגבירה את המורכבות של הפיתוח והתחזוקה. אתם אחראים לתכנון, להטמעה ולניפוי הבאגים של כל תהליך התיאום. זה דורש יותר מאמצי פיתוח, ויכול להיות שיהיו יותר שגיאות מאשר בשימוש בתבנית מוגדרת מראש שנתמכת על ידי כלי כמו ערכת פיתוח לסוכנים (ADK).
במאמר נציגים בהתאמה אישית מוסבר איך להטמיע לוגיקה בהתאמה אישית באמצעות ADK.
השוואה בין תבניות עיצוב
בחירת תבנית לסוכן היא החלטה ארכיטקטונית בסיסית. לכל תבנית יש יתרונות וחסרונות שונים מבחינת גמישות, מורכבות וביצועים. כדי לקבוע את התבנית המתאימה לעומס העבודה שלכם, כדאי לעיין בתבניות העיצוב בקטעים הבאים.
תהליכי עבודה דטרמיניסטיים
תהליכי עבודה דטרמיניסטיים כוללים משימות צפויות ורציפות, עם נתיב מוגדר בבירור מההתחלה ועד הסוף. השלבים במשימות ידועים מראש, והתהליך לא משתנה הרבה מהרצה אחת להרצה הבאה.
אלה דפוסי עיצוב של סוכנים לתהליכי עבודה דטרמיניסטיים:
- תבנית רציפה של כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- משימות עם כמה שלבים שפועלות לפי תהליך עבודה נוקשה ומוגדר מראש.
- לא נדרש תזמור מודלים.
- רצף קבוע של פעולות. הפלט של נציג אחד הוא הקלט הישיר של הנציג הבא ברצף.
- תבנית מקבילה של כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- משימות נפרדות שאפשר לבצע בו-זמנית.
- לא נדרש תזמור מודלים.
- מפחית את זמן האחזור הכולל על ידי הפעלת משימות משנה בו-זמנית.
- תבנית שיפור איטרטיבי עם כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- משימות יצירה מורכבות או פתוחות שקשה להשלים בניסיון אחד.
- הסוכן צריך לשפר את הפלט בהדרגה לאורך כמה מחזורים.
- לא נדרש תזמור מודלים.
- מתעדף את איכות הפלט על פני זמן האחזור.
תהליכי עבודה שדורשים תזמור דינמי
תהליכי עבודה שדורשים תזמור דינמי כוללים בעיות מורכבות שבהן הסוכנים צריכים להחליט איך להמשיך. בתהליכי העבודה האלה, מערכת ה-AI האקטיבי מתכננת, מקצה ומתאמת משימות באופן דינמי בלי תסריט.
אלה דפוסי עיצוב של סוכנים לתהליכי עבודה שדורשים תזמור דינמי:
- תבנית של נציג אחד
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- משימות מובנות עם כמה שלבים שדורשות שימוש בכלים חיצוניים.
- צריך לפתח במהירות אב טיפוס של פתרון כהוכחת היתכנות.
- תבנית תיאום בין כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- נדרש ניתוב דינמי לסוכן משנה מתאים ומתמחה למשימות מובנות עם קלט מגוון.
- זמן אחזור ארוך בגלל קריאות מרובות למודל ה-AI המתאם, כדי שהוא יוכל להפנות משימות לסוכן המשנה המתאים.
- יכולות להיות עלויות גבוהות בגלל קריאות מרובות לסוכן התיאום.
- תבנית פירוק משימות היררכית עם כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- נדרש תזמור מודלים בכמה רמות למשימות מורכבות, פתוחות ומעורפלות.
- נדרשות תוצאות מקיפות ואיכותיות, והאתגר העיקרי הוא לפרק את חוסר הבהירות.
- זמן אחזור ארוך בגלל פירוק מקונן בכמה רמות, שמוביל לכמה קריאות למודל ה-AI לצורך הסקת מסקנות.
- תבנית נחיל של כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- נדרש דיון משותף ושיפור הדרגתי של כמה סוכנים מומחים למשימות מורכבות מאוד, פתוחות או לא ברורות.
- מתעדף סינתזה של כמה נקודות מבט כדי ליצור פתרון מקיף או יצירתי.
- זמן אחזור ארוך ועלויות תפעול גבוהות בגלל תקשורת דינמית בין כל הסוכנים.
תהליכי עבודה שכוללים איטרציה
תהליכי עבודה שכוללים איטרציה כוללים משימות שבהן הפלט הסופי מושג באמצעות מחזורים של שיפור, משוב ועידון.
אלה דפוסי עיצוב של סוכנים לתהליכי עבודה שכוללים איטרציה:
- דפוס ReAct
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- הסוכן צריך להסיק מסקנות, לפעול ולצפות באופן איטרטיבי כדי ליצור או להתאים תוכנית למשימות מורכבות, דינמיות ופתוחות.
- הוא מתעדף תוצאה מדויקת ויסודית יותר על פני זמן אחזור.
- תבנית לולאה של כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- נדרשות משימות מעקב או סקר שחוזרות על פעולה מוגדרת מראש, כמו בדיקות אוטומטיות, עד שהסוכן עומד בתנאי יציאה.
- זמן אחזור בלתי צפוי או ארוך בזמן המתנה להתקיימות תנאי יציאה.
- תבנית של בדיקה וביקורת על ידי כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- המשימות דורשות שלב אימות נפרד לפני השלמתן.
- תבנית שיפור איטרטיבי עם כמה סוכנים
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- משימות יצירה מורכבות או פתוחות שקשה להשלים בניסיון אחד.
- הסוכן צריך לשפר את הפלט בהדרגה לאורך כמה מחזורים.
- לא נדרש תזמור מודלים.
- מתעדף את איכות הפלט על פני זמן האחזור.
תהליכי עבודה עם דרישות מיוחדות
תהליכי עבודה עם דרישות מיוחדות כוללים משימות שלא פועלות לפי דפוסים נפוצים של סוכנים. המשימות יכולות לכלול לוגיקה עסקית ייחודית או לדרוש שיקול דעת והתערבות של בני אדם בנקודות קריטיות. במקרה כזה, מערכת ה-AI האקטיבי מותאמת אישית למטרה אחת ספציפית.
אלה דפוסי עיצוב של נציגים לתהליכי עבודה עם דרישות מיוחדות:
- תבנית "האדם שבתהליך"
-
התבנית הזו מתאימה אם לעומס העבודה שלכם יש את המאפיינים הבאים:
- נדרש פיקוח אנושי בגלל משימות סובייקטיביות או משימות עם סיכון גבוה, שיכולות לכלול דרישות בטיחות, אמינות ותאימות.
- תבנית לוגית מותאמת אישית
-
התבנית הזו מתאימה אם לעומס העבודה יש את המאפיינים הבאים:
- לוגיקה מורכבת ומסועפת שחורגת מרצף לינארי ישיר.
- נדרשת שליטה מקסימלית כדי לשלב כללים מוגדרים מראש עם הסקת מסקנות של המודל.
- נדרשת בקרת תהליכים מפורטת לתהליך עבודה שלא מתאים לתבנית רגילה.
המאמרים הבאים
- איך יוצרים ומנהלים מערכות מרובות סוכנים באמצעות פרימיטיבים של ADK
- איך מארחים אפליקציות וסוכני AI ב-Cloud Run
- מידע נוסף על Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems
- איך יוצרים נציג באמצעות ADK
- איך יוצרים מערכות AI עם כמה סוכנים ב- Google Cloud
- לדוגמאות נוספות של ארכיטקטורות, תרשימים ושיטות מומלצות, עיינו במאמר Cloud Architecture Center.
שותפים ביצירת התוכן
מחברת: סמנתה הי | כותבת טכנית
תורמים אחרים:
- עבדול סאלח | מהנדס תוכנה
- אמינה מנסור | ראש צוות טכני, קשרי מפתחים גלובליים ותוכן אסטרטגי
- עמית מאראג' | מהנדס קשרי מפתחים
- קייסי ווסט | מומחה לארכיטקטורה, Google Cloud
- ג'ק וות'רספון | אחראי קשרי מפתחים (Developers Advocate)
- ג'ו פרננדז | כותב טכני בכיר
- ג'ו שיירי | מנהל קשרי מפתחים ב-Cloud
- קרל ויינמייסטר | מנהל קשרי מפתחים של מוצרי Cloud
- קומאר דהנגופאל | מפתח פתרונות למוצרים שונים
- ליסה שן | מנהלת מוצר בכירה, Google Cloud
- מנדי גרובר | מנהלת מרכז הארכיטקטורה
- מארק לו | כותב טכני
- מייגן אוקיף | אחראית קשרי מפתחים (Developers Advocate)
- אוליבייה בורז'ואה | מהנדס קשרי מפתחים
- שיר מאיר לדור | מנהלת הנדסה בקשרי מפתחים
- ולאד קולסניקוב | מהנדס קשרי מפתחים