תיעוד 36
תזמור צוותים של הפעלות Claude Code
תיאום מספר מופעים של Claude Code העובדים יחד כצוות, עם משימות משותפות, העברת הודעות בין סוכנים וניהול מרכזי.
אזהרה: צוותי סוכנים הם תכונה ניסיונית ומנוטרלת כברירת מחדל. הפעל אותם על ידי הגדרת
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1בקובץ settings.json או בסביבה שלך. ללא משתנה זה, שום צוות אינו מוגדר בתחילת ההפעלה, לא נכתבות ספריות צוות, ו-Claude אינו מקים או מציע חברי צוות. לצוותי סוכנים יש מגבלות ידועות בנוגע לחידוש הפעלה, תיאום משימות והתנהגות כיבוי.
צוותי סוכנים מאפשרים לך לתאם מספר מופעים של Claude Code שעובדים יחד. הפעלה אחת פועלת כמובילת הצוות, מתאמת את העבודה, מקצה משימות וממזגת תוצאות. חברי הצוות עובדים באופן עצמאי, כל אחד בחלון הקשר משלו, ומתקשרים ישירות זה עם זה. תוכל גם לדבר עם כל חבר צוות ישירות מבלי לעבור דרך המוביל.
לפני שאתה מגדיר צוות, בדוק אם אפשרות קלה יותר מתאימה למשימה. תת סוכנים פועלים בתוך הפעלה בודדת, ובעזרת העברת הודעות בין הפעלות Claude יכול להעביר ממצאים בין הפעלות שאתה מריץ בעצמך.
הערה: דף זה מתאר צוותי סוכנים נכון לגרסה v2.1.178. כאשר
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSמוגדר, הקמת חבר צוות אינה דורשת עוד שלב הגדרה, והניקוי מתבצע אוטומטית בעת יציאה מההפעלה. לפני גרסה v2.1.178, ביקשת מ-Claude ליצור ולתת שם לצוות תחילה, ו-Claude השתמש בכליםTeamCreateו-TeamDeleteכדי להגדיר ולהסיר אותו. שני הכלים אינם קיימים עוד. קלט ה-team_nameבכלי Agent מתקבל אך זוכה להתעלמות, והשדהteam_nameבמטעני הנתונים של ה-hooks מסוגTaskCreated,TaskCompletedו-TeammateIdlehook payloads נושא את השם הנגזר מההפעלה והוא מיושן (deprecated).
#מתי להשתמש בצוותי סוכנים
צוותי סוכנים יעילים ביותר עבור משימות שבהן חקירה מקבילית מביאה ערך אמיתי. ראה דוגמאות למקרי שימוש עבור תרחישים מלאים. מקרי השימוש הבולטים ביותר הם:
- מחקר וסקירה: מספר חברי צוות יכולים לחקור היבטים שונים של בעיה בו זמנית, ולאחר מכן לשתף ולאתגר את הממצאים זה של זה.
- מודולים או תכונות חדשות: חברי צוות יכולים לקחת בעלות על חלק נפרד מבלי להפריע זה לזה.
- ניפוי שגיאות עם השערות מתחרות: חברי צוות בודקים תאוריות שונות במקביל ומתכנסים לתשובה מהר יותר.
- תיאום חוצה שכבות: שינויים שמתפרסים על פני frontend, backend ובדיקות, כאשר כל אחד מהם נמצא באחריות חבר צוות אחר.
צוותי סוכנים מוסיפים תקורת תיאום וצורכים כמות גדולה משמעותית של אסימונים (tokens) בהשוואה להפעלה בודדת. הם פועלים בצורה הטובה ביותר כאשר חברי הצוות יכולים לפעול באופן עצמאי. עבור משימות סדרתיות, עריכות באותו קובץ או עבודה עם תלויות רבות, הפעלה בודדת או תת סוכנים יעילים יותר.
#השוואה לתת סוכנים
גם צוותי סוכנים וגם תת סוכנים מאפשרים לך לבצע עבודה במקביל, אך הם פועלים בצורה שונה. עבור הפעלות נפרדות שמעבירות הודעות זו לזו ללא צוות, ראה העברת הודעות בין הפעלות.

