מתי להשתמש ב-sub agents ומתי לא
ב-Claude Code יש כלי Agent שמאפשר להפעיל סוכן משני עצמאי במהלך שיחה כדי לבצע משימה. לסוכן המשני יש הקשר (context) משלו, ובסיום הוא מחזיר את התוצאות לסוכן הראשי.
נשמע חזק, אבל בפועל — ברוב המקרים לא צריך את זה. המאמר הזה מבהיר: מתי פיצול לסוכנים משניים באמת מועיל, ומתי זה רק מסבך.
אי אפשר לקרוא ישירות לכלי Agent מתוך CLAUDE.md או מפקודות slash — Claude Code מחליט בעצמו אם להשתמש בו. אבל אפשר להשפיע על ההחלטה דרך ה-prompts.
אופן הפעולה:
מאפיינים מרכזיים:
- הקשר עצמאי: הסוכן המשני לא רואה את היסטוריית השיחה הראשית — רק את ה-prompt שאיתו הופעל
- דחיסת תוצאות: לא משנה כמה קבצים הסוכן המשני קרא או כמה פקודות הריץ, מה שחוזר לסוכן הראשי הוא סיכום בלבד
- הרצה מקבילית: אפשר להפעיל כמה סוכנים משניים בו-זמנית
התרחיש הקלאסי. מבקשים מ-Claude Code לחקור בעיה שדורשת בדיקה בכמה כיוונים בו-זמנית.
למשל שואלים: "איך מימוש האימות בפרויקט הזה?"
בלי סוכנים משניים, Claude Code יבצע ברצף: קורא auth controller ← קורא middleware ← קורא routes ← קורא model ← קורא config… צעד אחר צעד, לאט.
עם פיצול לסוכנים משניים:
הפעלת 3 סוכנים משניים במקביל:
- סוכן 1: בודק את לוגיקת האימות בשכבת controller ו-middleware
- סוכן 2: בודק את עיצוב המשתמשים וה-sessions בשכבת model
- סוכן 3: בודק הגדרות אימות בקבצי קונפיגורציה ומשתני סביבה
שלושה כיוונים רצים במקביל, ואז מאחדים את התוצאות. אפשר להנחות את זה ב-CLAUDE.md:
## משימות מחקר
כשצריך לחקור בעיה שחוצה מודולים מרובים, העדף להפעיל
סוכנים משניים במקביל לחקור כל חלק, ואז לאחד מסקנות.
חלון ההקשר של Claude Code מוגבל. אם תת-משימה דורשת קריאה של כמות גדולה של קבצים אבל בסוף צריך רק מסקנה אחת, סוכן משני חוסם את "זבל התהליך" מחוץ להקשר הראשי.
דוגמאות טיפוסיות:
מה שמאפיין את המשימות האלה: קלט גדול, פלט קטן. הסוכן המשני מעכל את הכמות הגדולה ומחזיר רק את התמצית.
יש משימות שלא בטוח מה התוצאה שלהן. עם סוכן משני ופרמטר isolation: "worktree", הוא עובד ב-git worktree נפרד. גם אם הוא שובר משהו, זה לא משפיע על תיקיית העבודה הנוכחית.
## ריפקטורינג בסיכון גבוה
למשימות ריפקטורינג נרחב, השתמש בסוכן משני
עם בידוד worktree. וודא שהתוצאות תקינות לפני מיזוג.
תרחישים מתאימים:
- ריפקטורינג ניסיוני: לא בטוח אם גישה מסוימת תעבוד, תן לסוכן המשני לנסות קודם
- השוואת פתרונות מקבילים: מימוש בשתי דרכים בו-זמנית והשוואת תוצאות
- יצירת קוד: יצירת כמות גדולה של קוד שבלוני, סקירה לפני מיזוג
"שנה את שם הפונקציה מ-camelCase ל-snake_case" — פשוט עושים את זה. העלות של הפעלת סוכן משני (בניית הקשר, המתנה לתשובה, פירוש תוצאות) איטית יותר מביצוע ישיר.
כלל אצבע: אם Grep אחד + Edit אחד מספיקים, אל תפצל לסוכנים.
"קרא קונפיגורציה ← שנה קוד לפי הקונפיגורציה ← עדכן בדיקות לפי השינויים"
שרשרת תלויות כזו, שבה כל שלב תלוי בקודם. אם מפצלים לסוכנים משניים, צריך להעביר תוצאות ביניים דרך prompts — מסובך ופוגע במידע. עדיף לבצע ברצף.
מה שסוכן משני מחזיר זה טקסט מסכם, לא נתונים מובנים. אם צריך שינוי מדויק (למשל הכנסת קוד ספציפי בשורה 47), הסוכן הראשי אמין יותר.
סוכנים משניים מתאימים ל"חקור ותן מסקנה", לא ל"בצע שינוי מדויק".
אם השיחה רק התחילה וחלון ההקשר עדיין ריק, אין סיבה לפצל בשביל "להגן על ההקשר". כשהשיחה מתארכת והסוכן הראשי מתחיל לדחוס הודעות ישנות — אז שווה לשקול סוכן משני למשימות כבדות.
ניקח תרחיש אמיתי: חקירה של כל ה-controllers שמשתמשים ב-before_action בפרויקט Rails, וניתוח דפוסי אימות והרשאות.
בלי סוכן משני:
Claude Code קורא קבצי controller אחד אחרי השני, וכל קובץ תופס מקום בהקשר הראשי. אם יש 20 controllers, תוכן הקבצים לבדו עלול לבלוע כמות גדולה של tokens. כשמגיע הניתוח הסופי, הפרטים מקודם עלולים כבר להיעלם בגלל דחיסה.
עם סוכן משני:
הפעלת סוכן משני: "קרא את כל ה-controllers ב-app/controllers/,
מצא את כל ה-callbacks מסוג before_action,
נתח דפוסי אימות והרשאות, ותן סיכום מסווג."
הסוכן המשני קורא את כל הקבצים בהקשר שלו ומחזיר סיכום נקי. ההקשר הראשי כמעט לא נפגע, והסוכן הראשי יכול להמשיך מיד עם המסקנות.
אי אפשר לכפות על Claude Code להשתמש או לא להשתמש בסוכנים משניים, אבל אפשר לבטא העדפות ב-CLAUDE.md:
## העדפות שימוש בסוכנים
### משימות מתאימות לפיצול לסוכנים משניים
- מחקר חוצה מודולים (חיפוש ביותר מ-3 תיקיות)
- חיפוש וסטטיסטיקות בהיקף רחב של קוד
- ריפקטורינג ניסיוני (עם בידוד worktree)
### משימות שלא מפצלים לסוכנים משניים
- שינוי בקובץ בודד
- פעולות מרובות שלבים עם תלויות רציפות
- תיקון באג שהמיקום שלו ידוע בדיוק
האם ה"תהליך" במשימה הזו גדול בהרבה מה"מסקנה"?
אם כן — השתמש בסוכן משני שיעכל את התהליך ויחזיר רק את המסקנה.
אם לא — בצע ישירות, בלי שכבות ביניים.
סוכנים משניים לא טובים יותר ככל שיש יותר מהם. זה כלי לניהול הקשר, לא פריימוורק לתכנות מקבילי. השימוש הנכון שומר על Claude Code ממוקד בפרויקטים גדולים, והשימוש השגוי רק מבזבז זמן אתחול.