Subagents — האצלת משימות
כשלולאה אחת כבר לא מספיקה
הלולאה האגנטיתהמחזור של סוכן: תצפית, תכנון ופעולה, כשה-harness מבצע את הכלי ומוסיף את התוצאה לקונטקסט לפני הסיבוב הבא. מתוך AI Agents, Agents והלולאה האגנטית. מפרק 2 עובדת היטב למשימה ממוקדת. משימה גדולה יותר — למשל "סרוק את כל הפרויקט ומצא בעיות אבטחה" — עלולה לדרוש עשרות סיבובים, וכל תוצאת ביניים (תוכן קובץ, תוצאת חיפוש) נשארת בקונטקסט עד סוף העבודה.
זה יוצר שתי בעיות: הקונטקסט מתמלא בפרטים שהיו חשובים רק לצעד אחד (למשל תוכן מלא של קובץ שכבר נבדק), וככל שהוא מתארך, העלות עולה והמודל מתמקד פחות טוב במה שרלוונטי עכשיו — אותה בעיה שראינו בפרק ה-Context Windowכל מה שהמודל "רואה" ברגע נתון: System Prompt, היסטוריית השיחה, קבצים, תוצאות כלים וההודעה הנוכחית. יש לו מגבלת טוקנים. מתוך LLM, יסודות ה-AI. בנושא ה-LLMרשת נוירונים ענקית, עם מיליארדי פרמטרים, שאומנה לחזות מהו הטוקן הבא ברצף טקסט. מתוך LLM, יסודות ה-AI..
מה זה בעצם Subagent?
Subagent הוא סוכןLLM שמופעל בלולאה, עם מטרה וסט כלים, ובכל סיבוב מחליט אם להפעיל כלי נוסף או לסיים ולהחזיר תשובה. מתוך AI Agents, Agents והלולאה האגנטית. שהסוכן הראשי ("ההורה") מפעיל כדי לבצע חלק מוגדר מהמשימה. יש לו קונטקסט משלו, שמתחיל ריק ונפרד לגמרי מזה של ההורה, ולרוב גם system prompt וסט כלים משלו שמותאמים למשימת המשנה.
הסאב-אגנט מריץ לולאה אגנטיתהמחזור של סוכן: תצפית, תכנון ופעולה, כשה-harness מבצע את הכלי ומוסיף את התוצאה לקונטקסט לפני הסיבוב הבא. מתוך AI Agents, Agents והלולאה האגנטית. מלאה — תצפית, תכנון, פעולה — בדיוק כמו בפרק 2. מבחינת ההורה, הפעלת סאב-אגנט היא בסך הכול עוד קריאת כלי: הוא שולח משימה ומקבל בחזרה תוצאה.
יחסי הורה-ילד: האצלה ותקציר בחזרה
ההורה מגדיר לסאב-אגנטסוכן שהסוכן הראשי מפעיל לחלק מוגדר מהמשימה, עם קונטקסט נפרד משלו; מבחינת ההורה זו עוד קריאת כלי. מתוך AI Agents, Subagents — האצלת משימות. משימה ממוקדת ("בדוק את התיקייה src/auth ומצא בעיות אבטחה") וממתין לתשובה. הוא לא רואה אילו קבצים הסאב-אגנט קרא, אילו חיפושים הריץ או כמה ניסיונות עשה.
כשהסאב-אגנט מסיים, הוא מחזיר תקציר — לא את כל ה-transcript שלו. זו בדיוק הנקודה: הקונטקסט של ההורה נשאר נקי וממוקד במטרה הכוללת, וכל הפרטים של משימת המשנה נשארים בתוך הסאב-אגנט ונעלמים כשהוא מסיים.
{
"type": "tool_call",
"name": "spawn_subagent",
"input": {
"task": "בדוק את התיקייה src/auth ומצא בעיות אבטחה",
"tools": ["read_file", "grep"]
}
}
מתי כדאי להשתמש בסאב-אגנט
כשמשימה מתפרקת לחלקים בלתי-תלויים — למשל בדיקה של כמה מודולים נפרדים — אפשר להריץ כמה סאב-אגנטיםסוכן שהסוכן הראשי מפעיל לחלק מוגדר מהמשימה, עם קונטקסט נפרד משלו; מבחינת ההורה זו עוד קריאת כלי. מתוך AI Agents, Subagents — האצלת משימות. במקביל, כל אחד על החלק שלו, ולקצר משמעותית את זמן הריצה.
גם בלי מקביליות, סאב-אגנט משתלם כשמשימת המשנה "רועשת" (הרבה קריאות כלים ותוצאות ארוכות) וההורה צריך רק את השורה התחתונה. מקרה נוסף: כשמשימת המשנה צריכה הגדרה אחרת — persona ייעודית או סט כלים מצומצם, למשל הרשאות קריאה בלבד.