תת סוכנים מדווחים על תוצאות בחזרה לסוכן הראשי. בצוותי סוכנים, חברי הצוות חולקים רשימת משימות, תופסים עבודה ומתקשרים ישירות זה עם זה.
| תת סוכנים | צוותי סוכנים | |
|---|---|---|
| הקשר | חלון הקשר משלהם, התוצאות חוזרות לקורא | חלון הקשר משלהם, עצמאיים לחלוטין |
| תקשורת | מחזירים תוצאה לקורא. תת סוכנים ש-Claude נתן להם שם כאשר הקים אותם יכולים גם להעביר הודעות זה לזה | חברי הצוות מעבירים הודעות ישירות זה לזה |
| תיאום | הסוכן הראשי מנהל את כל העבודה | תיאום עצמי באמצעות הודעות, בתוספת רשימת משימות משותפת עבור סוכנים שיש להם את כלי ה-Task |
| מתאים ביותר עבור | משימות ממוקדות שבהן רק התוצאה חשובה | עבודה מורכבת הדורשת דיון ושיתוף פעולה |
| עלות אסימונים | נמוכה יותר: התוצאות מתומצתות בחזרה להקשר הראשי | גבוהה יותר: כל חבר צוות הוא מופע Claude נפרד |
השתמש בתת סוכנים כאשר אתה זקוק לעובדים מהירים וממוקדים שמדווחים בחזרה. השתמש בצוותי סוכנים כאשר חברי הצוות צריכים לשתף ממצאים, לאתגר זה את זה ולתאם בעצמם.
#הפעלת צוותי סוכנים
צוותי סוכנים מנוטרלים כברירת מחדל. הפעל אותם על ידי הגדרת משתנה הסביבה CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS לערך 1, בסביבת ה-shell שלך או דרך 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 קוטע את התור הנוכחי של אותו חבר צוות.
החל מגרסה v2.1.199, השורה של חבר צוות במצב לא פעיל נשארת בלוח כל עוד חבר צוות או תת סוכן כלשהו עדיין עובד, כך שתוכל לבחור בו כדי לסקור את התמליל שלו או לשלוח לו עבודה נוספת. ברגע שכל סוכן בלוח אינו פעיל, שורות לא פעילות מוסתרות לאחר 30 שניות ומופיעות מחדש בתור הבא של חבר הצוות. חבר הצוות ממשיך לפעול וניתן לפנות אליו בעודו מוסתר. בגרסאות v2.1.181 עד v2.1.198, שורה לא פעילה הוסתרה 30 שניות לאחר שהתור שלה עצמה הסתיים, גם כאשר חברי צוות אחרים עדיין עבדו. שורות לא פעילות אינן מוסתרות בגרסאות שלפני v2.1.181.
כאשר יותר משלושה חברי צוות אינם פעילים בו זמנית, השורות שמעבר לשלוש הראשונות קורסות לשורה אחת שסופרת את חברי הצוות שקרסו, כגון 2 idle agents כאשר חמישה אינם פעילים. בחר בה ולחץ על Enter כדי להרחיב את השורות שקרסו, או לחץ על Esc כדי לכווץ אותן שוב. חברי צוות עובדים, חברי צוות שנכשלו וחבר הצוות שבו אתה צופה שומרים תמיד על שורות משלהם.
אם אתה רוצה שכל חבר צוות יפעל בחלונית מפוצלת משלו, ראה בחירת מצב תצוגה.
#שליטה בצוות הסוכנים שלך
אמור למוביל מה אתה רוצה בשפה טבעית. הוא מטפל בתיאום הצוות, הקצאת משימות והאצלת סמכויות בהתבסס על ההוראות שלך.
#בחירת מצב תצוגה
צוותי סוכנים תומכים בשני מצבי תצוגה:
- בתוך התהליך (In-process): כל חברי הצוות רצים בתוך המסוף הראשי שלך. השתמש במקשי החצים למעלה ולמטה בלוח הסוכנים כדי לבחור חבר צוות, לאחר מכן לחץ על Enter כדי לצפות בו והקלד כדי לשלוח לו הודעה ישירות. עובד בכל מסוף, ללא צורך בהגדרה נוספת.
- חלוניות מפוצלות (Split panes): כל חבר צוות מקבל חלונית משלו. אתה יכול לראות את הפלט של כולם בבת אחת וללחוץ בתוך חלונית כדי לקיים אינטראקציה ישירה. דורש tmux, או iTerm2.
הערה: ל-
tmuxיש מגבלות ידועות במערכות הפעלה מסוימות, ובאופן מסורתי הוא פועל בצורה הטובה ביותר ב-macOS. שימוש ב-tmux -CCב-iTerm2 הוא נקודת הכניסה המומלצת ל-tmux.
ברירת המחדל היא "in-process". הגדר "auto" כדי להפעיל חלוניות מפוצלות כאשר אתה כבר רץ בתוך הפעלת tmux, או כאשר המסוף שלך הוא iTerm2 עם ה-CLI של it2 מותקן, עם חזרה ל-in-process במקרים אחרים. ההגדרה "tmux" מפעילה מצב חלוניות מפוצלות ומזהה אוטומטית אם להשתמש ב-tmux או ב-iTerm2 על סמך המסוף שלך.
החל מגרסה v2.1.186, הגדר "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 wiki להוראות ספציפיות לפלטפורמה.
- 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.- המודל הנוכחי של המוביל.
אם אתה מגדיר את 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 הופיע ראשון בסדר זה.
הערה:
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 מלאה ועצמאית. אתה יכול לשלוח הודעה לכל חבר צוות ישירות כדי לתת הנחיות נוספות, לשאול שאלות המשך או לכוון מחדש את הגישה שלו.
- מצב בתוך התהליך: השתמש במקשי החצים למעלה ולמטה בלוח הסוכנים כדי לבחור חבר צוות, לאחר מכן לחץ על Enter כדי לצפות בהפעלה שלו והקלד כדי לשלוח לו הודעה. לחץ על
xכאשר חבר צוות נבחר כדי לעצור אותו. לחץ על Ctrl+T כדי להחליף את מצב תצוגת רשימת המשימות. - מצב חלוניות מפוצלות: לחץ בתוך החלונית של חבר הצוות כדי לקיים אינטראקציה עם ההפעלה שלו ישירות. לכל חבר צוות יש תצוגה מלאה של המסוף שלו.
בזמן שאתה צופה בחבר צוות הפועל בתוך התהליך, טקסט רגיל וכישורים נשלחים לאותו חבר צוות, אך פקודות מובנות עדיין רצות בהפעלה של המוביל.
המודל ומצב fast של חבר צוות קבועים בעת הקמתו, כך ש-/model ו-/fast משנים רק את הגדרות המוביל. החל מגרסה v2.1.199, הקלדת כל אחת מהפקודות הללו בעת צפייה בחבר צוות מציגה הודעה שהשינוי חל על המוביל. גרסאות קודמות החילו זאת על המוביל ללא כל ציון. הפקודה /effort עדיין חלה על התורות המאוחרים יותר של חבר הצוות הנצפה, מכיוון שחברי צוות עוקבים אחר רמת המאמץ של המוביל.
#הקצאה ותפיסת משימות
רשימת המשימות המשותפת מתאמת את העבודה בצוות. המוביל יוצר משימות וחברי הצוות עובדים עליהן. למשימות יש שלושה מצבים: ממתינה (pending), בתהליך (in progress) והושלמה (completed). משימות יכולות גם להיות תלויות במשימות אחרות: משימה ממתינה עם תלויות שלא נפתרו אינה ניתנת לתפיסה עד שאותן תלויות יושלמו.
סוכנים ללא כלי ה-Task מתאמים באמצעות הודעות במקום רשימת המשימות המשותפת.
המוביל יכול להקצות משימות במפורש, או שחברי הצוות יכולים לתפוס משימות בעצמם:
- הקצאת מוביל: אמור למוביל איזו משימה לתת לאיזה חבר צוות.
- תפיסה עצמית: לאחר סיום משימה, חבר צוות לוקח בעצמו את המשימה הבאה שאינה מוקצית ושאינה חסומה.
תפיסת משימות משתמשת בנעילת קבצים כדי למנוע מצבי מרוץ כאשר מספר חברי צוות מנסים לתפוס את אותה משימה בו זמנית.
#כיבוי חברי צוות
כדי לסיים את הפעלתו של חבר צוות בצורה מסודרת, פנה אליו בשמו. לדוגמה, עם חבר צוות בשם researcher:
Ask the researcher teammate to shut downהמוביל שולח בקשת כיבוי. חבר הצוות יכול לאשר, ולצאת בצורה מסודרת, או לדחות עם הסבר.
הספריות המשותפות של הצוות מנוקות אוטומטית עם סיום ההפעלה, כך שאין שלב ניקוי נפרד. ראה ארכיטקטורה כדי לדעת אילו ספריות מוסרות ואילו נשמרות עבור הפעלות שמחודשות.
#אכיפת שערי איכות באמצעות hooks
השתמש ב-hooks כדי לאכוף כללים כאשר חברי צוות מסיימים עבודה או כאשר משימות נוצרות או מושלמות:
TeammateIdle: רץ כאשר חבר צוות עומד לעבור למצב לא פעיל. צא עם קוד 2 כדי לשלוח משוב ולהשאיר את חבר הצוות בעבודה.TaskCreated: רץ כאשר משימה נוצרת. צא עם קוד 2 כדי למנוע יצירה ולשלוח משוב.TaskCompleted: רץ כאשר משימה מסומנת כהושלמה. צא עם קוד 2 כדי למנוע השלמה ולשלוח משוב.
#כיצד פועלים צוותי סוכנים
חלק זה מכסה את הארכיטקטורה והמנגנונים מאחורי צוותי סוכנים. אם ברצונך להתחיל להשתמש בהם, ראה שליטה בצוות הסוכנים שלך למעלה.
#כיצד Claude מתחיל צוותי סוכנים
כדי להתחיל צוות, בקש מ-Claude חברי צוות. Claude מפעיל חבר צוות כאשר הוא קורא לכלי Agent tool עם name כאשר צוותי סוכנים מופעלים, אלא אם כן הקריאה היא פיצול (fork) או מעבירה isolation בקריאה עצמה. Claude Code אינו מבקש ממך לאשר את ההפעלה.
כמו כן, Claude נותן שמות לתת סוכנים רגילים בעצמו כדי שיוכל לשלוח להם הודעות מאוחר יותר. קריאות אלו פועלות לפי אותו כלל, כך שצוותים יכולים להיווצר גם כאשר לא ביקשת זאת. אם אתה רוצה תת סוכנים במקום זאת, כבה את צוותי הסוכנים.
#ארכיטקטורה
צוות סוכנים מורכב מ:
| רכיב | תפקיד |
|---|---|
| מוביל הצוות | הפעלת Claude Code הראשית שמקימה חברי צוות ומתאמת עבודה |
| חברי צוות | מופעים נפרדים של Claude Code שכל אחד מהם עובד על משימות שהוקצו לו |
| רשימת משימות | רשימה משותפת של פריטי עבודה שחברי הצוות תופסים ומשלימים |
| תיבת דואר | מערכת העברת הודעות לתקשורת בין סוכנים |
תיבת הדואר של כל סוכן היא קובץ JSON בנתיב ~/.claude/teams/{team-name}/inboxes/{agent-name}.json. Claude Code מאמת כל רשומה כשהוא קורא קובץ תיבת דואר. רשומות שאינן תואמות את מבנה ההודעה מדווחות כשגיאות ומוסרות מהקובץ. ההודעות התקינות עדיין נמסרות. לפני גרסה v2.1.207, רשומה אחת פגומה בתיבת הדואר גרמה לשגיאה חוזרת ונשנית בכל שנייה וחסמה מסירה עבור אותה תיבת דואר עד שמחקת את הקובץ ידנית.
Claude Code מדווח על הודעה ככזו שנשלחה רק כאשר הכתיבה לקובץ תיבת הדואר של הנמען מצליחה, בין אם ההודעה היא טקסט רגיל או הודעת פרוטוקול מובנית כגון אישור תוכנית או בקשת כיבוי. כאשר הכתיבה נכשלת, למשל בגלל שהדיסק מלא או שספריית תיבת הדואר אינה ניתנת לכתיבה, הסוכן השולח מקבל שגיאה ושום דבר אינו נשלח. ראה כשל בכתיבה לתיבת הדואר של חבר צוות עבור הודעות השגיאה ושלבי השחזור.
Claude Code מנהל תלויות משימה באופן אוטומטי: כאשר חבר צוות משלים משימה שמשימות אחרות תלויות בה, הוא משחרר את חסימת המשימות התלויות ללא כל פעולה מצדך.
צוותים ומשימות נשמרים מקומית תחת שם הנגזר מההפעלה. השם הוא session- ואחריו שמונת התווים הראשונים של מזהה ההפעלה:
- הגדרות הצוות:
~/.claude/teams/{team-name}/config.json - רשימת משימות:
~/.claude/tasks/{team-name}/
Claude Code מייצר את שניהם אוטומטית בהפעלת ההפעלה ומעדכן אותם כאשר חברי צוות מצטרפים, הופכים ללא פעילים או עוזבים. ספריית תצורת הצוות מוסרת כאשר ההפעלה מסתיימת. ספריית רשימת המשימות נשמרת מקומית ולעולם אינה מועלית, כך שהפעלות שמחודשות שומרות על המשימות שלהן. השמירה נשלטת על ידי אותו cleanupPeriodDays שאתה כבר שולט בו עבור תמלילי הפעלה, בהתאם לכללי סריקת השמירה.
תצורת הצוות מכילה מצב זמן ריצה כגון מזהי הפעלה ומזהי חלוניות tmux, לכן אל תערוך אותה ידנית ואל תיצור אותה מראש: השינויים שלך יידרסו בעדכון המצב הבא.
כדי להגדיר תפקידי חברי צוות לשימוש חוזר, השתמש בהגדרות תת סוכנים במקום זאת.
תצורת הצוות מכילה מערך members עם השם ומזהה הסוכן של כל חבר. הרשומה של המוביל נושאת תמיד את סוג הסוכן team-lead. רשומה של חבר צוות נושאת את סוג הסוכן שהמוביל ציין בעת הקמתו, בין אם סוג מובנה ובין אם הגדרת תת סוכן, ומשמיטה את השדה כאשר המוביל לא ציין סוג. חברי צוות יכולים לקרוא קובץ זה כדי לגלות חברי צוות אחרים.
אין מקבילה ברמת הפרויקט לתצורת הצוות. קובץ כמו .claude/teams/teams.json בספריית הפרויקט שלך אינו מזוהה כתצורה. Claude מתייחס אליו כאל קובץ רגיל.
#שימוש בהגדרות תת סוכנים עבור חברי צוות
בעת הקמת חבר צוות בכל אחד ממצבי התצוגה, תוכל להתייחס לסוג תת סוכן מתוך טווח הפרויקט, המשתמש או טווח תת הסוכנים המנוהל. הדבר מאפשר לך להגדיר תפקיד פעם אחת, כגון security-reviewer או test-runner, ולעשות בו שימוש חוזר הן כתת סוכן מואצל והן כחבר בצוות סוכנים.
כדי להשתמש בהגדרת תת סוכן, ציין את שמה כאשר אתה מבקש מ-Claude להקים את חבר הצוות:
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 בוחר את המודל של חבר צוות.- גוף ההגדרה: עבור חבר צוות בתוך התהליך, Claude Code מצרף את גוף ההגדרה להנחיית המערכת המוגדרת כברירת מחדל שלו כהוראות נוספות. עבור חבר צוות בחלונית מפוצלת, Claude Code משתמש בגוף ההגדרה במקום הנחיית המערכת המוגדרת כברירת מחדל.
skills: Claude Code אינו מחיל את ה-skillsשל ההגדרה על חבר צוות באף אחד ממצבי התצוגה. חבר הצוות טוען כישורים מהגדרות הפרויקט והמשתמש שלך.mcpServers: עבור חבר צוות בחלונית מפוצלת, Claude Code מחיל את ה-mcpServersשל ההגדרה תחת הכללים עבור שדה זה, המכסים גם הפעלה שהחלה עם--agent. חבר צוות בתוך התהליך מתעלם מהשדה וטוען שרתי MCP מהגדרות הפרויקט והמשתמש שלך.
#הרשאות
חברי צוות מתחילים עם מצב ההרשאות של המוביל, למעט מצב dontAsk, שאותו הם אינם יורשים. אם המוביל רץ עם --dangerously-skip-permissions, כל חברי הצוות רצים כך גם כן. לאחר ההקמה, תוכל לשנות את מצב ההרשאות של חבר צוות בודד, אך אינך יכול להגדיר מצבי הרשאות לכל חבר צוות בנפרד בעת ההקמה.
בקשות הרשאה של חברי צוות מופיעות בהפעלת המוביל, לכן אשר אותן שם בעצמך. אישור תוכנית הוא החריג המתוכנן: הפעלת המוביל מעניקה אישורי תוכנית לחברי צוות ללא הנחיה נפרדת אליך.
#הודעות בין סוכנים
כאשר סוכן אחד שולח לסוכן אחר הודעה באמצעות SendMessage, ה-Claude Code מודיע לסוכן המקבל שההודעה הגיעה מהפעלת Claude אחרת, ולא ממך. חבר צוות אינו יכול לאשר בקשת הרשאה או לספק הסכמה מטעמך, וחבר צוות שפעולה שלו נדחתה אינו יכול להעביר אותה לחבר צוות אחר כדי לעקוף את הבדיקה. אותם כללים חלים על הודעה שמגיעה מאחת מהפעלות ה-Claude Code האחרות שלך, מחוץ לצוות לחלוטין.
במצב אוטומטי, המסווג מחיל שתי בדיקות על הודעות בין סוכנים:
- הוא מתייחס לטענת אישור המועברת מסוכן אחר כאל קלט לא מהימן ולא כאל אישור ממך.
- הוא בודק כל הודעה לפני ש-Claude Code מוסר אותה, בין אם זו הודעה רגילה ובין אם זו הודעת פרוטוקול מובנית כגון בקשת כיבוי או תגובת אישור תוכנית. הודעה שנחסמת על ידו אינה מגיעה לעולם לנמען.
#הקשר ותקשורת
לכל חבר צוות יש חלון הקשר משלו. בעת הקמתו, חבר צוות טוען את אותו הקשר פרויקט כמו הפעלה רגילה: CLAUDE.md, שרתי MCP וכישורים. הוא גם מקבל את הנחיית ההקמה מהמוביל. היסטוריית השיחה של המוביל אינה מועברת הלאה.
כיצד חברי צוות משתפים מידע:
- מסירת הודעות אוטומטית: כאשר חברי צוות שולחים הודעות, הן נמסרות אוטומטית לנמענים. המוביל אינו צריך לבצע תשאול עבור עדכונים.
- הודעות על מצב לא פעיל: כאשר חבר צוות מסיים ועוצר, הוא מודיע אוטומטית למוביל וכולל את תשובתו הסופית בהודעה. חבר צוות שהתור שלו מסתיים בשגיאת 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.מבנה העימות הוא מנגנון המפתח כאן. חקירה סדרתית סובלת מעיגון (anchoring): ברגע שתאוריה אחת נחקרת, חקירה עוקבת מוטה כלפיה.
כאשר מספר חוקרים עצמאיים מנסים באופן פעיל להפריך זה את זה, סביר הרבה יותר שהתאוריה ששורדת היא אכן סיבת השורש האמיתית.
#שיטות מומלצות
#מתן הקשר מספק לחברי הצוות
חברי צוות טוענים את הקשר הפרויקט באופן אוטומטי, כולל CLAUDE.md, שרתי MCP וכישורים, אך הם אינם יורשים את היסטוריית השיחה של המוביל. ראה הקשר ותקשורת לפרטים. כלול פרטים ספציפיים למשימה בהנחיית ההקמה:
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 חברי צוות הם נקודת התחלה טובה.
הגדל את הצוות רק כאשר העבודה מרוויחה מכך שחברי הצוות עובדים בו זמנית. שלושה חברי צוות ממוקדים עולים לרוב בביצועיהם על חמישה מפוזרים.
#הגדרת גודל משימות מתאים
- קטנות מדי: תקורת התיאום עולה על התועלת.
- גדולות מדי: חברי צוות עובדים זמן רב מדי ללא בדיקות ביניים, מה שמגביר את הסיכון למאמץ מבוזבז.
- בדיוק במידה: יחידות עצמאיות המייצרות תוצר ברור, כגון פונקציה, קובץ בדיקה או סקירה.
טיפ: המוביל מפרק עבודה למשימות ומקצה אותן לחברי צוות באופן אוטומטי. אם הוא אינו יוצר מספיק משימות, בקש ממנו לפצל את העבודה לחלקים קטנים יותר. קיום של 5 עד 6 משימות לכל חבר צוות שומר על כולם פרודוקטיביים ומאפשר למוביל להקצות מחדש עבודה אם מישהו נתקע.
#המתנה לסיום חברי הצוות
לעתים המוביל מתחיל לממש משימות בעצמו במקום להמתין לחברי הצוות. אם אתה מבחין בכך:
Wait for your teammates to complete their tasks before proceeding#התחלה במחקר וסקירה
אם אתה חדש בצוותי סוכנים, התחל עם משימות שיש להן גבולות ברורים ושאינן דורשות כתיבת קוד: סקירת PR, חקר ספרייה או חקירת באג. משימות אלו מראות את הערך של חקירה מקבילית ללא אתגרי התיאום הנלווים למימוש מקבילי.
#הימנעות מקונפליקטים בקבצים
שני חברי צוות העורכים את אותו קובץ גורמים לדריסות. פצל את העבודה כך שכל חבר צוות יהיה אחראי על קבוצת קבצים שונה.
#ניטור והכוונה
בדוק את התקדמות חברי הצוות, כוון מחדש גישות שאינן פועלות ומזג ממצאים כשהם מתקבלים. מתן אפשרות לצוות לרוץ ללא השגחה זמן רב מדי מגביר את הסיכון למאמץ מבוזבז.
#פתרון בעיות
#חברי צוות אינם מופיעים
אם חברי צוות אינם מופיעים לאחר שביקשת מ-Claude להקים אותם:
- במצב בתוך התהליך, חברי צוות מופיעים בלוח הסוכנים מתחת לשורת קלט ההנחיות. השתמש במקשי החצים למעלה ולמטה כדי לבחור אחד מהם, ולאחר מכן לחץ על Enter כדי לצפות בו.
- שורת חבר צוות שנעלמה לאחר ששהתה במצב לא פעיל הוסתרה, ולא נעצרה. שורות לא פעילות מוסתרות 30 שניות לאחר שהלוח כולו עובר למצב לא פעיל, ומופיעות מחדש בתור הבא של חבר הצוות. כאשר יותר משלושה חברי צוות אינם פעילים, השורות העודפות שלהם קורסות לשורה אחת של
N idle agentsש-Enter מרחיב אותה. שלח לחבר הצוות הודעה לפי שמו כדי להחזיר שורה מוסתרת. - בדוק שהמשימה שנתת ל-Claude הייתה מורכבת מספיק כדי להצדיק צוות. Claude מחליט אם להקים חברי צוות על סמך המשימה.
- אם ביקשת במפורש חלוניות מפוצלות, ודא ש-tmux מותקן וזמין ב-PATH שלך:
which tmux- עבור iTerm2, ודא שה-CLI של
it2מותקן וש-Python API מופעל בהעדפות iTerm2.
#Claude מקים חברי צוות במקום תת סוכנים
בעוד שצוותי סוכנים מופעלים, תת סוכן ש-Claude נותן לו שם בהפעלת המוביל מופעל כחבר צוות. Claude יכול לתת שמות לתת סוכנים בעצמו, כך שזה יכול לקרות במהלך האצלת סמכויות שמעולם לא הגדרת כעבודת צוות.
כדי לגרום לתת סוכנים בעלי שמות לפעול שוב כתת סוכנים, כבה את צוותי הסוכנים על ידי הגדרת CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS ל-0:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "0"
}
}אינך צריך להתחיל הפעלה חדשה: Claude Code מחיל מחדש ערכי env מקובץ ההגדרות על ההפעלה הרצה בעת השמירה, וקורא מחדש את המשתנה בכל פעם ש-Claude מקים תת סוכן, כך שתת הסוכן הבא ש-Claude ייתן לו שם יופעל כתת סוכן.
הגדרת המשתנה ל-0 בקובץ settings.json של המשתמש שלך עוקפת ייצוא ב-shell. מקורות הגדרות אחרים עדיין יכולים להפעיל צוותי סוכנים:
- קבצי הגדרות בעלי עדיפות גבוהה יותר: הגדרות פרויקט, הגדרות מקומיות ומטען נתונים של
--settingsחלים לאחר הגדרות המשתמש, כך שרשומתenvהמגדירה את המשתנה ל-1בכל אחד מהם מנצחת. ראה קדימות הגדרות. - הגדרות מנוהלות: הגדרות מנוהלות חלות לאחר כל מקור אחר. אם הארגון שלך מפעיל צוותי סוכנים שם, בקש ממנהל המערכת שלך לשנות את הערך המנוהל.
לאחר השינוי, Claude עדיין עשוי לתת שמות לתת סוכנים, והשם ממשיך לפעול ככתובת עבור SendMessage. Claude מקבל את התוצאה של כל תת סוכן כשהיא מושלמת.
#יותר מדי בקשות הרשאה
בקשות הרשאה של חברי צוות צפות ועולות אל המוביל, מה שעלול ליצור חיכוך. אשר מראש פעולות נפוצות בהגדרות ההרשאה שלך לפני הקמת חברי צוות כדי לצמצם הפרעות.
#סוכנים שעוצרים מוקדם
חברי צוות עשויים לעצור לאחר שנתקלו בשגיאות במקום להתאושש. בדוק את הפלט שלהם על ידי בחירת חבר הצוות בלוח הסוכנים ולחיצה על Enter במצב בתוך התהליך, או על ידי לחיצה על החלונית במצב מפוצל, ולאחר מכן בצע אחת מהפעולות הבאות:
- תן להם הנחיות נוספות ישירות.
- הקם חבר צוות חלופי שימשיך בעבודה.
הודעה מהמוביל או מחבר צוות אחר מעירה חבר צוות בתוך התהליך שממתין לנסות שוב בקשת API שנכשלה, כך שהוא מנסה שוב מיד במקום להמתין למלוא עיכוב הניסיון החוזר.
המוביל יכול לעצור מוקדם גם כן, ולהחליט שהצוות סיים לפני שכל המשימות הושלמו בפועל. אם זה קורה, אמור לו להמשיך.
#הפעלות tmux יתומות
אם הפעלת tmux נשארת פעילה לאחר סיום הפעלת Claude Code, ייתכן שהיא לא נוקתה לחלוטין. הצג את רשימת ההפעלות וסיים את זו שנוצרה על ידי הצוות:
tmux ls
tmux kill-session -t <session-name>#מגבלות
צוותי סוכנים הם תכונה ניסיונית. מגבלות נוכחיות שיש להיות מודעים אליהן:
- אין חידוש הפעלה עם חברי צוות בתוך התהליך: הפקודות
/resumeו-/rewindאינן משחזרות חברי צוות בתוך התהליך. לאחר חידוש הפעלה, המוביל עשוי לנסות לשלוח הודעות לחברי צוות שאינם קיימים עוד. אם זה קורה, אמור למוביל להקים חברי צוות חדשים. - מצב משימה עלול לפגר: חברי צוות נכשלים לעתים בסימון משימות כהושלמו, מה שחוסם משימות תלויות. אם משימה נראית תקועה, בדוק אם העבודה אכן בוצעה ועדכן את מצב המשימה ידנית או אמור למוביל לזרז את חבר הצוות.
- כיבוי יכול להיות איטי: חברי צוות מסיימים את הבקשה או קריאת הכלי הנוכחית שלהם לפני הכיבוי, דבר שיכול לקחת זמן.
- צוות אחד לכל הפעלה: להפעלה יש בדיוק צוות אחד, התחום לאותה הפעלה. אינך יכול ליצור צוותים נוספים בעלי שמות או לשתף צוות בין הפעלות.
- אין צוותים מקוננים: חברי צוות אינם יכולים להקים חברי צוות משלהם. רק המוביל יכול לנהל את הצוות.
- אין תת סוכנים ברקע מחברי צוות בתוך התהליך: תת הסוכנים של חבר צוות בתוך התהליך רצים בקדמה (foreground), מכיוון שעבודת רקע של חבר צוות אינה יכולה להאריך ימים מעבר לתהליך של המוביל. Claude Code מחזיר שגיאה כאשר חבר צוות מקים תת סוכן שההגדרה שלו קובעת
background: true. בקשה של חבר צוות עםrun_in_background: trueנכשלת גם כן, או עם שגיאה או באמצעות ריצה שקטה בקדמה, כפי שמתואר בסעיף כיצד Claude Code בוחר קדמה או רקע. תת סוכנים המופעלים מהשיחה הראשית פועלים לפי ברירת המחדל של הרקע. - המוביל קבוע: ההפעלה הראשית היא המוביל לאורך כל חייה. אינך יכול לקדם חבר צוות למוביל או להעביר את ההובלה.
- הרשאות נקבעות בעת ההקמה: חברי צוות מתחילים עם מצב ההרשאות המתואר בסעיף הרשאות. תוכל לשנות את מצב ההרשאות של חבר צוות בודד לאחר ההקמה, אך אינך יכול להגדיר מצבי הרשאות לכל חבר צוות בנפרד בעת ההקמה.
- חלוניות מפוצלות דורשות tmux או iTerm2: מצב ברירת המחדל בתוך התהליך עובד בכל מסוף. מצב חלוניות מפוצלות אינו נתמך במסוף המשולב של VS Code, ב-Windows Terminal או ב-Ghostty.
#הצעדים הבאים
חקור גישות קשורות לעבודה מקבילית והאצלת סמכויות:
- האצלת סמכויות קלת משקל: תת סוכנים מקימים סוכני עזר למחקר או לאימות בתוך ההפעלה שלך, ומתאימים יותר למשימות שאינן דורשות תיאום בין סוכנים.
- העברת הודעות בין הפעלות משלך: העברת הודעות בין הפעלות מאפשרת ל-Claude להעביר ממצאים בין הפעלות שאתה מריץ בעצמך.
- הפעלות מקביליות ידניות: Git worktrees מאפשרים לך להריץ מספר הפעלות של Claude Code בעצמך ללא תיאום צוותי אוטומטי.