Site Assistant
Hi! How can I help you today?
מדריך Claude Code

16. סוכנים ועבודה במקביל

חלק ד׳: מתקדםפרק 16 מתוך 23זמן קריאה: כ-10 דקות

קלוד יכול לעבוד על יותר ממשימה אחת בבת אחת: לשלוח סוכן משנה לחקור קובץ ענק בלי להציף את השיחה, להריץ כמה שיחות טרמינל על אותו 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אילו כלים מותרים או אסורים לסוכן
modelsonnet, opus, haiku, fable, או inherit (המודל של השיחה הראשית)
permissionModeמצב הרשאות עצמאי לסוכן, למשל plan או acceptEdits
isolation: worktreeמריץ את הסוכן ב-worktree זמני משלו, כדי שעריכות מקבילות לא יתנגשו
skillsSkills שנטענים לסוכן מראש עם תחילת העבודה
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 נקי, קלוד מסיר אותו אוטומטית; אם יש בו שינויים, הוא שואל אם לשמור או למחוק.

קבצים שלא נכנסים ל-Git

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) מתאים כשצריך כמה עובדים שמדברים ביניהם.
  • תקשורת בין סשנים מעבירה ממצאים בין שיחות שאתם מריצים בעצמכם — לעולם לא נחשבת אישור מכם.