כתיבת משימה לסאב-אגנט: הוא לא יודע מה שההורה יודע
הטעות הנפוצה ביותר בעבודה עם סאב-אגנטיםסוכן שהסוכן הראשי מפעיל לחלק מוגדר מהמשימה, עם קונטקסט נפרד משלו; מבחינת ההורה זו עוד קריאת כלי. מתוך AI Agents, Subagents — האצלת משימות.: ההורה כותב משימה שנשענת על הקונטקסט שלו. "תבדוק את הבעיה שדיברנו עליה" היא הוראה ברורה מנקודת המבט של ההורה — אבל הסאב-אגנט מתחיל מקונטקסט ריק ולא שמע אף מילה מהשיחה.
תיאור משימה טוב עומד בפני עצמו: מה המטרה ולמה, מה כבר ידוע (קבצים רלוונטיים, מה כבר נבדק ונפסל), מה הגבולות (מה אסור לשנות), ובאיזה פורמט להחזיר תשובה. כדאי לכתוב אותו כאילו הוא נשלח לעמית שלא היה בחדר.
{
"bad_task": "תבדוק את הבעיה שדיברנו עליה",
"good_task": "בדיקות ההתחברות ב-src/auth/login.test.ts נכשלות מאז שדרוג ספריית ה-JWT. מצא את הסיבה. כבר נבדק: משתני הסביבה תקינים. אל תשנה קבצים - רק אבחון. החזר: הסיבה, קובץ ושורה, ותיקון מוצע."
}המחיר: Latency, עלות ואיבוד מידע
סאב-אגנטסוכן שהסוכן הראשי מפעיל לחלק מוגדר מהמשימה, עם קונטקסט נפרד משלו; מבחינת ההורה זו עוד קריאת כלי. מתוך AI Agents, Subagents — האצלת משימות. הוא לא חינם: הוא מריץ לולאה מלאה משלו, כלומר קריאות נוספות למודל — עוד עלות, ועוד זמן המתנה להורה (אלא אם כמה סאב-אגנטים רצים במקביל).
יש גם מחיר סמוי: התקציר דחוס יותר מהתהליך המלא, ופרטים עלולים ללכת לאיבוד. אם ההורה יזדקק בהמשך לפרט שלא נכנס לתקציר, הוא לא יכול פשוט "לשאול שוב" — צריך להפעיל סאב-אגנט מחדש. ההחלטה מתי הפיצול שווה את המחיר הזה היא השיקול ההנדסי המרכזי בעבודה עם סאב-אגנטים.
שאלות נפוצות
האם סאב-אגנט יכול להפעיל סאב-אגנט משלו?
טכנית כן, אבל מערכות רבות מגבילות את זה לרמה אחת. כל רמה מוסיפה עלות, זמן המתנה ועוד שלב שבו מידע נדחס לתקציר, ועץ עמוק של סוכנים קשה מאוד לדבג. אם נראה שצריך עומק רב, לרוב עדיף לחשוב מחדש על החלוקה.
איך מוודאים שהתקציר שחוזר מהסאב-אגנט מכיל את מה שההורה צריך?
מגדירים את הפורמט כבר בתיאור המשימה: אילו שדות להחזיר, באיזה מבנה, ומה לכלול גם כשלא נמצא כלום (למשל רשימת הקבצים שנבדקו). פורמט מובנה כמו JSON מקל על ההורה לעבוד עם התוצאה, ובקשה מפורשת לסמן ממצאים לא ודאיים מונעת מהתקציר להישמע בטוח יותר ממה שהוא.
האם סאב-אגנט חייב לרוץ על אותו מודל כמו ההורה?
לא. משימות משנה ממוקדות, כמו חיפוש בקבצים או סיכום, רצות היטב גם על מודל קטן וזול יותר, וזה אחד היתרונות של הפיצול. את המודל החזק שומרים להורה, שמתכנן ומאחד את התוצאות. כדאי לוודא עם evals שהמודל הקטן באמת מספיק למשימה.