תיעוד 43
תזמור צוותים של סשנים של Claude Code
תאמו כמה מופעים של Claude Code שעובדים יחד כצוות, עם משימות משותפות, הודעות בין סוכנים, וניהול מרכזי.
[!WARNING]
צוותי סוכנים הם ניסיוניים וכבויים כברירת מחדל. הפעילו אותם על ידי הגדרת
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1בקובץ settings.json או בסביבה. בלי המשתנה הזה, לא מוקם צוות בתחילת הסשן, לא נכתבות תיקיות צוות, ו-Claude לא מפעיל ולא מציע חברי צוות. לצוותי סוכנים יש מגבלות ידועות סביב חידוש סשן, תיאום משימות, והתנהגות כיבוי.
צוותי סוכנים מאפשרים לתאם כמה מופעים של Claude Code שעובדים יחד. סשן אחד פועל כמוביל הצוות, מתאם את העבודה, מקצה משימות, ומסנתז תוצאות. חברי הצוות עובדים באופן עצמאי, כל אחד בחלון ההקשר שלו, ומתקשרים ישירות זה עם זה. אפשר גם לדבר עם כל חבר צוות ישירות בלי לעבור דרך המוביל.
לפני שמקימים צוות, בדקו אם אפשרות קלה יותר מספיקה. סוכני משנה עובדים בתוך סשן יחיד, ועם הודעות בין סשנים Claude יכול להעביר ממצאים בין הסשנים שאתם מריצים בעצמכם.
#מתי להשתמש בצוותי סוכנים
צוותי סוכנים יעילים ביותר למשימות שבהן חקירה במקביל מוסיפה ערך אמיתי. ראו דוגמאות לשימושים לתרחישים מלאים. מקרי השימוש החזקים ביותר הם:
- מחקר וסקירה: כמה חברי צוות יכולים לחקור היבטים שונים של בעיה בו זמנית, ואז לשתף ולאתגר את הממצאים זה של זה
- מודולים או תכונות חדשים: כל חבר צוות יכול להיות אחראי על חלק נפרד בלי לדרוך על האחרים
- ניפוי שגיאות עם השערות מתחרות: חברי הצוות בודקים תאוריות שונות במקביל ומתכנסים לתשובה מהר יותר
- תיאום בין שכבות: שינויים שחוצים frontend, backend ובדיקות, וכל אחד בבעלות חבר צוות אחר
צוותי סוכנים מוסיפים תקורה של תיאום ומשתמשים בהרבה יותר טוקנים מסשן יחיד. הם עובדים הכי טוב כשחברי הצוות יכולים לפעול באופן עצמאי. למשימות עוקבות, לעריכות באותו קובץ, או לעבודה עם הרבה תלויות, סשן יחיד או סוכני משנה יעילים יותר.
#השוואה לסוכני משנה
גם צוותי סוכנים וגם סוכני משנה מאפשרים להקביל עבודה, אבל הם פועלים אחרת. לסשנים נפרדים שמעבירים הודעות זה לזה בלי צוות, ראו הודעות בין סשנים.

