מה זה סוכני משנה - subagents - ולמה סוכן אחד לפעמים לא מספיק¶
ברגע שמתחילים לעבוד עם כלים אג'נטיים ברמה יותר רצינית, מגיעים מהר מאוד למושג "סוכני משנה" - subagents. זה נשמע כמו פיצ'ר מתקדם ומסובך, אבל הרעיון שמאחוריו הוא בעצם מאוד אינטואיטיבי, ולוקח בהשראה מאיך שצוותים אנושיים עובדים.
הבעיה שסוכני משנה פותרים¶
תארו לעצמכם משימה מורכבת - "תבדוק למה יש דליפת זיכרון באפליקציה, ותתקן אותה". כדי לבצע את זה, סוכן קוד צריך לקרוא המון קבצים, להריץ המון פקודות דיבוג, לנסות כמה השערות שנכשלות לפני שהוא מוצא את הסיבה האמיתית. כל זה נצבר בתוך חלון ההקשר של השיחה - וזוכרים את מה שדיברנו על ריקבון הקשר? ככל שיותר "רעש" מהחקירה נכנס לחלון, כך יותר קשה למודל להתמקד גם בשלב הבא, וגם בכל שיחה שממשיכה מאותה נקודה.
סוכן משנה פותר את זה על ידי הפעלת "עוזר" נפרד, עם חלון הקשר משלו, שמקבל משימה ממוקדת - למשל "תחקור את דליפת הזיכרון ותחזיר לי סיכום של הממצאים" - עובד עליה בבידוד מלא, ומחזיר לסוכן הראשי רק את התוצאה הסופית, לא את כל תהליך החקירה המבולגן.
איך זה עובד בפועל ב-Claude Code¶
כשהסוכן הראשי מזהה שמשימה מסוימת מתאימה לביצוע נפרד - למשל חיפוש רחב בקוד, הרצת סוויטת טסטים, או ניתוח קובץ ארוך - הוא יכול "להאציל" את המשימה הזו לסוכן משנה. אותו סוכן משנה מקבל את המודל, מבצע את העבודה בחלון הקשר משלו לגמרי נפרד, ומחזיר סיכום. הסוכן הראשי ממשיך לעבוד עם ההקשר שלו נשאר נקי, בתוספת רק את התובנה הרלוונטית שקיבל בחזרה.
זה דומה מאוד לאיך שמנהל צוות עובד. אם צריך לחקור בעיה מסובכת, המנהל לא צריך לדעת כל שורת קוד שנבדקה ב-process - הוא צריך לדעת את הממצא הסופי ואת ההמלצה. אותו הרעיון בדיוק מיושם כאן בין סוכנים.
למה זה שימושי מעבר לניקיון הקשר¶
יש עוד יתרון חשוב - התמחות. אפשר להגדיר סוכני משנה עם הנחיות ספציפיות למשימה מסוימת, למשל סוכן שמתמחה בסקירת קוד ומקבל הנחיות מדויקות מה לחפש, או סוכן שמתמחה בהרצת ובדיקת טסטים בצורה שיטתית. במקום סוכן כללי שמנסה לעשות הכל, יש לכם צוות של סוכנים ממוקדים, כל אחד טוב במשהו ספציפי.
יתרון נוסף הוא מקבילות. אם יש כמה משימות בדיקה עצמאיות שלא תלויות זו בזו - למשל לבדוק את התאימות של שינוי בכמה מודולים שונים בפרויקט - אפשר להפעיל כמה סוכני משנה במקביל, כל אחד בודק חלק אחר, ולקבל את כל התשובות בזמן קצר יותר מאשר לעשות הכל ברצף.
מתי כדאי להשתמש בזה, ומתי זה מיותר¶
לא כל משימה צריכה סוכן משנה. למשימה פשוטה וקצרה, זה בעצם תוספת מיותרת של מורכבות. סוכני משנה משתלמים כשהמשימה כוללת חקירה ארוכה שיוצרת הרבה "רעש" שלא רלוונטי בהמשך, כשיש כמה תת-משימות עצמאיות שאפשר להריץ במקביל, או כשרוצים התמחות ברורה - למשל להפריד בין "מי שכותב קוד" ל"מי שסוקר קוד", כדי שהסקירה תהיה עצמאית ולא מוטה על ידי אותו הקשר שיצר את הקוד מלכתחילה.
הקשר בין סוכני משנה לניהול הקשר בכלל¶
סוכני משנה הם בעצם כלי מתקדם בתוך הארגז שכבר דיברתי עליו כשהסברתי על ניהול הקשר - הם דרך נוספת, לצד סשנים חדשים וניקוי היסטוריה, לשמור על ההקשר הראשי שלכם נקי וממוקד גם כשהמשימה הכוללת מורכבת.
בקורס פיתוח עם AI יש פרק מתקדם שמסביר איך להגדיר ולהשתמש בסוכני משנה ב-Claude Code, עם דוגמאות אמיתיות למתי זה משנה משחק.
לסיכום¶
סוכני משנה הם לא פיצ'ר גימיקי - הם פתרון פשוט לבעיה אמיתית של הקשר שמתמלא ברעש, ודרך טובה לפצל עבודה מורכבת בין "מומחים" ממוקדים במקום סוכן כללי אחד שמנסה לעשות הכל. ברגע שהמשימות שלכם נהיות מורכבות מספיק, שווה להכיר את הכלי הזה.
רוצים לראות דוגמאות אמיתיות של סוכני משנה בעבודה? הצטרפו לקהילה בדיסקורד.