16. סוכנים ועבודה במקביל
קלוד יכול לעבוד על יותר ממשימה אחת בבת אחת: לשלוח סוכן משנה לחקור קובץ ענק בלי להציף את השיחה, להריץ כמה שיחות טרמינל על אותו repo בלי שיתנגשו, לפזר משימות רקע וממסך אחד לבדוק מה מצבן, ואפילו להקים צוות שלם של קלודים שמדברים אחד עם השני. בפרק הזה נעבור על חמש הדרכים האלה, מתי כדאי כל אחת, ואיך מתחילים.
חמש דרכים לעבוד במקביל
לכל הדרכים משותף שה"עובדים" הם תמיד שיחות קלוד. ההבדל הוא מי מתאם את העבודה, האם העובדים צריכים לדבר ביניהם, והאם הם עלולים לגעת באותם קבצים.
| דרך | מה מקבלים | מתי להשתמש |
|---|---|---|
| סוכני משנה (Subagents) | עובדים בתוך אותה שיחה, שעושים משימת-צד בהקשר (context) נפרד ומחזירים סיכום | משימת-צד שהייתה מציפה את השיחה הראשית בתוצאות חיפוש, לוגים או קבצים שלא תזדקקו להם שוב |
| Worktrees | עותק Git נפרד לכל שיחה, כדי שעריכות לא יתנגשו | כמה שיחות טרמינל על אותו repo, שכל אחת עובדת על ענף משלה |
| Agent View | מסך אחד לשיגור ומעקב אחרי שיחות שרצות ברקע, נפתח עם claude agents | כמה משימות בלתי-תלויות שרוצים להעביר הלאה ולבדוק סטטוס מזמן לזמן |
| Agent Teams (נסיוני) | כמה שיחות מתואמות עם רשימת משימות משותפת והודעות בין-סוכניות, בניהול "מנהיג" | רוצים שקלוד יפצל פרויקט לחלקים, יחלק אותם ויתאם בין העובדים |
| תקשורת בין סשנים (Cross-session messaging) | קלוד מעביר ממצא או סטטוס משיחה אחת לשיחה אחרת שהפעלתם בעצמכם | שיחה אחת גילתה משהו שרלוונטי לשיחה אחרת שרצה במקביל |
כדי להפעיל כלי אחר בתוך אחת מהדרכים האלה, חושפים אותו לקלוד כ-פרק 12: חיבור לכלים חיצוניים (MCP).
פקודת טרמינל ברקע רק מריצה פקודה בלי לחסום את השיחה, ולא פותחת סוכן. Fork (/subtask או /fork) הוא דרך להריץ סוכן משנה עם כל ההקשר של השיחה, ולא משטח נפרד. Routine מריץ שיחה לפי לוח זמנים בענן, ולא במקביל על המחשב שלכם — עליו בפרק פרק 17: אוטומציה ועבודה מרחוק.
הרצת כמה שיחות או סוכנים בבת אחת מכפילה את צריכת הטוקנים. עשר שיחות ברקע צורכות מכסה פי עשרה מהר יותר משיחה אחת (ראו פרק 8: מודלים, רמות מאמץ, עלויות ומגבלות שימוש).
סוכני משנה: עוזרים בתוך אותה שיחה
סוכן משנה (subagent) הוא עוזר שרץ בחלון הקשר נפרד משלו, עם system prompt, גישה לכלים והרשאות עצמאיות. קלוד שולח אליו משימת-צד, הוא עובד לבד, ומחזיר רק את הסיכום — כל ה"רעש" (תוצאות חיפוש, פלט בדיקות, תוכן קבצים) נשאר בהקשר שלו ולא מציף את השיחה הראשית.
Use a subagent to run the test suite and report only the failing tests with their error messages
אפשר גם להריץ כמה סוכני משנה במקביל למחקר עצמאי:
Research the authentication, database, and API modules in parallel using separate subagents
סוכני המשנה המובנים
| סוכן | מודל | מתי קלוד משתמש בו |
|---|---|---|
| Explore | יורש מהשיחה הראשית (מוגבל ל-Opus לכל היותר) | חיפוש וניתוח קוד, קריאה בלבד |
| Plan | יורש מהשיחה הראשית | מחקר קוד במצב Plan, לפני הצגת תוכנית |
| general-purpose | לפי סדר קביעת מודל לסוכני משנה | משימות מורכבות שדורשות גם חקירה וגם ביצוע |
| claude | לפי אותו סדר | כל דבר שלא מתאים לסוכן ייעודי יותר; גם ברירת המחדל לשיחת רקע מ-Agent View |
Explore ו-Plan הם קריאה-בלבד (אין להם Write ו-Edit). כדי לבקש סוכן מסוים במפורש, מזכירים אותו בשם או עם @:
Use the code-reviewer subagent to look at my recent changes
@"code-reviewer (agent)" look at the auth changes
יצירת סוכן מותאם אישית
סוכן משנה הוא קובץ Markdown עם YAML frontmatter. הדרך הקלה היא לבקש מקלוד לכתוב אותו:
Create a personal code-improver subagent in ~/.claude/agents/ that scans
files and suggests improvements for readability, performance, and best
practices. Make it read-only and have it use Sonnet.
---
name: code-reviewer
description: Reviews code for quality and best practices. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---
You are a senior code reviewer ensuring high standards of code quality and security.
When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately
Provide feedback organized by priority: critical issues, warnings, suggestions.
| מיקום | היקף |
|---|---|
.claude/agents/ | הפרויקט הנוכחי, משותף לצוות דרך Git |
~/.claude/agents/ | כל הפרויקטים שלכם |
תיקיית agents/ של Plugin | איפה שה-Plugin מופעל |
Claude Code סורק קבצים חדשים תוך כמה שניות בלי צורך להפעיל מחדש, חוץ ממקרה שבו התיקייה agents/ לא הייתה קיימת כשהשיחה התחילה. שדות frontmatter מרכזיים:
| שדה | משמעות |
|---|---|
name, description | חובה. השם מזהה את הסוכן, והתיאור הוא מה שקלוד קורא כדי להחליט מתי להעביר אליו משימה |
tools, disallowedTools | אילו כלים מותרים או אסורים לסוכן |
model | sonnet, opus, haiku, fable, או inherit (המודל של השיחה הראשית) |
permissionMode | מצב הרשאות עצמאי לסוכן, למשל plan או acceptEdits |
isolation: worktree | מריץ את הסוכן ב-worktree זמני משלו, כדי שעריכות מקבילות לא יתנגשו |
skills | Skills שנטענים לסוכן מראש עם תחילת העבודה |
background | שומר את הסוכן ברקע גם כשקלוד מבקש להריץ אותו בחזית |
תיאורי הסוכנים תופסים הקשר בתחילת כל שיחה, אז כדאי לכתוב אותם קצרים וממוקדים — פרטים שייכים לגוף הקובץ, שנטען רק כשהסוכן באמת רץ.
תבנית מעשית: Writer ו-Reviewer
תבנית נפוצה היא לתת לסוכן אחד לכתוב ולסוכן שני, נפרד וקריאה-בלבד, לבקר את התוצאה — כך הביקורת לא "מושפעת" מהניסוח של מי שכתב:
Use a subagent to implement the rate-limiter in src/middleware/, then use
the code-reviewer subagent to review the diff before we commit
סוכן ביקורת טוב מוגדר קריאה-בלבד (tools: Read, Grep, Glob, Bash בלי Edit), כך שאין לו דרך "לתקן" את מה שהוא בודק — רק לדווח.
Worktrees: בידוד עם עותקי Git נפרדים
Worktree הוא תיקיית עבודה נפרדת עם הענף שלה, שחולקת את היסטוריית ה-Git עם ה-checkout הראשי. שיחה שרצה ב-worktree משלה לעולם לא נוגעת בקבצים של שיחה אחרת, כך ששיחה אחת יכולה לפתח פיצ'ר בזמן שאחרת מתקנת באג.
claude --worktree feature-auth
ברירת המחדל: worktree נוצר תחת .claude/worktrees/<name>/ בשורש הריפו, על ענף חדש בשם worktree-<name>. אפשר גם לבקש מקלוד "לעבוד ב-worktree" תוך כדי שיחה, והוא ייצור אחד לבד. ביציאה משיחה עם worktree נקי, קלוד מסיר אותו אוטומטית; אם יש בו שינויים, הוא שואל אם לשמור או למחוק.
worktree הוא checkout טרי, אז קבצים לא-עוקבים כמו .env לא קיימים בו. צרו קובץ .worktreeinclude בשורש הפרויקט, בתחביר של .gitignore, כדי שקבצים כאלה יועתקו אוטומטית לכל worktree חדש. וכדאי להוסיף .claude/worktrees/ ל-.gitignore עצמו.
אותה טכניקה עובדת גם לסוכני משנה: הוסיפו isolation: worktree ל-frontmatter של סוכן, או בקשו "use worktrees for your agents", וכל סוכן מקבל worktree זמני משלו שמתפנה אוטומטית אם לא נעשה בו שינוי.
Agent View: מסך אחד לכל השיחות ברקע
הפקודה claude agents (או /bg מתוך שיחה קיימת) פותחת Agent View: טבלה של כל השיחות שרצות ברקע, מה כל אחת עושה, ואילו מהן מחכות לתשובה שלכם. שיחת רקע היא שיחת Claude Code מלאה שממשיכה לרוץ בלי טרמינל מחובר — אפשר לפתוח אותה, להגיב, ולעזוב מתי שרוצים.
claude agents
claude --bg "investigate the flaky SettingsChangeDetector test"
| מצב | מה זה אומר |
|---|---|
| Working | קלוד עובד עכשיו |
| Needs input | מחכה לתשובה, אישור הרשאה, או פרומפט שרק אתם יכולים לענות עליו |
| Completed / Failed | המשימה הסתיימה בהצלחה או בשגיאה |
בתוך Agent View: ↑/↓ לניווט, Space לצפייה מהירה (peek) בלי להיכנס לשיחה המלאה, Enter או → להיכנס אליה לגמרי, ו-Esc לחזור לטרמינל. לפני שסוכן עורך קבצים הוא עובר לבד ל-worktree משלו תחת .claude/worktrees/, כך ששיחות מקבילות לא מתנגשות.
מתוך שיחה רגילה, /bg שולח אותה לרקע ומשחרר את הטרמינל, ו-/fork משכפל אותה לשיחת רקע נפרדת בזמן שהמקורית ממשיכה לרוץ.
לשיחות רקע: claude agents. לסוכני משנה בשיחה הנוכחית: הם מופיעים ברשימת ה-@-mention עם הסטטוס שלהם. לכל מה שרץ ברקע בשיחה הנוכחית (כולל פקודות טרמינל וסוכני משנה): /tasks. ל-workflows: /workflows.
Agent Teams: צוות של קלודים (נסיוני)
Agent Teams הוא ניסיוני. כדי להפעיל, מוסיפים CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 ב-settings.json או בסביבה. לפני שמקימים צוות, בדקו אם סוכן משנה פשוט מספיק — Agent Teams דורש הרבה יותר טוקנים.
ב-Agent Team שיחה אחת היא "מנהיג" (lead) שמתאם, מחלק משימות ומסכם תוצאות. חברי הצוות (teammates) עובדים כל אחד בהקשר עצמאי משלו, מדברים ישירות זה עם זה, ומשתפים רשימת משימות משותפת.
| סוכני משנה | Agent Teams | |
|---|---|---|
| תקשורת | מחזירים תוצאה לקורא | חברי הצוות שולחים הודעות זה לזה ישירות |
| תיאום | השיחה הראשית מנהלת הכול | תיאום עצמי דרך הודעות ורשימת משימות משותפת |
| מתאים ל… | משימות ממוקדות שרק התוצאה שלהן חשובה | עבודה מורכבת שדורשת דיון ושיתוף פעולה |
| עלות בטוקנים | נמוכה יחסית | גבוהה — כל חבר צוות הוא מופע Claude נפרד |
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.
מומלץ להתחיל עם 3-5 חברי צוות, ולתת לכל אחד קונטקסט מלא במשימת הפתיחה — חברי צוות לא יורשים את היסטוריית השיחה של המנהיג, רק את CLAUDE.md, MCP ו-Skills של הפרויקט.
תקשורת בין סשנים
כשיש לכם כמה שיחות פתוחות בעצמכם (בטרמינלים נפרדים, ב-worktrees נפרדים, או אפילו על מחשבים שונים), קלוד יכול להעביר ביניהן ממצא או סטטוס בלי שתעתיקו-הדביקו ידנית:
Let @api-worker know the schema migration finished
Tell me when the migration session finishes what it's working on
קלוד מגלה אילו שיחות זמינות עם ListAgents ושולח עם SendMessage — אתם לא קוראים לכלים האלה בעצמכם. הפקודה /list-agents מציגה אילו שיחות קלוד יכול להשיג: סוכני משנה בשיחה הנוכחית, חברי צוות, שיחות מקומיות אחרות במחשב, ושיחות ב-Remote Control או בענן. הודעה בין שיחות היא תמיד טקסט בלבד — לא קובצי השיחה ולא ההיסטוריה — ולעולם לא נחשבת אישור שלכם לפעולה: שיחה שקיבלה הודעה עדיין כפופה להרשאות שלה.
סדר בחירת המודל לסוכן משנה
כשלא מוגדר model מפורש בקריאה, Claude Code בוחר בסדר הזה: (1) פרמטר model שקלוד עצמו העביר בקריאה הספציפית, (2) שדה model ב-frontmatter של הסוכן, (3) משתנה הסביבה CLAUDE_CODE_SUBAGENT_MODEL, (4) מודל השיחה הראשית. כדי לכפות מודל אחד על כל הסוכנים בלי יוצא מן הכלל, מוסיפים גם CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1.
סוכנים דרך שורת הפקודה
claude --agents '{
"debugger": {
"description": "Debugging specialist for errors and test failures.",
"prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes.",
"tools": ["Read", "Edit", "Bash", "Grep", "Glob"]
}
}'
סוכן שמוגדר כך קיים רק לשיחה הנוכחית ולא נשמר לדיסק — שימושי לבדיקות מהירות. אפשר גם להריץ שיחה שלמה כסוכן מסוים: claude --agent code-reviewer מחליף את ה-system prompt הרגיל בזה של הסוכן.
רקע מול חזית לסוכני משנה
סוכן בחזית (foreground) חוסם את השיחה עד שהוא מסיים, ובקשות הרשאה מגיעות ישירות אליכם. סוכן ברקע ממשיך לרוץ בזמן שאתם עובדים על משהו אחר, ובקשת הרשאה שלו מוצגת בשיחה הראשית בציון שם הסוכן שמבקש. Ctrl+B מעביר משימה רצה לרקע.
ניהול מהטרמינל
/tasks מציג כל מה שרץ ברקע בשיחה הנוכחית, כולל סוכני משנה שכבר סיימו. claude agents --json מחזיר את מצב השיחות לצורך סקריפט או תוכנית חיצונית, במקום לקרוא ישירות מהקבצים תחת ~/.claude/jobs/.
הגבלת סוכני משנה
כדי לחסום סוכן מובנה מסוים, מוסיפים אותו ל-permissions.deny. כדי למנוע מקלוד להאציל לכל סוכן משנה, חוסמים את הכלי Agent עצמו באותה דרך (ראו פרק 7: הרשאות ובטיחות).
- סוכני משנה עובדים בתוך שיחה אחת ומחזירים סיכום. הם הדרך הקלה ביותר לשמור על הקשר נקי.
- Worktrees נותנים לכל שיחה עותק Git נפרד, כדי שעריכות מקבילות לא יתנגשו.
claude --worktree <name>. - Agent View (
claude agents) הוא מסך אחד לשיגור ומעקב אחרי שיחות רקע. - Agent Teams (ניסיוני,
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) מתאים כשצריך כמה עובדים שמדברים ביניהם. - תקשורת בין סשנים מעבירה ממצאים בין שיחות שאתם מריצים בעצמכם — לעולם לא נחשבת אישור מכם.
התוכן באתר נועד למידע כללי בלבד ואינו מהווה ייעוץ מקצועי, הצעה או התחייבות. נעשה מאמץ לדייק, אך ייתכנו שינויים, טעויות או חוסר עדכניות, והשימוש במידע הוא באחריות המשתמש. ככל שהדין מתיר, האתר ובעליו אינם אחראים לנזק שייגרם מהסתמכות על המידע. קישורים לאתרים חיצוניים הם באחריות אותם אתרים, וככל שקיימים קישורי שותפים, ייתכן שהאתר יקבל עמלה ללא תוספת עלות עבורכם. התוכן מוגן בזכויות יוצרים (חוק זכות יוצרים, התשס״ח-2007) ואין להעתיקו ללא רשות. שמות מותגים וסימני מסחר שייכים לבעליהם. ראו גם תקנון האתר ומדיניות הפרטיות.