סוכני משנה מדווחים תוצאות בחזרה לסוכן הראשי. בצוותי סוכנים, חברי הצוות חולקים רשימת משימות, לוקחים עבודה, ומתקשרים ישירות זה עם זה.
| סוכני משנה | צוותי סוכנים | |
|---|---|---|
| הקשר | חלון הקשר משלו. התוצאות חוזרות לקורא | חלון הקשר משלו. עצמאי לגמרי |
| תקשורת | מחזיר תוצאה לקורא. סוכני משנה ש-Claude נתן להם שם כשהפעיל אותם יכולים גם לשלוח הודעות זה לזה | חברי הצוות שולחים הודעות ישירות זה לזה |
| תיאום | הסוכן הראשי מנהל את כל העבודה | תיאום עצמי דרך הודעות, ובנוסף רשימת משימות משותפת לסוכנים שיש להם את כלי Task |
| הכי מתאים ל | משימות ממוקדות שבהן רק התוצאה חשובה | עבודה מורכבת שדורשת דיון ושיתוף פעולה |
| עלות טוקנים | נמוכה יותר: התוצאות מסוכמות בחזרה להקשר הראשי | גבוהה יותר: כל חבר צוות הוא מופע נפרד של Claude |
השתמשו בסוכני משנה כשצריך עובדים מהירים וממוקדים שמדווחים בחזרה. השתמשו בצוותי סוכנים כשחברי הצוות צריכים לשתף ממצאים, לאתגר זה את זה, ולתאם בעצמם.
#הפעלת צוותי סוכנים
צוותי סוכנים כבויים כברירת מחדל. הפעילו אותם על ידי הגדרת משתנה הסביבה CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS ל-1, בסביבת המעטפת או דרך settings.json:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}הפעלת צוותי סוכנים משנה גם האצלה רגילה. Claude עשוי לתת שם לסוכן משנה בעצמו, ובזמן שצוותי סוכנים מופעלים, סוכן משנה ש-Claude נותן לו שם מופעל כחבר צוות, כך שצוותים יכולים להיווצר גם כשלא ביקשתם צוות. לפרטים נוספים, ראו איך Claude מתחיל צוותי סוכנים. כדי לכבות את ההתנהגות, ראו Claude מפעיל חברי צוות במקום סוכני משנה.
הפעלת חברי צוות דורשת גם סשן אינטראקטיבי. במצב לא אינטראקטיבי עם הדגל -p, כולל סשנים של Agent SDK, Claude לא מפעיל חברי צוות, וסוכן משנה ש-Claude נותן לו שם רץ כסוכן משנה רגיל גם כשצוותי סוכנים מופעלים.
#התחלת צוות הסוכנים הראשון
אחרי הפעלת צוותי סוכנים, תארו בשפה טבעית את המשימה ואת חברי הצוות שאתם רוצים. Claude מפעיל אותם ומתאם את העבודה לפי ההנחיה שלכם.
הדוגמה הזו עובדת טוב כי שלושת התפקידים עצמאיים ויכולים לחקור את הבעיה בלי לחכות זה לזה:
I'm designing a CLI tool that helps developers track TODO comments across
their codebase. Spawn three teammates to explore this from different angles:
one on UX, one on technical architecture, one playing devil's advocate.משם, Claude ממלא רשימת משימות משותפת בסשן שיש לו את כלי Task, מפעיל חברי צוות לכל נקודת מבט, נותן להם לחקור את הבעיה, ומסנתז ממצאים כשהם מסיימים.
לפעמים Claude עשוי להשתמש בסוכני משנה במקום ליצור צוות. סוכני משנה מופיעים באותו לוח סוכנים כמו חברי צוות, כך שהלוח לבדו לא מאשר שנוצר צוות. אם Claude הפעיל סוכני משנה במקום זאת, בקשו שוב ובקשו במפורש צוות סוכנים.
המסוף של המוביל מציג את חברי הצוות בלוח הסוכנים מתחת לקלט ההנחיה. מהלוח:
- חצים למעלה ולמטה: בחירת חבר צוות
- Enter: פתיחת התמליל של חבר הצוות שנבחר ושליחת הודעה אליו ישירות
- Escape: ניקוי הבחירה. בזמן שצופים בתמליל של חבר צוות, Escape קוטע את התור הנוכחי של אותו חבר צוות
השורה של חבר צוות במצב המתנה נשארת בלוח כל עוד חבר צוות או סוכן משנה כלשהו עדיין עובד, כך שאפשר לבחור אותה כדי לסקור את התמליל או לשלוח עוד עבודה. ברגע שכל סוכן בלוח במצב המתנה, שורות במצב המתנה מוסתרות אחרי 30 שניות ומופיעות שוב בתור הבא של חבר הצוות. חבר הצוות ממשיך לרוץ ואפשר לפנות אליו גם כשהוא מוסתר.
כשיותר משלושה חברי צוות במצב המתנה בו זמנית, השורות מעבר לשלוש הראשונות מתקפלות לשורה אחת שסופרת את חברי הצוות המקופלים, למשל 2 idle agents כשחמישה במצב המתנה. בחרו אותה ולחצו Enter כדי להרחיב את השורות המקופלות, או לחצו Esc כדי לקפל אותן שוב. חברי צוות שעובדים, חברי צוות שנכשלו, וחבר הצוות שאתם צופים בו תמיד שומרים על שורה משלהם.
אם רוצים שכל חבר צוות יהיה בחלונית מפוצלת משלו, ראו בחירת מצב תצוגה.
#שליטה בצוות הסוכנים
אמרו למוביל מה אתם רוצים בשפה טבעית. הוא מטפל בתיאום הצוות, בהקצאת משימות, ובהאצלה לפי ההוראות שלכם.
#בחירת מצב תצוגה
צוותי סוכנים תומכים בשני מצבי תצוגה:
- In-process: כל חברי הצוות רצים בתוך המסוף הראשי. השתמשו במקשי החצים למעלה ולמטה בלוח הסוכנים כדי לבחור חבר צוות, ואז לחצו Enter כדי לצפות בו והקלידו כדי לשלוח לו הודעה ישירות. עובד בכל מסוף, בלי הגדרה נוספת.
- חלוניות מפוצלות: לכל חבר צוות יש חלונית משלו. אפשר לראות את הפלט של כולם בבת אחת וללחוץ לתוך חלונית כדי לפעול ישירות. דורש tmux, או iTerm2.
[!NOTE]
ל-
tmuxיש מגבלות ידועות במערכות הפעלה מסוימות, ובאופן מסורתי הוא עובד הכי טוב ב-macOS. השימוש ב-tmux -CCב-iTerm2 הוא נקודת הכניסה המוצעת אלtmux.
ברירת המחדל היא "in-process". הגדירו "auto" כדי להפעיל חלוניות מפוצלות כשאתם כבר רצים בתוך סשן tmux, או כשהמסוף הוא iTerm2 עם CLI בשם it2 מותקן, ובמקרים אחרים לחזור ל-in-process. ההגדרה "tmux" מפעילה מצב חלוניות מפוצלות ומזהה אוטומטית אם להשתמש ב-tmux או ב-iTerm2 לפי המסוף.
הגדירו "iterm2" כדי להשתמש במפורש בחלוניות מפוצלות מקוריות של iTerm2. המצב הזה דורש את ה-CLI בשם it2 ומציג שגיאה עם פקודת ההתקנה אם it2 חסר. הנחיית ההגדרה שמציעה להתקין את it2 או לעבור ל-tmux מופיעה תחת "auto" או "tmux" כשהמסוף הוא iTerm2 ו-tmux זמין כגיבוי.
כדי לעקוף את ברירת המחדל, הגדירו את teammateMode ב-~/.claude/settings.json:
{
"teammateMode": "auto"
}כדי להגדיר את המצב לסשן יחיד, העבירו אותו כדגל:
claude --teammate-mode autoהדגל --teammate-mode ניסיוני ולא מופיע ב-claude --help.
מצב חלוניות מפוצלות דורש tmux או iTerm2 עם ה-CLI בשם it2. להתקנה ידנית:
- tmux: התקינו דרך מנהל החבילות של המערכת. ראו את הוויקי של tmux להוראות לפי פלטפורמה.
- iTerm2: התקינו את ה-CLI בשם
it2, ואז הפעילו את Python API ב-iTerm2 → Settings → General → Magic → Enable Python API.
#ציון חברי צוות ומודלים
Claude מחליט כמה חברי צוות להפעיל לפי המשימה, או שאפשר לציין בדיוק מה רוצים:
Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for
each teammate.Claude Code בוחר את המודל של כל חבר צוות לפי הראשון מבין אלה שחל:
- המודל שהנחיית ההפעלה שלכם מציינת עבור אותו חבר צוות.
- לחבר צוות שהופעל מהגדרת סוכן משנה, ה-
modelשל ההגדרה, כאשרinheritבוחר את המודל של המוביל. CLAUDE_CODE_SUBAGENT_MODEL, כשהוא מוגדר לכל ערך שאינוinherit.- המודל הנוכחי של המוביל.
אם mod מותקן מגדיר מודל ב-hook של agent.spawn, Claude Code משתמש במודל הזה במקום המקור הראשון.
אם מגדירים CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1, שני המקורות הראשונים לא חלים. Claude Code בוחר את המודל של כל חבר צוות מ-CLAUDE_CODE_SUBAGENT_MODEL כשהוא מוגדר לכל ערך שאינו inherit, ומהמודל הנוכחי של המוביל במקרה האחר. דורש Claude Code מגרסה v2.1.257 ואילך.
לפני v2.1.251, CLAUDE_CODE_SUBAGENT_MODEL היה ראשון בסדר הזה.
[!NOTE]
teammateDefaultModelהוסר ב-v2.1.234. Claude Code מתעלם מערך שנשאר. ציינו את המודל בהנחיה במקום זאת.
Claude Code בודק את המודל שהוא בוחר לחבר צוות מול רשימת ההיתר availableModels של הארגון. כשרשימת ההיתר חוסמת ערך, Claude Code מחליף למודל אחר:
- כינוי משפחה כגון
opus: ב-Anthropic API וב-Claude Platform על AWS, Claude Code מריץ את חבר הצוות על הגרסה החדשה ביותר של אותה משפחה שרשימת ההיתר מתירה. אצל ספקים עם מזהי מודל ייחודיים לספק, שבהם ההחלפה לא פועלת, כינוי חסום נופל חזרה כמו כל ערך חסום אחר לפי הנקודה הבאה - כל ערך חסום אחר, כולל כינוי משפחה אצל ספקים שבהם ההחלפה לא פועלת, או כינוי שהמשפחה שלו אין לה גרסה מותרת: Claude Code מריץ את חבר הצוות על המודל של המוביל במקום זאת. אם הגדרתם
CLAUDE_CODE_SUBAGENT_MODEL, Claude Code מנסה קודם את המודל הזה, לפי אותם כללים
כברירת מחדל, חבר צוות על המודל של המוביל יורש את רמת המאמץ של המוביל. במצב חלוניות מפוצלות זה חל מ-v2.1.186. גרסאות קודמות לא העבירו את מאמץ הסשן של המוביל לחברי צוות בחלוניות מפוצלות. לחבר צוות על מודל אחר, ראו רמת מאמץ של סוכני משנה וחברי צוות.
#בקשה מחברי הצוות לתכנן לפני היישום
למשימות מורכבות או מסוכנות, אפשר לבקש מחברי הצוות לתכנן לפני היישום. חבר צוות ש-Claude מפעיל בזמן שהמוביל במצב תוכנית עובד גם הוא במצב תוכנית עד שהתוכנית שלו מוכנה. העבירו קודם את המוביל למצב תוכנית, ואז בקשו את חבר הצוות:
Spawn an architect teammate to refactor the authentication module.כשחבר הצוות הזה מסיים לתכנן, הוא שולח למוביל בקשת אישור לתוכנית. אם לא שיניתם את מצב ההרשאות של אותו חבר צוות מאז שהופעל, Claude Code מאשר את התוכנית ברגע שהבקשה מגיעה, בלי שהמוביל סוקר אותה. אחרי האישור, חבר הצוות יוצא ממצב תוכנית ומתחיל ביישום. Claude Code מעביר לו את מצב ההרשאות הנוכחי של המוביל, או Manual אם המצב הזה הוא מצב תוכנית.
אם מעבירים חבר צוות in-process שרץ למצב תוכנית בלחיצה על Shift+Tab בזמן הצפייה בסשן שלו, המוביל סוקר את התוכנית של הריצה הזו במקום ש-Claude Code יאשר אותה. לא מתבקשים לאשר אותה. המוביל מאשר אותה או מחזיר אותה לתיקון.
#דיבור ישיר עם חברי הצוות
כל חבר צוות הוא סשן Claude Code מלא ועצמאי. אפשר לשלוח הודעה לכל חבר צוות ישירות כדי לתת הוראות נוספות, לשאול שאלות המשך, או להפנות את הגישה שלו.
- מצב in-process: השתמשו במקשי החצים למעלה ולמטה בלוח הסוכנים כדי לבחור חבר צוות, ואז לחצו Enter כדי לצפות בסשן שלו והקלידו כדי לשלוח לו הודעה. לחצו
xעל חבר צוות שנבחר כדי לעצור אותו. לחצו Ctrl+T כדי להציג או להסתיר את רשימת המשימות. - מצב חלוניות מפוצלות: לחצו לתוך החלונית של חבר צוות כדי לפעול ישירות עם הסשן שלו. לכל חבר צוות יש תצוגה מלאה של המסוף שלו.
בזמן הצפייה בחבר צוות in-process, טקסט רגיל וskills הולכים אל אותו חבר צוות, ופקודות מובנות הולכות לסשן של המוביל, עם ההגנות האלה:
/compact,/clearו-/rewindפועלים על השיחה של המוביל, ולכן Claude Code מבקש אישור לפני הרצה של אחת מהן מהתצוגה הזו./modelו-/fastמגדירים את המודל ואת מצב fast של המוביל, לא של חבר הצוות, ולכן הם לא רצים מהתצוגה הזו. הודעה מסבירה למה.
המודל ומצב fast של חבר צוות קבועים בזמן ההפעלה שלו.
#הקצאה ולקיחת משימות
רשימת המשימות המשותפת מתאמת עבודה בצוות. המוביל יוצר משימות וחברי הצוות עוברים עליהן. למשימות יש שלושה מצבים: pending, in progress ו-completed. משימה יכולה גם להיות תלויה במשימות אחרות, והיא מוצגת כחסומה ברשימת המשימות עד שהן הושלמו. חברי צוות לא לוקחים בעצמם משימה חסומה, אבל אתם או המוביל עדיין יכולים להקצות אותה.
סוכנים בלי כלי Task מתואמים דרך הודעות במקום דרך רשימת המשימות המשותפת.
המוביל יכול להקצות משימות במפורש, או שחברי צוות יכולים לקחת משימות בעצמם:
- המוביל מקצה: אמרו למוביל איזו משימה לתת לאיזה חבר צוות
- לקיחה עצמית: אחרי סיום משימה, חבר צוות לוקח בעצמו את המשימה הבאה שלא הוקצתה ואינה חסומה
לקיחת משימות משתמשת בנעילת קבצים כדי למנוע תנאי מרוץ כשכמה חברי צוות מנסים לקחת את אותה משימה בו זמנית.
#כיבוי חברי צוות
כדי לסיים בחן את הסשן של חבר צוות, פנו אליו לפי שם. לדוגמה, עם חבר צוות בשם researcher:
Ask the researcher teammate to shut downהמוביל שולח בקשת כיבוי. חבר הצוות יכול לאשר, ולצאת בחן, או לדחות עם הסבר.
התיקיות המשותפות של הצוות מנוקות אוטומטית כשהסשן מסתיים, כך שאין שלב ניקוי נפרד. ראו ארכיטקטורה אילו תיקיות מוסרות ואילו נשארות על הדיסק.
#אכיפת שערי איכות עם hooks
השתמשו ב-hooks כדי לאכוף כללים כשחברי צוות מסיימים עבודה או כשמשימות נוצרות או מושלמות:
TeammateIdle: רץ כשחבר צוות עומד לעבור למצב המתנה. צאו עם קוד 2 כדי לשלוח משוב ולהשאיר את חבר הצוות בעבודה.TaskCreated: רץ כשמשימה נוצרת. צאו עם קוד 2 כדי למנוע יצירה ולשלוח משוב.TaskCompleted: רץ כשמשימה מסומנת כהושלמה. צאו עם קוד 2 כדי למנוע השלמה ולשלוח משוב.
#איך צוותי סוכנים עובדים
הקטע הזה מכסה את הארכיטקטורה והמכניקה שמאחורי צוותי סוכנים. אם רוצים להתחיל להשתמש בהם, ראו שליטה בצוות הסוכנים למעלה.
#איך קלוד מתחיל צוותי סוכנים
כדי להתחיל צוות, בקשו מקלוד חברי צוות. קלוד מפעיל חבר צוות כשהוא קורא לכלי Agent עם name בזמן שצוותי סוכנים מופעלים, אלא אם הקריאה היא fork או מעבירה isolation בקריאה עצמה. Claude Code לא מבקש מכם לאשר את ההפעלה.
קלוד גם נותן שמות לתת-סוכנים רגילים בעצמו כדי שיוכל לשלוח להם הודעות אחר כך. הקריאות האלה עוקבות אחרי אותו כלל, כך שצוותים יכולים להיווצר גם כשלא ביקשתם צוות. אם רוצים תת-סוכנים, כבו את צוותי הסוכנים.
#ארכיטקטורה
צוות סוכנים מורכב מ:
| רכיב | תפקיד |
|---|---|
| מוביל הצוות | סשן Claude Code הראשי שמפעיל חברי צוות ומתאם את העבודה |
| חברי צוות | מופעי Claude Code נפרדים, שכל אחד מהם עובד על משימות שהוקצו לו |
| רשימת משימות | רשימה משותפת של פריטי עבודה שחברי הצוות תופסים ומשלימים |
| תיבת דואר | מערכת הודעות לתקשורת בין סוכנים |
תיבת הדואר של כל סוכן היא קובץ JSON בנתיב ~/.claude/teams/{team-name}/inboxes/{agent-name}.json. Claude Code מאמת כל רשומה כשהוא קורא קובץ תיבת דואר. רשומות שלא תואמות את פורמט ההודעה מדווחות כשגיאות ומוסרות מהקובץ. ההודעות התקינות עדיין נמסרות.
Claude Code מדווח על הודעה כנשלחה רק כשהכתיבה לקובץ תיבת הדואר של הנמען מצליחה, בין אם ההודעה היא טקסט רגיל ובין אם הודעת פרוטוקול מובנית כמו אישור תוכנית או בקשת כיבוי. כשהכתיבה נכשלת, למשל כי הדיסק מלא או שספריית תיבת הדואר לא ניתנת לכתיבה, הסוכן השולח מקבל שגיאה ושום דבר לא נשלח. ראו נכשלה כתיבה לתיבת הדואר של חבר צוות להודעות השגיאה ולשלבי השחזור.
Claude Code מנהל תלויות משימות אוטומטית: כשחבר צוות משלים משימה שמשימות אחרות תלויות בה, הוא משחרר את המשימות התלויות בלי שום פעולה מצידכם.
צוותים ומשימות נשמרים מקומית תחת שם שנגזר מהסשן. השם הוא session- ואחריו שמונה התווים הראשונים של מזהה הסשן:
- הגדרות צוות:
~/.claude/teams/{team-name}/config.json. Claude Code מסיר את ספריית הגדרות הצוות כשהסשן מסתיים. - רשימת משימות:
~/.claude/tasks/{team-name}/. הספרייה הזו נשארת על הדיסק אחרי שהסשן מסתיים. כדי לשנות כמה זמן Claude Code שומר אותה, הגדירו אתcleanupPeriodDays.
Claude Code יוצר את שני אלה אוטומטית בהפעלת הסשן ומעדכן אותם כשחברי צוות מצטרפים, עוברים למצב idle, או עוזבים.
הגדרות הצוות מחזיקות מצב זמן ריצה כמו מזהי סשן ומזהי חלוניות tmux, אז אל תערכו אותן ידנית ואל תכתבו אותן מראש: השינויים שלכם נדרסים בעדכון המצב הבא.
כדי להגדיר תפקידי חברי צוות לשימוש חוזר, השתמשו בהגדרות תת-סוכן.
הגדרות הצוות מכילות מערך members עם השם ומזהה הסוכן של כל חבר. הרשומה של המוביל תמיד נושאת את סוג הסוכן team-lead. הרשומה של חבר צוות נושאת את סוג הסוכן שהמוביל נקב בשמו בעת ההפעלה, בין אם סוג מובנה ובין אם הגדרת תת-סוכן, ומשמיטה את השדה כשהמוביל לא נקב בשם. חברי צוות יכולים לקרוא את הקובץ הזה כדי לגלות חברי צוות אחרים.
אין מקבילה ברמת הפרויקט להגדרות הצוות. קובץ כמו .claude/teams/teams.json בספריית הפרויקט לא מזוהה כהגדרות. קלוד מתייחס אליו כקובץ רגיל.
#שימוש בהגדרות תת-סוכן לחברי צוות
כשמפעילים חבר צוות בכל אחד ממצבי התצוגה, אפשר להפנות לסוג תת-סוכן מהיקף תת-הסוכן של project, user, managed או plugin. זה מאפשר להגדיר תפקיד פעם אחת, כמו security-reviewer או test-runner, ולעשות בו שימוש חוזר גם כתת-סוכן מואצל וגם כחבר צוות בצוות סוכנים.
כדי להשתמש בהגדרת תת-סוכן, נקבו בשמה כשמבקשים מקלוד להפעיל את חבר הצוות:
Spawn a teammate using the security-reviewer agent type to audit the auth module.Claude Code קורא את הגדרת תת-הסוכן שציינתם ומחיל את החלקים האלה שלה על חבר הצוות. כשחלק תלוי במצב התצוגה של חבר הצוות, הרשומה מציינת זאת:
tools: Claude Code מגביל את חבר הצוות לכלים שברשימתtoolsשל ההגדרה. לחבר צוות בתוך התהליך, Claude Code מוסיף אתSendMessageלרשימה הזו, ובסשן שיש בו את כלי Task הוא מוסיף גם אתTaskCreate,TaskGet,TaskListו-TaskUpdate.model: Claude Code משתמש ב-modelשל ההגדרה בכל אחד ממצבי התצוגה כשההנחיה להפעלה לא מציינת מודל. ראו איך Claude Code בוחר מודל לחבר צוות.disallowedTools: לחבר צוות בתוך התהליך, Claude Code מסיר את הכלים שב-disallowedToolsשל ההגדרה מקבוצת הכלים של חבר הצוות.SendMessageוכלי ה-Task שהוא מוסיף נשארים זמינים גם כשהרשימה מציינת אותם.effort: לחבר צוות בתוך התהליך, Claude Code מחיל אתeffortשל ההגדרה לפי כללי effort ב-frontmatter.autoCompactWindow: לחבר צוות בתוך התהליך, Claude Code מחיל אתautoCompactWindowשל ההגדרה לפי הכללים של השדה הזה. חבר צוות בחלונית מפוצלת מתעלם מהשדה. נדרש Claude Code גרסה v2.1.296 או חדשה יותר.- Body: לחבר צוות בתוך התהליך, Claude Code מצרף את גוף ההגדרה להנחיית המערכת ברירת המחדל שלו כהוראות נוספות. לחבר צוות בחלונית מפוצלת, Claude Code משתמש בגוף במקום הנחיית המערכת ברירת המחדל שלו.
skills: Claude Code לא מחיל אתskillsשל ההגדרה על חבר צוות באף אחד ממצבי התצוגה. חבר הצוות טוען skills מהפרויקט ומהגדרות המשתמש.mcpServers: לחבר צוות בחלונית מפוצלת, Claude Code מחיל אתmcpServersשל ההגדרה לפי הכללים של השדה הזה, שמכסים גם סשן שהתחיל עם--agent. חבר צוות בתוך התהליך מתעלם מהשדה וטוען שרתי MCP מהפרויקט ומהגדרות המשתמש.
כשקלוד שולח הודעה לחבר צוות בתוך התהליך שכבר לא רץ, Claude Code מחזיר אותו באותו סשן, משחזר כל שיחה שנשמרה עבורו, ונותן לו את ההודעה כהנחיה הבאה שלו. אחרי שממשיכים סשן, חברי צוות לא מוחזרים כך, לפי מגבלת ההמשך.
לחבר צוות שהוא מחזיר, Claude Code מחיל מחדש הגדרה שהגיעה מספריית .claude/agents/ של פרויקט או מספריית --add-dir רק אם נתתם אמון בתיקייה שבה נמצא קובץ הסוכן. אמון בתיקיית אב לא נחשב. עד אז, חבר הצוות חוזר בלי הכלים או ההוראות של ההגדרה, ושומר רק את הכלים ש-Claude Code מוסיף לכל חבר צוות בתוך התהליך. ראו הגדרת הסוכן של חבר הצוות לא שוחזרה לטקסט ההודעה.
#הרשאות
כדי לעבור בין מצבי ההרשאה של חבר צוות שרץ, לחצו על Shift+Tab, אם כי חבר צוות בתוך התהליך יכול לרוץ במצב של המוביל. לחבר צוות בחלונית מפוצלת, לחצו על זה בחלונית שלו. לחבר צוות בתוך התהליך, לחצו על זה בזמן צפייה בסשן שלו, וחבר הצוות בודק את המצב שלו כשהוא מתחיל את התור הבא.
הערה
חבר צוות בתוך התהליך שאינו במצב תוכנית רץ במצב של המוביל בזמן שהמוביל נמצא במצב
acceptEdits,auto, אוbypassPermissions. מעבר של חבר הצוות ל-Manual לא משנה את זה, גם אם שורת המצב שלו מציגה Manual.כדי שהוא ישאל לפני שהוא עורך, לחצו Enter על שורת
mainבלוח הסוכנים והעבירו גם את המוביל למצב Manual. אז גם המוביל שואל, וכך גם כל חבר צוות אחר במצב Manual.
אי אפשר להגדיר מצבי הרשאה לכל חבר צוות בנפרד בזמן ההפעלה. חבר צוות חדש מתחיל עם המצב של המוביל, כולל מצב bypassPermissions, ש---dangerously-skip-permissions מפעיל. אם המוביל נמצא במצב dontAsk, חבר הצוות מתחיל במצב Manual. לחבר צוות בחלונית מפוצלת של מוביל במצב Manual או dontAsk, זה דורש Claude Code גרסה v2.1.317 או חדשה יותר.
חבר צוות בתוך התהליך רץ לפי כללי ההיתר והחסימה החיים של המוביל, כך ש---disallowedTools, --tools ו---allowedTools חלים עליו כולם. לחבר צוות בחלונית מפוצלת, בדקו כל דגל:
--disallowedToolsו---tools: חבר הצוות מתחיל עם כללי החסימה ורשימת הכלים משורת הפקודה של המוביל. נדרש Claude Code גרסה v2.1.309 או חדשה יותר.--allowedTools: Claude Code לא מעביר את הדגל הזה לחבר צוות בחלונית מפוצלת, כך שפעולה שאישרתם באמצעותו בלבד לא מאושרת מראש שם. כדי לאשר את הפעולות האלה מראש, שימו את הכללים תחתpermissions.allowב---settingsכשמתחילים את המוביל. לדוגמה, הריצוclaude --settings '{"permissions":{"allow":["Bash(npm *)"]}}'במעטפת. הכללים חלים על המוביל ועל כל חבר צוות בחלונית מפוצלת בסשן הזה.
בקשות ההרשאה של חבר צוות מופיעות בסשן של המוביל, אז אשרו אותן שם בעצמכם. אין צורך לאשר תוכנית של חבר צוות.
#הודעות בין סוכנים
כשסוכן אחד שולח לאחר הודעה דרך SendMessage, Claude Code מודיע לסוכן המקבל שההודעה הגיעה מסשן קלוד אחר, לא מכם. חבר צוות לא יכול לאשר בקשת הרשאה או לתת הסכמה בשמכם, וחבר צוות שנדחתה לו פעולה לא יכול להעביר אותה לחבר צוות אחר כדי לעקוף את הבדיקה. אותם כללים חלים על הודעה שמגיעה מאחד מסשני Claude Code האחרים שלכם, מחוץ לצוות לגמרי.
במצב auto, המסווג מחיל שתי בדיקות על הודעות בין סוכנים:
- הוא מתייחס לטענת אישור שהועברה מסוכן אחר כקלט לא מהימן, ולא כאישור מכם.
- הוא בודק כל הודעה לפני ש-Claude Code מוסר אותה, בין אם הודעה רגילה ובין אם הודעת פרוטוקול מובנית כמו בקשת כיבוי או תגובת אישור תוכנית. הודעה שהוא חוסם לא מגיעה לנמען.
#הקשר ותקשורת
לכל חבר צוות יש חלון הקשר משלו. כשהוא מופעל, חבר צוות טוען את אותו הקשר פרויקט כמו סשן רגיל: CLAUDE.md, שרתי MCP, ו-skills. אם מתחילים את המוביל עם --setting-sources, חברי הצוות נטענים מאותה רשימת מקורות מוגבלת. לפני v2.1.281, חברי צוות בחלונית מפוצלת טענו כל מקור הגדרות.
חבר צוות גם מקבל את הנחיית ההפעלה מהמוביל. היסטוריית השיחה של המוביל לא עוברת.
איך חברי צוות משתפים מידע:
- מסירת הודעות אוטומטית: כשחברי צוות שולחים הודעות, הן נמסרות אוטומטית לנמענים. המוביל לא צריך לדגום עדכונים.
- התראות idle: כשחבר צוות מסיים ועוצר, הוא מודיע אוטומטית למוביל וכולל את התשובה הסופית שלו בהתראה. חבר צוות שהתור שלו מסתיים בשגיאת API מודיע למוביל שהוא נכשל וכולל את טקסט השגיאה.
- רשימת משימות משותפת: סוכנים שיש להם את כלי Task יכולים לראות סטטוס משימות ולתפוס עבודה זמינה.
- הודעות בין חברי צוות: שלחו הודעה לחבר צוות מסוים אחד לפי שם. כדי להגיע לכולם, שלחו הודעה אחת לכל נמען.
המוביל מקצה לכל חבר צוות שם כשהוא מפעיל אותם, וכל חבר צוות יכול לשלוח הודעה לכל אחר לפי השם הזה. כדי לקבל שמות צפויים שאפשר להפנות אליהם בהנחיות מאוחרות יותר, אמרו למוביל איך לקרוא לכל חבר צוות בהוראת ההפעלה.
#שימוש בטוקנים
צוותי סוכנים משתמשים בהרבה יותר טוקנים מסשן יחיד. לכל חבר צוות יש חלון הקשר משלו, ושימוש הטוקנים גדל עם מספר חברי הצוות הפעילים. למחקר, סקירה, ועבודת פיצ'ר חדש, הטוקנים הנוספים בדרך כלל משתלמים. למשימות שגרתיות, סשן יחיד חסכוני יותר. ראו עלויות טוקנים של צוות סוכנים להנחיות שימוש.
בקשות של חבר צוות בתוך התהליך נופלות מחוץ לדלי ה-TTL של המטמון של השיחה הראשית, כך שהמטמון שלו נשמר לחמש דקות כברירת מחדל, כולל במנוי Claude. כדי לשמור אותו לשעה, הגדירו את subagentPromptCacheTtl ל-1h. ה-API מחייב כתיבות מטמון של שעה בתעריף גבוה יותר.
#דוגמאות לשימושים
הדוגמאות האלה מראות איך צוותי סוכנים מטפלים במשימות שבהן חקירה במקביל מוסיפה ערך.
#הרצת סקירת קוד במקביל
סוקר יחיד נוטה להימשך לסוג אחד של בעיה בכל פעם. פיצול קריטריוני הסקירה לתחומים עצמאיים אומר שאבטחה, ביצועים, וכיסוי בדיקות כולם מקבלים תשומת לב יסודית בו זמנית. ההנחיה מקצה לכל חבר צוות עדשה נפרדת כדי שלא תהיה חפיפה ביניהם:
Spawn three teammates to review PR #142:
- One focused on security implications
- One checking performance impact
- One validating test coverage
Have them each review and report findings.כל סוקר עובד מאותו PR אבל מחיל מסנן אחר. המוביל מסנתז את הממצאים מכל השלושה אחרי שהם מסיימים.
#חקירה עם השערות מתחרות
כשסיבת השורש לא ברורה, סוכן יחיד נוטה למצוא הסבר סביר אחד ולהפסיק לחפש. ההנחיה נלחמת בזה על ידי הפיכת חברי הצוות ליריבים במפורש: התפקיד של כל אחד הוא לא רק לחקור את התיאוריה שלו אלא גם לאתגר את התיאוריות של האחרים.
Users report the app exits after one message instead of staying connected.
Spawn 5 agent teammates to investigate different hypotheses. Have them talk to
each other to try to disprove each other's theories, like a scientific
debate. Update the findings doc with whatever consensus emerges.מבנה הדיון הוא המנגנון המרכזי כאן. חקירה רציפה סובלת מעיגון: ברגע שתיאוריה אחת נחקרה, החקירה שאחריה מוטה לכיוונה.
עם כמה חוקרים עצמאיים שמנסים באופן פעיל להפריך זה את זה, התיאוריה ששורדת סבירה הרבה יותר להיות סיבת השורש בפועל.
#שיטות עבודה מומלצות
#תנו לחברי הצוות מספיק הקשר
חברי הצוות טוענים את הקשר הפרויקט באופן אוטומטי, כולל CLAUDE.md, שרתי MCP ו-skills, אבל הם לא יורשים את היסטוריית השיחה של המוביל. ראו הקשר ותקשורת לפרטים. כללו פרטים ספציפיים למשימה ב-prompt של ה-spawn:
Spawn a security reviewer teammate with the prompt: "Review the authentication module
at src/auth/ for security vulnerabilities. Focus on token handling, session
management, and input validation. The app uses JWT tokens stored in
httpOnly cookies. Report any issues with severity ratings."#בחרו גודל צוות מתאים
אין מגבלה קשיחה על מספר חברי הצוות, אבל חלים אילוצים מעשיים:
- עלויות טוקנים גדלות באופן לינארי: לכל חבר צוות יש חלון הקשר משלו והוא צורך טוקנים באופן עצמאי. ראו עלויות טוקנים של צוות סוכנים לפרטים.
- תקורה של תיאום גדלה: יותר חברי צוות משמעו יותר תקשורת, תיאום משימות ופוטנציאל לקונפליקטים
- תשואה פוחתת: מעבר לנקודה מסוימת, חברי צוות נוספים לא מזרזים את העבודה באופן פרופורציונלי
התחילו עם 3-5 חברי צוות לרוב תהליכי העבודה. זה מאזן עבודה מקבילית עם תיאום שניתן לנהל. אם יש לכם 15 משימות עצמאיות, 3 חברי צוות הם נקודת התחלה טובה.
הגדילו רק כשהעבודה מרוויחה מחברי צוות שעובדים בו זמנית. שלושה חברי צוות ממוקדים לעתים קרובות מניבים תוצאות טובות יותר מחמישה מפוזרים.
#התאימו את גודל המשימות
- קטן מדי: תקורה של תיאום עולה על התועלת
- גדול מדי: חברי הצוות עובדים זמן רב מדי בלי נקודות בדיקה, וזה מגדיל את הסיכון למאמץ מבוזבז
- בדיוק נכון: יחידות עצמאיות שמייצרות תוצר ברור, כמו פונקציה, קובץ בדיקה או סקירה
[!TIP]
המוביל מפרק את העבודה למשימות ומקצה אותן לחברי הצוות באופן אוטומטי. אם הוא לא יוצר מספיק משימות, בקשו ממנו לפצל את העבודה לחלקים קטנים יותר. 5-6 משימות לכל חבר צוות שומרות על כולם פרודוקטיביים ומאפשרות למוביל להקצות מחדש עבודה אם מישהו נתקע.
#המתינו שחברי הצוות יסיימו
לפעמים המוביל מתחיל לממש משימות בעצמו במקום להמתין לחברי הצוות. אם אתם מבחינים בזה:
Wait for your teammates to complete their tasks before proceeding#התחילו במחקר ובסקירה
אם אתם חדשים בצוותי סוכנים, התחילו במשימות עם גבולות ברורים ושלא דורשות כתיבת קוד: סקירת PR, מחקר על ספרייה או חקירת באג. המשימות האלה מראות את הערך של חקירה מקבילית בלי אתגרי התיאום שמגיעים עם מימוש מקבילי.
#הימנעו מהתנגשויות קבצים
שני חברי צוות שעורכים את אותו קובץ מובילים לדריסות. פרקו את העבודה כך שכל חבר צוות יהיה אחראי על קבוצת קבצים אחרת.
#עקבו וכוונו
בדקו את ההתקדמות של חברי הצוות, הפנו מחדש גישות שלא עובדות, וסנתזו ממצאים כשהם מגיעים. השארת צוות לרוץ ללא השגחה זמן רב מדי מגדילה את הסיכון למאמץ מבוזבז.
#פתרון בעיות
#חברי צוות לא מופיעים
אם חברי צוות לא מופיעים אחרי שביקשתם מ-Claude ליצור אותם:
- במצב in-process, חברי הצוות מופיעים בלוח הסוכנים מתחת לקלט ה-prompt. השתמשו במקשי החצים למעלה ולמטה כדי לבחור אחד, ואז לחצו Enter כדי להציג אותו.
- שורת חבר צוות שנעלמה אחרי שישב במצב idle הוסתרה, לא הופסקה. שורות idle מוסתרות 30 שניות אחרי שכל הלוח עובר ל-idle ומופיעות מחדש בתור הבא של חבר הצוות. כשיותר משלושה חברי צוות במצב idle, השורות העודפות שלהם מתקפלות לשורה אחת
N idle agentsש-Enter מרחיב. שלחו לחבר הצוות הודעה לפי שם כדי להחזיר שורה מוסתרת. - בדקו שהמשימה שנתתם ל-Claude הייתה מורכבת מספיק כדי להצדיק צוות. Claude מחליט אם ליצור חברי צוות על סמך המשימה.
- אם ביקשתם במפורש split panes, ודאו ש-tmux מותקן וזמין ב-PATH שלכם:
which tmux- עבור iTerm2, אמתו שה-CLI
it2מותקן ושה-Python API מופעל בהעדפות של iTerm2.
#Claude יוצר חברי צוות במקום subagents
בזמן שצוותי סוכנים מופעלים, subagent ש-Claude נותן לו שם בסשן של המוביל מופעל כחבר צוות. Claude יכול לתת שמות ל-subagents בעצמו, כך שזה יכול לקרות במהלך האצלה שמעולם לא מסגרתם כעבודת צוות.
כדי לגרום ל-subagents בעלי שם להיות מופעלים שוב כ-subagents, כבו צוותי סוכנים על ידי הגדרת CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS ל-0:
settings.json:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "0"
}
}אין צורך להתחיל סשן חדש: Claude Code מחיל מחדש ערכי env מקובץ ההגדרות על הסשן הרץ כשאתם שומרים, וקורא מחדש את המשתנה בכל פעם ש-Claude יוצר subagent, כך שה-subagent הבא ש-Claude נותן לו שם מופעל כ-subagent.
הגדרת המשתנה ל-0 ב-settings.json של המשתמש דורסת export של ה-shell. מקורות הגדרות אחרים עדיין יכולים להפעיל צוותי סוכנים:
- קבצי הגדרות בעדיפות גבוהה יותר: הגדרות פרויקט, הגדרות מקומיות ו-payload של
--settingsחלים אחרי הגדרות המשתמש, כך שרשומתenvשמגדירה את המשתנה ל-1בכל אחד מהם מנצחת. ראו עדיפות הגדרות. - הגדרות מנוהלות: הגדרות מנוהלות חלות אחרי כל מקור אחר. אם הארגון שלכם מפעיל שם צוותי סוכנים, בקשו ממנהל המערכת לשנות את הערך המנוהל.
אחרי השינוי, Claude עדיין עשוי לתת שמות ל-subagents, והשם ממשיך לעבוד ככתובת SendMessage. Claude מקבל את התוצאה של כל subagent כשהוא מסתיים.
#יותר מדי בקשות הרשאה
בקשות הרשאה של חברי צוות עולות למוביל, וזה יכול ליצור חיכוך. אשרו מראש פעולות נפוצות בהגדרות ההרשאות שלכם לפני יצירת חברי צוות כדי להפחית הפרעות.
#סוכנים שנעצרים מוקדם
חברי צוות עשויים לעצור אחרי שנתקלו בשגיאות במקום להתאושש. בדקו את הפלט שלהם על ידי בחירת חבר הצוות בלוח הסוכנים ולחיצה על Enter במצב in-process, או על ידי לחיצה על החלונית במצב split, ואז אחד מאלה:
- תנו להם הוראות נוספות ישירות
- צרו חבר צוות חלופי כדי להמשיך את העבודה
הודעה מהמוביל או מחבר צוות אחר מעירה חבר צוות in-process שממתין לניסיון חוזר של בקשת API שנכשלה, כך שהוא מנסה שוב מיד במקום להמתין לכל השהיית הניסיון החוזר.
המוביל יכול גם לעצור מוקדם, ולהחליט שהצוות סיים לפני שכל המשימות באמת הושלמו. אם זה קורה, אמרו לו להמשיך.
#סשנים יתומים של tmux
אם סשן tmux נשאר אחרי שסשן Claude Code מסתיים, ייתכן שהוא לא נוקה במלואו. הציגו את הסשנים וסיימו את זה שנוצר על ידי הצוות:
tmux ls
tmux kill-session -t <session-name>#מגבלות
צוותי סוכנים הם ניסיוניים. מגבלות נוכחיות שכדאי להיות מודעים להן:
- אין חידוש סשן עם חברי צוות in-process:
/resumeו-/rewindלא משחזרים חברי צוות in-process. אחרי חידוש סשן, המוביל עשוי לנסות לשלוח הודעה לחברי צוות שכבר לא קיימים. אם זה קורה, אמרו למוביל ליצור חברי צוות חדשים. - סטטוס משימה יכול לפגר: חברי צוות לפעמים לא מסמנים משימות כהושלמו, וזה חוסם משימות תלויות. אם משימה נראית תקועה, בדקו אם העבודה באמת הסתיימה ועדכנו את סטטוס המשימה ידנית או אמרו למוביל לדרבן את חבר הצוות.
- כיבוי יכול להיות איטי: חברי צוות מסיימים את הבקשה או קריאת הכלי הנוכחית שלהם לפני כיבוי, וזה יכול לקחת זמן.
- צוות אחד לכל סשן: לסשן יש בדיוק צוות אחד, שמוגדר לסשן הזה. אי אפשר ליצור צוותים נוספים עם שם או לשתף צוות בין סשנים.
- אין צוותים מקוננים: חברי צוות לא יכולים ליצור חברי צוות משלהם. רק המוביל יכול לנהל את הצוות.
- אין subagents ברקע מחברי צוות in-process: ה-subagents של חבר צוות in-process רצים בחזית, כי עבודה ברקע של חבר צוות לא יכולה להמשיך להתקיים אחרי תהליך המוביל. Claude Code מחזיר שגיאה כשחבר צוות יוצר subagent שההגדרה שלו מגדירה
background: true. בקשה של חבר צוות עםrun_in_background: trueגם נכשלת, או עם שגיאה או על ידי ריצה בשקט בחזית. Subagents שמופעלים מהשיחה הראשית עוקבים אחרי ברירת המחדל של הרקע. - המוביל קבוע: הסשן הראשי הוא המוביל לכל חייו. אי אפשר לקדם חבר צוות למוביל או להעביר הנהגה.
- אין מצבי הרשאה לכל חבר צוות בזמן spawn: חברי צוות מתחילים עם מצב ההרשאה המתואר תחת הרשאות.
- חלוניות מפוצלות דורשות tmux או iTerm2: מצב in-process שהוא ברירת המחדל עובד בכל טרמינל. מצב split-pane לא נתמך בטרמינל המשולב של VS Code, ב-Windows Terminal או ב-Ghostty.
#הצעדים הבאים
חקרו גישות קשורות לעבודה מקבילית ולהאצלה:
- האצלה קלת משקל: subagents יוצרים סוכני עזר למחקר או לאימות בתוך הסשן שלכם, טובים יותר למשימות שלא צריכות תיאום בין סוכנים
- הודעות בין הסשנים שלכם: הודעות בין סשנים מאפשרות ל-Claude להעביר ממצאים בין הסשנים שאתם מריצים בעצמכם
- סשנים מקביליים ידניים: Git worktrees מאפשרים לכם להריץ כמה סשנים של Claude Code בעצמכם בלי תיאום צוות אוטומטי