- הבנה מעשית של Agent Teams — הפיצ'ר הניסיוני שמאפשר לכמה מופעי Claude לעבוד כצוות מתואם
- מסמך תכנון צוות (team-plan.md) מתועד — Lead role, Teammates roles, חלוקת אחריות, פלט צפוי, timeout, budget ceiling
- תוכנית Competing Hypotheses Debugging מלאה לבאג אמיתי בפרויקט שלכם — 3 השערות מתועדות עם ממצאים
- מטריצת החלטה אישית: מתי להשתמש בצוות, מתי בסוכן יחיד, מתי ב-pipeline — עם דוגמאות מהפרויקט שלכם
- תבנית CI/CD Review Team — הגדרת 3 reviewers עם Lead synthesizer, כולל prompt templates ו-ROI calculation
- פורטפוליו של 3 מבני צוות שונים — Flat, Specialist, Adversarial — עם תיעוד תוצאות והשוואה
- מסמך שגרת עבודה מעודכן — כולל tasks חדשים לניהול צוותי סוכנים ומעקב אחרי עלויות
- תוכלו להבדיל בין subagents (האצלת סמכות חד-כיוונית) לבין Agent Teams (שיתוף פעולה רב-כיווני) ולבחור את הגישה הנכונה לכל משימה
- תוכלו לתכנן מבנה צוות אפקטיבי — Lead role, חלוקת Teammates, גבולות קבצים, פורמט תקשורת, ו-fallback plan
- תוכלו להפעיל Agent Teams ב-Claude Code ולנתב את הצוות דרך prompt מובנה עם manifest
- תוכלו ליישם את שיטת Competing Hypotheses לדיבוג מהיר של באגים שלא ברור מאיפה מגיעים
- תוכלו להעריך את ה-ROI של צוות סוכנים — עלות טוקנים מול חיסכון בשעות מפתח מול איכות תוצאה
- פרקים קודמים: פרק 3 (Agent SDK — Python) ופרק 4 (Agent SDK — TypeScript) — הבנת Agent Loop, Subagents, Tools, Results, ו-Error Handling
- כלים נדרשים: Claude Code v2.1.32+ מותקן (Agent Teams לא נתמך בגרסאות ישנות יותר), מפתח ANTHROPIC_API_KEY פעיל, פרויקט קוד עם לפחות 3 קבצים (לתרגולי צוות), Git repository מאותחל
- ידע נדרש: הכרת ההבדל בין subagent ל-agent, עבודה בסיסית עם Claude Code בטרמינל, הבנת environment variables, היכרות עם מבנה פרויקט (Frontend/Backend/DB)
- זמן משוער: 3-4 שעות | עלות משוערת: ~$10-20 (ריצות צוות צורכות טוקנים רבים — כפול עד פי 4 מסוכן יחיד)
בפרק 4 בניתם סוכנים בודדים ב-TypeScript — API endpoints שמקבלים HTTP requests ומחזירים תשובות חכמות, webhook processors שמגיבים לאירועים, ו-streaming services שמציגים תשובות בזמן אמת. כל אחד מהסוכנים האלה פועל לבד. עכשיו אנחנו לוקחים את הסוכנים הבודדים האלה ומרכיבים מהם צוותים שמשתפים פעולה — Lead שמנהל ומסנתז, Teammates שעובדים במקביל על תת-משימות, ותוצאה אחת קוהרנטית שמשלבת כמה נקודות מבט. בפרק 6 נעבור מצוותים (עבודה מקבילית) לצינורות עבודה (Production Pipelines) — שרשראות עיבוד סדרתיות שכל שלב מזין את הבא, עם error handling, checkpointing, ו-monitoring מובנים.
| מונח (English) | תרגום | הסבר |
|---|---|---|
| Agent Teams | צוותי סוכנים | פיצ'ר ניסיוני (research preview) ב-Claude Code שמאפשר לכמה מופעי Claude לעבוד כצוות עם תקשורת ישירה ביניהם — בניגוד ל-subagents שמדווחים רק ל-parent |
| Lead Agent | סוכן מוביל | הסוכן המרכזי בצוות שאיתו אתם מדברים. מקבל את המשימה הגדולה, מפרק אותה, מחלק ל-Teammates, ומסנתז את התוצאות חזרה לתשובה אחת |
| Teammate | חבר צוות | סוכן שעובד על תת-משימה ספציפית בתוך הצוות. פועל בחלון הקשר (context window) נפרד משלו עם גישה מלאה ל-tools ול-filesystem |
| Competing Hypotheses | השערות מתחרות | שיטת דיבוג שבה כמה סוכנים חוקרים את אותו באג מזוויות שונות במקביל — Frontend, Backend, Database — ומי שמוצא את הבעיה ראשון "מנצח" |
| Cross-Layer Coordination | תיאום חוצה-שכבות | שימוש בצוות כדי לעבוד בו-זמנית על כמה שכבות של אפליקציה: Frontend, Backend, Database, Infrastructure — במקום לטפל בהן סדרתית |
| Task Decomposition | פירוק משימות | התהליך שבו ה-Lead (או אתם) מפרק משימה גדולה לתת-משימות עצמאיות שניתנות לעבודה במקביל בלי תלויות |
| Synthesis | סינתזה / מיזוג | השלב האחרון שבו ה-Lead לוקח את התוצאות מכל ה-Teammates ומרכיב תשובה אחת קוהרנטית — לא רק הצמדה, אלא מיזוג חכם |
| Manifest (team-plan.md) | מנשר / תוכנית צוות | מסמך שה-Lead יוצר ומתעד מי עושה מה, באילו קבצים כל Teammate עובד, ומה הפלט הצפוי — מונע קונפליקטים ומגדיר גבולות |
| Flat Team | צוות שטוח | מבנה צוות שבו כל ה-Teammates הם peers (שווי מעמד) וה-Lead רק מתאם ומסנתז — מתאים למחקר וסקירות מקביליות |
| Adversarial Team | צוות יריבותי | מבנה צוות שבו Teammate אחד מיישם ואחר מבקר ומנסה "לשבור" — כמו code review מובנה בתוך תהליך העבודה |
| Coordination Overhead | תקורת תיאום | העלות הנוספת בזמן, טוקנים, ומורכבות שנובעת מתקשורת בין סוכנים — גדלה באופן לא-ליניארי עם כל Teammate נוסף |
מסוכן בודד לצוות סוכנים
עד עכשיו כל מה שעשינו בקורס הזה היה עם סוכן בודד. בפרק 1 הרצנו Claude Code ב-headless mode — סוכן אחד שמבצע משימה אחת ומחזיר תוצאה. בפרק 2 שלחנו אותו לעבוד ב-GitHub Actions — עדיין סוכן אחד, רק באוטומציה. בפרקים 3 ו-4 בנינו סוכנים מתוכנתים עם ה-SDK ב-Python וב-TypeScript — כל סוכן לבד בעולם שלו, מטפל במשימה ממוקדת.
זה עובד מעולה למשימות ממוקדות. אבל מה קורה כשהמשימה גדולה מדי לסוכן אחד?
תחשבו על סטארטאפ ישראלי שצריך להוסיף תמיכה באמצעי תשלום חדש — למשל Apple Pay. צריך לשנות את ה-Frontend (כפתור תשלום חדש, טופס, validation), את ה-Backend (endpoint חדש, business logic, אינטגרציה עם Apple), את ה-Database (מיגרציה, סכמה חדשה, שדות נוספים), ואת ה-Infrastructure (environment variables, secrets, deployment config). סוכן בודד יכול לעשות את כל זה — אבל סדרתית. קודם ה-Frontend, אחר כך ה-Backend, אחר כך ה-Database, אחר כך ה-Infrastructure. זה לוקח שעה-שעתיים כשסוכן אחד עושה הכל ברצף. מה אם ארבעה סוכנים יעבדו על ארבע השכבות במקביל?
Agent Teams (צוותי סוכנים) — זה הפיצ'ר הניסיוני (research preview) של Claude Code שבדיוק מאפשר את זה. כמה מופעי Claude עובדים כצוות: אחד מוביל (Lead), האחרים עובדים במקביל (Teammates), וה-Lead מסנתז הכל לתשובה אחת קוהרנטית. זה לא רק "הרצת כמה סוכנים ברקע" — זה מערכת מתואמת שבה הסוכנים יכולים לדבר ביניהם.
סטטוס: Research Preview — מושבת כברירת מחדל, דורש הפעלה מפורשת עם environment variable. הפעלה: export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 (אפשר גם דרך settings.json: {"env": {"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"}}). הפיצ'ר הושק בפברואר 2026 (יחד עם מודל Opus 4.6) ומאז מתפתח באופן פעיל — דורש Claude Code v2.1.32 ומעלה. ה-API עלול להשתנות בין גרסאות, אבל הדפוסים והעקרונות כבר יציבים — ושווים ללמוד גם אם הממשק ישתנה. Agent Teams רשום ב-changelog כתכונה נתמכת, ו-Anthropic ממשיכים לשפר אותו.
ההבדל הקריטי מ-Subagents שלמדנו בפרקים קודמים: ב-Subagents, כל child agent מדווח רק ל-parent שלו — הוא לא יכול לדבר עם children אחרים. זו תקשורת חד-כיוונית: Parent שולח משימה, Child מחזיר תוצאה, Parent ממשיך. ב-Agent Teams, ה-Teammates יכולים לתקשר ישירות ביניהם, לשתף ממצאים, ולתאם עבודה בצורה עצמאית. זה ההבדל בין מנהל שמאציל לעובדים (subagents) לבין חדר פיתוח שבו מפתחים משתפים פעולה (teams).
בואו נראה את שלוש הגישות שלמדנו בקורס — בטבלה אחת:
| גישה | אנלוגיה | תקשורת | מתי להשתמש | איפה למדנו |
|---|---|---|---|---|
| Subagents | מנהל שמאציל משימות לעובדים | חד-כיוונית: Parent → Child → Parent | משימות ממוקדות שלא דורשות תיאום בין ה-children | פרקים 3-4 |
| Agent Teams | חדר פיתוח עם מפתחים שמדברים ביניהם | רב-כיוונית: Lead ↔ Teammates ↔ Teammates | משימות מורכבות שדורשות תיאום וסינתזה | פרק 5 (כאן!) |
| Pipelines | פס ייצור — תחנה אחרי תחנה | סדרתית: Stage A → Stage B → Stage C | תהליכים שבהם כל שלב תלוי בקודם | פרק 6 |
| אם... | אז השתמשו ב... | הסיבה |
|---|---|---|
| המשימות עצמאיות לחלוטין ולא צריכות תיאום ביניהן | Subagents | פחות תקורת תיאום, פשוט יותר לנהל, זול יותר |
| ה-Teammates צריכים לשתף ממצאים ולבנות על עבודת אחרים | Agent Teams | תקשורת ישירה בין Teammates חוסכת מעבר דרך ה-Parent |
| צריכים סינתזה חכמה של כמה נקודות מבט לתוצאה אחת | Agent Teams | ה-Lead מסנתז ולא רק מצרף — התוצאה קוהרנטית יותר |
| יש משימה פשוטה שצריכה חיזוק של סוכן נוסף אחד | Subagent יחיד | אל תבנו צוות למשימה שסוכן אחד מסיים ב-5 דקות |
| כל שלב תלוי בתוצאה של הקודם — A צריך לסיים לפני B | Pipeline (פרק 6) | צוות לא מתאים — צריך עיבוד סדרתי עם checkpoints |
הפעילו Agent Teams בטרמינל שלכם. הריצו: export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1. כדי לוודא שנקלט, הריצו echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS — צריך לראות 1. אם אתם רוצים שזה יישאר בין sessions, הוסיפו את השורה ל-~/.bashrc או ~/.zshrc שלכם. לחלופין, הוסיפו ל-~/.claude/settings.json: {"env": {"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"}} — זה אלגנטי יותר ועובד בכל הטרמינלים.
חשבו על הפרויקט הנוכחי שלכם. רשמו על דף: (1) האם יש בו לפחות 2 שכבות (Frontend + Backend? Backend + DB?)? (2) מהי משימה שעשיתם לאחרונה שדרשה לגעת בכמה קבצים? (3) האם הייתם יכולים לפצל את המשימה הזו ל-2-3 חלקים עצמאיים? רשמו — נשתמש בזה בהמשך.
הדפוס Lead + Teammates
הארכיטקטורה של Agent Teams מבוססת על דפוס פשוט וחזק: Lead + Teammates. ה-Lead הוא הסוכן שאתם מדברים איתו — זה אותו Claude Code שפתחתם בטרמינל. הוא מקבל את המשימה הגדולה מכם, מפרק אותה לתת-משימות, ומחלק אותן ל-Teammates. כל Teammate עובד בצורה עצמאית בחלון הקשר שלו (context window נפרד), עם גישה מלאה ל-tools — קריאת קבצים, כתיבה, הרצת פקודות, ואפילו חיפוש באינטרנט. כשכולם מסיימים, ה-Teammates מדווחים ל-Lead, וה-Lead מסנתז את הכל לתשובה אחת שחוזרת אליכם.
זרימת התקשורת נראית כך:
אתם → Lead → Teammates (עובדים במקביל) → Lead (סינתזה) → אתם
בואו נראה איך זה עובד בפועל עם דוגמה קונקרטית. נניח שאתם אומרים ל-Claude Code (עם Teams מופעל): "תעשה ריפקטורינג למערכת ה-authentication שלנו." ה-Lead לא נכנס מיד לקוד — הוא מפרק את המשימה:
- Teammate 1 (Code Reviewer): "סקור את הקוד הנוכחי של ה-authentication בתיקיית src/auth/ — תמצא חולשות, code smells, תלויות ישנות, ודפוסים בעייתיים. צור דוח בקובץ code-review-report.md."
- Teammate 2 (Researcher): "תחקור best practices עדכניים ל-authentication ב-2026 — JWT rotation, OAuth 2.1, passkeys, אימות דו-שלבי. אל תערוך קבצים — רק צור best-practices-report.md."
- Teammate 3 (Architect): "תעצב את הארכיטקטורה החדשה — API contracts, data flow, migration path מהקוד הנוכחי לחדש. התייחס לדוחות של Teammates 1 ו-2 כשהם מוכנים. צור new-architecture.md."
שלושת ה-Teammates מתחילים לעבוד במקביל. Teammate 1 סורק קבצים עם Grep ו-Read, Teammate 2 חוקר עם WebSearch, Teammate 3 מתחיל לתכנן ארכיטקטורה על בסיס מה שכבר יודע. כשהדוחות של 1 ו-2 מוכנים (בתור קבצים על ה-filesystem), Teammate 3 יכול לקרוא אותם ולשלב ממצאים.
כשכולם מסיימים, ה-Lead מקבל שלושה דיווחים ומסנתז: "על בסיס הסקירה של Teammate 1 שמצא שהטוקנים לא מסתובבים וה-password hashing משתמש ב-MD5, המחקר של Teammate 2 שממליץ על JWT rotation עם refresh tokens וpasskeys כ-MFA, ותכנון הארכיטקטורה של Teammate 3 — הנה תוכנית מיגרציה בת 4 שלבים."
הנקודה החשובה: ה-Lead יכול גם להקצות מחדש משימות. אם Teammate 2 מדווח שלא מצא מידע מספיק על passkeys, ה-Lead יכול לשלוח אותו לכיוון אחר ("תתמקד רק ב-JWT ו-OAuth"), או להעביר את המשימה ל-Teammate אחר. זו לא מערכת "fire and forget" — ה-Lead מנהל באופן אקטיבי.
מה הופך Lead טוב ל-Lead טוב? ה-Lead האפקטיבי ביותר הוא זה שמקבל הנחיות ברורות ממכם. ככל שתתנו לו prompt מפורט יותר — עם חלוקת תפקידים, קבצים, ופורמט פלט — הוא יחלק טוב יותר. אל תסמכו על ה-Lead "למצוא" את החלוקה הנכונה לבד.
שמרו על צוותים קטנים: 2-4 Teammates. למה? כי תקורת התיאום (coordination overhead) גדלה באופן לא-ליניארי עם כל Teammate נוסף. צוות של 2 — שני חוקרים, או מיישם מול מבקר. צוות של 3 — שלוש זוויות מקביליות, sweet spot לרוב המשימות. צוות של 4 — מקסימום מעשי. צוות של 5+? נדיר מאוד שמוצדק — כל Teammate נוסף צורך context, טוקנים, ותקורת תיאום, בעוד שהתשואה השולית יורדת. אם צריכים 5+, שקלו לפצל ל-2 צוותים או להשתמש ב-/batch (שמריץ עד 30 workers).
מפתחים רבים מבקשים "תפתור את הבעיה" ומקווים שה-Lead יחלק נכון. הבעיה: ה-Lead לא מכיר את הפרויקט שלכם כמוכם. הוא לא יודע ש-src/auth/ מחזיק 90% מהלוגיקה, או שהמיגרציות שבורות כבר חודש. מה לעשות במקום: תנו ל-Lead את החלוקה שלכם ב-prompt. במקום "תעשה ריפקטורינג" — כתבו "תעשה ריפקטורינג. Teammate 1 יסקור את src/auth/, Teammate 2 יחקור JWT best practices, Teammate 3 יתכנן מיגרציה." ככל שה-prompt מפורט יותר, התוצאה טובה יותר — וגם ה-Lead יחלק עבודה בצורה חכמה יותר.
קחו את המשימה שרשמתם קודם ופרקו אותה ל-prompt מובנה: (1) תיאור המשימה הגדולה, (2) 2-3 Teammates עם תפקיד ברור לכל אחד, (3) אילו קבצים כל Teammate רשאי לגעת, (4) מה ה-Lead צריך לסנתז בסוף. שמרו את ה-prompt — נשתמש בו בתרגיל.
חלוקת משימות ותיאום
הנקודה הקריטית בעבודה עם צוותי סוכנים היא חלוקת המשימות (Task Decomposition). חלוקה טובה = צוות יעיל שמסיים מהר ונותן תוצאה איכותית. חלוקה גרועה = בלגן, קונפליקטים, תוצאות שסותרות, ובזבוז טוקנים. הכלל הבסיסי: כל Teammate צריך תת-משימה עצמאית, מוגדרת היטב, עם קלט ופלט ברורים.
גבולות ברורים הם הכל. אם Teammate A צריך את הפלט של Teammate B כדי להתחיל — זה לא צוות, זה Pipeline (פרק 6). צוות עובד כשהמשימות מקביליות באמת. דוגמה טובה: שלושה Teammates שכל אחד סוקר חלק אחר של הקוד. דוגמה גרועה: Teammate 1 בונה API, Teammate 2 מחכה ל-API של Teammate 1 כדי לבנות Frontend שמתחבר אליו.
שיתוף נתונים בין Teammates — היתרון וגם הסיכון
ה-Teammates עובדים על אותו filesystem. זה יתרון ענק — הם יכולים לקרוא את קבצי הפלט של אחרים, לעיין בקוד הקיים, ולגשת לכל מה שיש ב-repository. אבל זה גם אומר שקונפליקטים אפשריים. אם שני Teammates עורכים את אותו קובץ — אחד ידרוס את השני בלי אזהרה, ולא תראו הודעת שגיאה.
הפתרון: דפוס ה-Manifest. ה-Lead (או אתם, ב-prompt) יוצר קובץ team-plan.md שמתעד בבירור: מי עושה מה, באילו קבצים כל Teammate עובד, ומה הפלט הצפוי. ה-Teammates קוראים את ה-manifest ויודעים לא לגעת בקבצים של אחרים. זה כמו גבולות גזרה בצבא — כל יחידה יודעת בדיוק איפה שלה ואיפה של אחרים.
# Team Plan: Authentication Refactoring
# Created by Lead on 2026-03-24
## Objective
Refactor the authentication system to use JWT rotation
and add passkey support.
## Lead Role
- Synthesize all findings into migration plan
- Resolve conflicts between teammate recommendations
- Final output: migration-plan.md
## Teammate 1: Code Reviewer
- Focus: Review current auth implementation
- Files (READ ONLY): src/auth/**, src/middleware/auth.ts
- Output: code-review-report.md
- DO NOT edit any source files
## Teammate 2: Research
- No file editing -- web search only
- Research: JWT rotation, OAuth 2.1, passkeys
- Output: best-practices-report.md
## Teammate 3: Architecture
- Files (WRITE): docs/architecture/**
- Output: new-architecture.md
- Reference reports from Teammates 1 and 2
## Conflict Prevention
- Only Teammate 3 writes to docs/
- Teammates 1 and 2 write ONLY to project root
- No teammate edits src/ files in this phase
שימו לב לסעיף Conflict Prevention ב-manifest. זה הסעיף הכי חשוב. בלעדיו, ב-50% מהמקרים (הערכה מניסיון) יהיה קונפליקט כלשהו — Teammate שעורך קובץ שלא שלו, או שניים שכותבים לאותו מיקום.
תקשורת מעבר ל-filesystem
מעבר לקבצים, ה-Teammates יכולים גם לתקשר ישירות דרך מנגנון ה-Teams. זה אומר ש-Teammate 3 (הארכיטקט) יכול לשאול את Teammate 1 (ה-Code Reviewer) שאלה ספציפית: "מצאת תלויות במודול X?" בלי לעבור דרך ה-Lead. זה היתרון המרכזי על Subagents — ב-subagents, כל תקשורת חייבת לעבור דרך ה-parent.
לפני שמפעילים צוות, עברו על 4 השאלות האלה. אם אחת מהתשובות "לא" — צוות כנראה לא מתאים:
| # | שאלה | אם כן | אם לא |
|---|---|---|---|
| 1 | האם אפשר לפצל את המשימה ל-2+ חלקים? | ✔ המשיכו לשאלה 2 | ✘ השתמשו בסוכן יחיד |
| 2 | האם התת-משימות עצמאיות (לא תלויות אחת בשנייה)? | ✔ צוות מתאים — המשיכו | ✘ שקלו Pipeline (פרק 6) |
| 3 | לכל תת-משימה יש קלט/פלט ברור? | ✔ הגדירו ב-manifest | ✘ חדדו את החלוקה לפני שמתחילים |
| 4 | האם אפשר למזג את התוצאות בסוף? | ✔ הפעילו צוות! | ✘ שקלו עיבוד סדרתי |
בלי manifest ברור, שני Teammates עלולים לערוך את אותו קובץ. התוצאה: הסוכן השני ידרוס את השינויים של הראשון — בלי שום אזהרה, בלי merge conflict, בלי דיווח שגיאה. פשוט — השינויים הראשונים נעלמים. מה לעשות במקום: תמיד הקצו ל-Teammates תיקיות או קבצים נפרדים. אם חייבים לערוך את אותו קובץ, הפכו את זה ל-Pipeline: Teammate 1 עורך, ואחרי שסיים Teammate 2 סוקר. אף פעם שניים על אותו קובץ במקביל.
קחו את המשימה מקודם ועברו עליה דרך צ'קליסט פירוק המשימות (4 השאלות). רשמו: ☐ ניתנת לפיצול? ☐ התת-משימות עצמאיות? ☐ קלט/פלט ברור? ☐ מיזוג אפשרי? אם אחת התשובות "לא" — שנו את החלוקה עד שכל 4 יהיו "כן."
מה תבנו: מסמך team-plan.md מלא לצוות של 3 Teammates, עם הרצת ניסיון ב-Claude Code.
- בחרו משימה מהפרויקט שלכם שמצדיקה 3 Teammates. דוגמאות: סקירת אבטחה + ביצועים + נגישות, הוספת פיצ'ר חוצה-שכבות, ניתוח קוד ממספר זוויות.
- כתבו team-plan.md עם הסעיפים הבאים:
- Objective — מה המשימה הגדולה
- Lead Role — מה ה-Lead מסנתז
- לכל Teammate: שם תפקיד, תחום אחריות, קבצים מותרים (read/write), פורמט פלט
- Conflict Prevention — מי כותב לאן
- הגדירו success criteria: איך תדעו שהצוות הצליח? מה צריכה להיות התוצאה הסופית?
- ודאו שהגדרתם
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 - פתחו Claude Code והריצו prompt שכולל את תוכן ה-team-plan. לדוגמה: "אנחנו צוות. הנה התוכנית: [הדביקו את תוכן ה-plan]. בבקשה התחל לחלק משימות ל-Teammates ולעבוד."
- צפו בתהליך ותעדו: איך ה-Lead חילק? ה-Teammates עבדו במקביל? כמה זמן לקח? התוצאה שימושית?
פלט צפוי: קובץ team-plan.md + מסמך קצר עם תיעוד התוצאות (מה ה-Lead סינתז, כמה זמן לקח, איכות 1-5, מה הייתם משנים).
Competing Hypotheses Debugging
זה ה-use case הרוצח של Agent Teams — ולטעמי, הסיבה הכי משכנעת להשתמש בצוותים. כשיש לכם באג ואתם לא יודעים איפה לחפש, רוב המפתחים מתחילים לחקור סדרתית: קודם בודקים ב-Frontend, לא מוצאים כלום, עוברים ל-Backend, בודקים 20 דקות, לא מוצאים, עוברים ל-Database — ואז מגלים שהבעיה הייתה ב-caching layer. שעה אחת, שליש ממנה בזבוז מוחלט.
Competing Hypotheses (השערות מתחרות) הופך את הגישה הזו על הפנים. במקום לחקור סדרתית, שלושה Teammates חוקרים את אותו באג מזוויות שונות במקביל:
- Teammate 1 (Frontend Investigator): "תחקור אם זו בעיית Frontend rendering — בדוק את ה-DOM, state management, event handlers, API calls מצד הלקוח."
- Teammate 2 (Backend Investigator): "תחקור אם זו בעיית Backend API — בדוק את ה-endpoint, middleware, request parsing, response format, error handling."
- Teammate 3 (Data Investigator): "תחקור אם זו בעיית Database או Data — בדוק את ה-queries, indexes, caching layer, data consistency, migration issues."
שלושתם חוקרים בו-זמנית. כל אחד סורק קבצים, מריץ grep, בודק logs, מזהה דפוסים חשודים. Teammate 2 מוצא שה-API מחזיר נתונים מ-cache ישן כי ה-cache invalidation שבור. Teammates 1 ו-3 לא מצאו בעיות משמעותיות בתחומים שלהם. ה-Lead מסנתז: "Teammate 2 מצא שה-API מחזיר נתונים מ-Redis cache שלא עודכן אחרי write. Teammates 1 ו-3 לא מצאו בעיות. הבאג ב-caching layer — ספציפית ב-cache invalidation logic."
הזמנים: במקום שעה של חקירה סדרתית, מצאנו את הבעיה ב-20 דקות. העלות: בערך פי 3 מחקירה בודדת — שלושה Teammates = שלוש ריצות מקביליות. אבל פי 3 ב-$1-2 זה $3-6, ופי שליש בזמן זה 40 דקות חסכון. בישראל, שעת מפתח עולה 150-300 ש"ח — אז 40 דקות שנחסכו שוות 100-200 ש"ח. ה-ROI ברור.
עלות טוקנים: ~$3-6 לריצת צוות של 3 Teammates (הערכה לפי שימוש ממוצע). זמן חקירה סדרתית ממוצע: ~60 דקות. זמן חקירה מקבילית: ~20 דקות. חיסכון: 40 דקות לכל session דיבוג. שווי שעת מפתח בישראל: 150-300 ש"ח (הערכת שוק). ROI פוטנציאלי: חיסכון של ~100-200 ש"ח לכל דיבוג session שמצליח, מול עלות של ~12-25 ש"ח בטוקנים. זה לא עובד בכל מקרה — אבל כשהבאג "מסתתר" ולא ברור איפה הוא, השיטה משתלמת.
השיטה עובדת כמו חוקרים שבודקים תיאוריות שונות במקביל — מי שמוצא את התשובה ראשון "מנצח." הכי אפקטיבי כשלא יודעים איפה הבאג: בעיות שמתבטאות בשכבה אחת אבל נגרמות בשכבה אחרת (למשל, Frontend מציג שגיאה אבל הבעיה ב-Backend). לא מתאים כשכבר יודעים: אם כבר יש לכם חשד חזק ("זה בטוח ב-CSS" או "זו בעיית migration"), לא צריך צוות — תפנו סוכן יחיד ישירות לנקודה ותחסכו 2/3 מהעלות.
חשבו על באג שנתקעתם עליו לאחרונה (או באג שאתם מכירים מהעבודה). רשמו 3 השערות שונות (Hypotheses) לגבי מקור הבעיה — בשכבות שונות. לכל השערה, רשמו: (1) איזה קבצים/תיקיות לבדוק, (2) מה לחפש ספציפית, (3) מה יהווה "הוכחה" ש"זו הבעיה." אלה ה-3 Teammates של צוות הדיבוג שלכם.
הפורמט המומלץ ל-Competing Hypotheses prompt
כדי לקבל את התוצאות הטובות ביותר, תנו ל-Claude Code prompt מובנה שמגדיר בבירור את ההשערות. ככל שה-prompt ספציפי יותר — הממצאים טובים יותר:
I have a bug: users report that their profile changes
don't persist after refresh. This started 3 days ago
after a deploy.
Investigate using 3 competing hypotheses in parallel:
Hypothesis A (Frontend):
The form might not be sending the data correctly.
- Check: src/components/ProfileForm.tsx
- Check: src/hooks/useProfileUpdate.ts
- Look for: missing await, incorrect API URL,
state not updating after submit, form not
reading input values correctly
Hypothesis B (Backend):
The API might receive data but not save it properly.
- Check: src/api/routes/profile.ts
- Check: src/api/middleware/validation.ts
- Look for: missing fields in validation schema,
errors silently caught and swallowed,
wrong table/collection name
Hypothesis C (Database/Cache):
The save might work but reads return stale data.
- Check: src/db/queries/profile.ts
- Check: src/cache/redis-client.ts
- Look for: cache invalidation not happening on write,
read replica lag, stale TTL settings,
wrong cache key pattern
For each hypothesis, report:
1. Did you investigate thoroughly? (yes/no)
2. Did you find an issue? (yes/no + description)
3. What evidence supports your finding?
4. Confidence level (low/medium/high)
5. Suggested fix if applicable
שימו לב לפורמט: כל Hypothesis כולל קבצים ספציפיים, מה לחפש, ופורמט דיווח אחיד. זה מקל על ה-Lead לסנתז — כשכל Teammate מדווח באותו פורמט, ההשוואה פשוטה.
אם הבאג הוא "הכפתור לא עובד" ואתם כבר יודעים שזה כנראה ב-Frontend — אל תבנו צוות של 3. תשלחו סוכן יחיד ל-Frontend. צוותים מתאימים לבעיות שבהן לא ידוע איפה הבעיה. בעיות שאתם כבר יודעים לאתר — סוכן יחיד מספיק ועולה שליש. הכלל: אם יש לכם חשד חזק (מעל 70%) באיזה שכבה הבעיה — סוכן יחיד. אם אתם "בחושך" — צוות.
לכל אחת מ-3 ההשערות שרשמתם, הוסיפו: "מה ה-evidence שיאשר את ההשערה?" — למשל: "אם Hypothesis A נכונה, אמצא שה-form handler לא שולח את ה-request בכלל (אין network call ב-DevTools)." זה עוזר ל-Teammates להיות ממוקדים.
מה תבנו: ריצת דיבוג מקבילית על באג אמיתי (או מדומה) בפרויקט שלכם, עם תיעוד מלא של התהליך.
- בחרו באג — אמיתי עדיף. אבל אם אין אחד כרגע, צרו אחד בכוונה: למשל, שנו שם של field ב-Database schema (או ב-API response) בלי לעדכן את ה-Frontend שקורא אותו. זה מדמה באג אמיתי שקשה לאתר.
- כתבו 3 השערות — כל אחת בשכבה אחרת. כל השערה = Teammate אחד. השתמשו בפורמט שראינו למעלה.
- כתבו prompt מובנה עם: תיאור הבאג, 3 השערות, קבצים לבדוק בכל אחת, פורמט דיווח.
- הריצו ב-Claude Code עם Agent Teams מופעל. צפו בתהליך — שימו לב איך ה-Lead מחלק ואיך ה-Teammates עובדים.
- תעדו את התוצאות: איזו השערה נמצאה נכונה? כמה זמן לקח? מה העלות בטוקנים (בדקו ב-statusline)?
- השוו: אם הייתם מחפשים סדרתית, כמה זמן הייתם מבזבזים? רשמו את ההשוואה.
פלט צפוי: דו"ח דיבוג קצר (1-2 עמודים) — 3 השערות, מה נמצא, ניתוח הזמן והעלות, ותובנות לשימוש עתידי.
תיאום חוצה-שכבות
אפליקציות מודרניות מורכבות מכמה שכבות (layers): Frontend (UI), Backend (API, logic), Database (data), ו-Infrastructure (config, deployment). כשצריך להוסיף פיצ'ר חדש שחוצה כמה שכבות — למשל, אמצעי תשלום חדש, שדה פרופיל חדש, או סוג משתמש חדש — צריך לגעת בכל אחת מהן. עם סוכן בודד, העבודה סדרתית ומתישה. עם צוות, כל שכבה מטופלת במקביל.
הנה דוגמה קונקרטית בהקשר ישראלי. סטארטאפ ב-fintech שמוסיף תמיכה ב-Apple Pay:
| Teammate | שכבה | מה עושה | קבצים / תיקיות |
|---|---|---|---|
| Frontend Dev | UI | מוסיף Apple Pay button, טופס, validation, error states, loading spinner | src/components/Payment/** |
| Backend Dev | API | מוסיף POST /api/payment/apple-pay endpoint, business logic, Apple Pay SDK integration | src/api/routes/payment/** |
| Data Engineer | Data | יוצר migration חדשה, מעדכן schema — טבלת transactions עם payment_method column | src/db/migrations/** |
| DevOps | Config | מוסיף Apple Pay merchant ID ל-env vars, מעדכן secrets, deployment config, health checks | infra/**, .env.example, docker-compose.yml |
התפקיד הקריטי של ה-Lead: לוודא עקביות בין השכבות. ה-Frontend Teammate בונה UI שמצפה ל-endpoint POST /api/payment/apple-pay עם body בפורמט מסוים. ה-Backend Teammate בונה POST /api/payments/apple — URL אחר! בלי ה-Lead שמוודא שה-API contracts תואמים — כל Teammate יבנה את שלו ובסוף שום דבר לא יתחבר.
לפני שמפעילים צוות חוצה-שכבות, צרו מסמך חוזה (contract document) שמגדיר את ה-API — routes, HTTP methods, request/response formats, שמות שדות, error codes. כל ה-Teammates מקבלים את המסמך הזה כנקודת ייחוס. זה מבטיח שהפלטים שלהם תואמים. דוגמה קצרה:
# API Contract: Apple Pay
POST /api/payment/apple-pay
Request: { token: string, amount: number, currency: "ILS" }
Response 200: { transactionId: string, status: "success" }
Response 400: { error: string, code: string }
DB Column: transactions.payment_method = "apple_pay"
כל ה-Teammates מתייחסים למסמך הזה. ה-Frontend יודע איזה endpoint לפנות, ה-Backend יודע מה לקבל ולהחזיר, ה-DB יודע איזה ערך לשמור.
היתרון בזמן: שינוי חוצה-שכבות עם סוכן בודד לוקח בממוצע פי 3-4 יותר זמן מצוות. הסיבה: הסוכן צריך להחליף הקשר (context switch) בין שכבות — לקרוא קוד Frontend, לזכור את ה-schema, לעבור ל-Backend, לחזור ל-Frontend כדי לוודא עקביות. צוות עובד במקביל — 4 שכבות בזמן של שכבה אחת, פלוס תקורת תיאום של ה-Lead.
תסתכלו על מבנה הפרויקט שלכם (ls ברמת root) ותזהו את השכבות: האם יש תיקיית Frontend (src/components, client, app)? Backend (src/api, server, routes)? Database (db, migrations, models)? Infrastructure (infra, docker, .github)? רשמו לכל שכבה את התיקיות הרלוונטיות — זה ה-basis לצוות חוצה-שכבות שלכם.
מתי צוותים מנצחים סוכן יחיד
צוותים הם לא תמיד התשובה. לפעמים סוכן יחיד עדיף — פשוט יותר, זול יותר, מהיר יותר להקמה. הטריק הוא לדעת מתי ההשקעה בצוות מצדיקה את עצמה — ומתי היא בזבוז.
5 מצבים שבהם צוותים מנצחים
1. משימות מחקר נרחבות. כמה Teammates מחפשים במקורות שונים בו-זמנית. Teammate 1 סורק את ה-docs הרשמיים, Teammate 2 חופש ב-codebase הפנימי, Teammate 3 בודק GitHub issues ו-Stack Overflow. ה-Lead מסנתז ממצאים מכל המקורות לתשובה אחת מקיפה. סוכן יחיד היה מחפש מקור אחרי מקור — הצוות מחפש בכולם במקביל.
2. סקירות קוד מקיפות (Code Review). צריכים לסקור PR גדול? Teammate 1 בודק אבטחה (vulnerabilities, injection, auth), Teammate 2 בודק ביצועים (N+1 queries, memory, re-renders), Teammate 3 בודק נגישות (ARIA labels, keyboard navigation, contrast). כל אחד מומחה בתחום שלו. יחד — סקירה מקיפה שמכסה 3 ממדים, לא רק אחד.
3. Competing Hypotheses Debugging (ראינו בסעיף 5.4). כשלא יודעים איפה הבאג ויש 3 כיוונים אפשריים — שלושה חוקרים במקביל מוצאים מהר יותר מחוקר אחד שבודק אחד-אחד.
4. שינויים חוצי-שכבות (ראינו בסעיף 5.5). Frontend + Backend + Database + Infrastructure בו-זמנית, עם contract document ו-Lead שמוודא עקביות.
5. יצירת תוכן מורכב. Teammate 1 חוקר מקורות, Teammate 2 כותב טיוטה על בסיס research ראשוני, Teammate 3 עורך ומשפר — שלבים חופפים שלא חייבים להיות סדרתיים לחלוטין. ה-Lead מרכיב את הגרסה הסופית.
4 מצבים שבהם צוותים לא עוזרים (ועלולים להזיק)
1. משימות עם תלויות סדרתיות. אם שלב B תלוי בפלט של שלב A — צריך Pipeline (פרק 6), לא Team. Team מניח שכולם יכולים לעבוד במקביל. אם יש תלות — צוות לא רק שלא עוזר, אלא מבזבז טוקנים על Teammates שמחכים.
2. משימות קטנות ופשוטות. אם סוכן יחיד מסיים ב-5 דקות — תקורת הצוות (כתיבת manifest, הגדרת roles, תיאום, סינתזה) גדולה מהתועלת. הכלל: אם המשימה לוקחת פחות מ-15 דקות לסוכן יחיד — אל תשתמשו בצוות.
3. חשיבה עמוקה על נושא אחד. עיצוב ארכיטקטורה, כתיבת אלגוריתם מורכב, קבלת החלטה אסטרטגית — אלה משימות שדורשות "Single-threaded deep reasoning." סוכן אחד עם Opus ו-effort גבוה עדיף על שלושה Teammates עם Sonnet. לפצל חשיבה עמוקה ל-3 חלקים רק מדלל את העומק.
4. תקציב מוגבל. צוות של 3 Teammates עולה לפחות פי 3 מסוכן יחיד (ולפעמים פי 4-5 עם תקורת תיאום). אם אתם מוגבלים בטוקנים או בתקציב חודשי, סוכן יחיד עם prompt מדויק יותר אפקטיבי מצוות שחורג מהתקציב.
| סוג משימה | תועלת מצוות | המלצה | הסבר |
|---|---|---|---|
| תת-משימות עצמאיות במקביל | 🟢 גבוהה | Team | מקבילות אמיתית = חיסכון זמן ליניארי |
| תלויות סדרתיות | 🔴 נמוכה | Pipeline | Teammates שמחכים = בזבוז טוקנים |
| חשיבה עמוקה על נושא אחד | 🔴 נמוכה | סוכן יחיד + Opus | פיצול מדלל עומק — Opus בודד עדיף |
| Competing Hypotheses | 🟢 גבוהה מאוד | Team | 3 חוקרים במקביל מוצאים ב-1/3 זמן |
| שינוי חוצה-שכבות | 🟢 גבוהה | Team | כל שכבה = Teammate עם contract |
| משימה קטנה (פחות מ-15 דקות) | 🟠 שלילית | סוכן יחיד | תקורת צוות > התועלת |
חשבו על 3 משימות שעשיתם בחודש האחרון (או שאתם מתכננים לעשות). לכל אחת, סווגו: Team / Pipeline / סוכן יחיד. רשמו למה. זו המטריצה האישית שלכם — שמרו אותה ותעדכנו אחרי שתצברו ניסיון.
בדקו את עלויות השימוש שלכם: כנסו ל-/config ב-Claude Code ובדקו שה-cost display מופעל. הריצו משימה קצרה (שאלה פשוטה) ורשמו את העלות שמוצגת ב-statusline. תכפילו ב-3 — זו העלות המינימלית המשוערת של אותה משימה כצוות של 3.
עיצוב מבני צוות אפקטיביים
לא כל הצוותים נבנים אותו דבר. מבנה הצוות צריך להתאים למשימה — בדיוק כמו שמבנה ארגוני בחברה צריך להתאים לסוג העבודה. צוות R&D מאורגן אחרת מצוות מכירות, וצוות סוכנים למחקר מאורגן אחרת מצוות לאבטחה.
בואו נכיר 4 מבנים מרכזיים, כל אחד מתאים לסיטואציה אחרת.
מבנה 1: Flat Team (צוות שטוח)
מה זה: כל ה-Teammates הם peers (שווי מעמד) — אין היררכיה ביניהם. ה-Lead רק מתאם את החלוקה ומסנתז את התוצאות, הוא לא "מנהל." מתי: משימות מחקר, סקירה, review, ו-Competing Hypotheses — כל מקום שבו כל Teammate בודק זווית שונה של אותה בעיה בלי תלות באחרים. דוגמה: סקירת קוד מקיפה — security reviewer, performance reviewer, accessibility reviewer — כולם peers, ה-Lead מרכיב את הממצאים. עלות: נמוכה-בינונית — אין תקשורת בין Teammates, רק דיווח ל-Lead.
מבנה 2: Specialist Team (צוות מומחים)
מה זה: כל Teammate הוא מומחה בתחום ספציפי — Frontend Expert, Backend Expert, Database Expert, DevOps Expert. מתי: שינויים חוצי-שכבות שדורשים מומחיות שונה בכל שכבה — כל Teammate "מדבר את השפה" של השכבה שלו ויודע את ה-patterns שלה. דוגמה: הוספת פיצ'ר שחוצה Frontend + Backend + DB — כל Teammate עובד בשכבה שלו, ה-Lead מוודא עקביות דרך contract document. עלות: בינונית — יש צורך ב-contract document ובתיאום מה-Lead.
מבנה 3: Adversarial Team (צוות יריבותי)
מה זה: Teammate אחד מיישם ואחר מבקר ומנסה "לשבור". כמו code review מובנה בתוך הצוות. מתי: משימות שבהן איכות קריטית — קוד אבטחה, לוגיקה פיננסית (חישוב מע"מ, עמלות, המרת מטבע), ממשקי API ציבוריים, הרשאות ו-access control. דוגמה: Teammate 1 כותב middleware להרשאות, Teammate 2 מקבל את הקוד ומנסה למצוא דרכים לעקוף את ההרשאות, ה-Lead מוודא שכל הפידבק טופל. עלות: בינונית-גבוהה — Teammate 2 חלקית תלוי ב-Teammate 1 (צריך לחכות לגרסה ראשונה).
הצוות היריבותי מייצר תוצאה חזקה יותר כי הביקורת מובנית בתהליך, לא מגיעה רק בסוף. בהקשר ישראלי — חשבו על fintech שמטפל בתשלומים. קוד שמחשב עמלות חייב להיות מדויק. צוות יריבותי שבו מישהו מנסה "לשבור" את הלוגיקה לפני שהיא עולה לייצור — זה ביטוח.
מבנה 4: Hierarchical Team (צוות היררכי)
מה זה: ה-Lead מאציל ל-sub-leads שכל אחד מנהל Teammates משלו. שכבה נוספת של ניהול. מתי: משימות ענקיות בלבד — למשל, ריפקטורינג של מערכת שלמה עם 10+ מודולים. אזהרה: השתמשו בזה בזהירות רבה מאוד. העלות גבוהה (כל sub-lead = context window נוסף = טוקנים נוספים), התיאום מורכב, והתוצאות לא תמיד מצדיקות את ההשקעה. ברוב המקרים, צוות שטוח או מומחים עדיף. אם המשימה באמת ענקית — שקלו /batch שמריץ עד 30 workers ב-worktrees נפרדים.
| מבנה | גודל מומלץ | מתאים ל... | עלות יחסית | תלות בין Teammates |
|---|---|---|---|---|
| Flat | 2-4 | מחקר, סקירה, Competing Hypotheses | נמוכה-בינונית | אפסית |
| Specialist | 3-4 | שינויים חוצי-שכבות | בינונית | נמוכה (דרך contract) |
| Adversarial | 2 | קוד קריטי, אבטחה, פיננסי | בינונית-גבוהה | חלקית (builder → critic) |
| Hierarchical | 5+ (נדיר) | משימות ענקיות בלבד | גבוהה מאוד | מורכבת |
הקצאת מודלים — ניצול חכם של תקציב
לא כל ה-Teammates צריכים את אותו מודל. זה כמו בצוות פיתוח אמיתי — הארכיטקט הבכיר צריך להיות חזק (Opus), אבל ה-QA שבודק test coverage יכול להיות junior (Sonnet). ה-Lead ו-Teammates קריטיים (אבטחה, סינתזה, ארכיטקטורה) — Opus 4.6. Teammates שעושים עבודה מובנית ושגרתית (סריקה, בדיקות, שאילתות פשוטות) — Sonnet 4.6 מספיק. זה יכול לחסוך 40-60% מעלות הצוות בלי ירידה משמעותית באיכות.
| תפקיד | מודל | סיבה | עלות משוערת |
|---|---|---|---|
| Lead Synthesizer | Opus 4.6 | סינתזה דורשת הבנה עמוקה של כל הדוחות — שווה את ההשקעה | ~$1.50-2.00 |
| Security Reviewer | Opus 4.6 | אבטחה קריטית — vulnerability detection דורש מודל חזק | ~$1.50-2.00 |
| Performance Reviewer | Sonnet 4.6 | סריקת bottlenecks מובנית — patterns ידועים, Sonnet מספיק | ~$0.30-0.50 |
| Coverage Reviewer | Sonnet 4.6 | בדיקת test coverage — מובנית ופשוטה יחסית | ~$0.30-0.50 |
| סה"כ משוער לכל PR | ~$3.60-5.00 | ||
Opus עולה פי 5-10 מ-Sonnet לכל request. אם כל 4 ה-Teammates רצים על Opus, הצוות עולה 4x-Opus — יכול להגיע ל-$12-20 לריצה אחת. אם 2 מתוכם רצים על Sonnet, העלות יורדת ל-~$5-8. הכלל: Opus ל-Lead ולמשימות שדורשות שיפוט (אבטחה, ארכיטקטורה, סינתזה), Sonnet לכל השאר (סריקה, בדיקות, formatting). ברוב המקרים לא תרגישו הבדל באיכות של ה-Sonnet Teammates — כי המשימות שלהם מובנות מספיק.
בחרו את המשימה שלכם (מתרגיל 1 או חדשה) ותחליטו 3 דברים: (1) איזה מבנה צוות מתאים — Flat / Specialist / Adversarial? (2) כמה Teammates צריך? (3) אילו מודלים לכל Teammate — Opus או Sonnet? רשמו את ההחלטות — זה חלק מהפורטפוליו שלכם.
מה תבנו: פורטפוליו של 3 מבני צוות שונים, עם תיעוד מלא ותוצאות ניסיון.
- צוות Flat: הגדירו צוות של 3 Teammates peers למשימת מחקר או סקירת קוד. כתבו manifest, הריצו ב-Claude Code, ותעדו: זמן, עלות, איכות תוצאה (1-5).
- צוות Specialist: הגדירו צוות של 2-4 Teammates מומחים לשינוי חוצה-שכבות. כתבו contract document, הריצו, ותעדו.
- צוות Adversarial: הגדירו צוות של 2 — Builder ו-Critic — למשימה קריטית (validation logic, auth middleware, חישוב עמלות). הריצו ותעדו.
- לכל צוות, תעדו:
- מבנה ותפקידים
- מודלים שהוקצו
- ה-prompt שנתתם
- זמן ריצה ועלות בטוקנים
- איכות התוצאה (1-5, עם נימוק)
- מה הייתם משנים בפעם הבאה
- כתבו מסמך השוואה: איזה מבנה עבד הכי טוב ולמה? מה הפתיע אתכם?
פלט צפוי: מסמך team-portfolio.md עם 3 מבני צוות מתועדים, תוצאות מפורטות, טבלת השוואה, ותובנות.
טיפול בשגיאות וריקברי בצוות
מה קורה כש-Teammate נכשל? בניגוד לסוכן יחיד שפשוט מחזיר שגיאה ואתם צריכים לנסות שוב — בצוות יש אפשרויות ריקברי (recovery) יותר מתוחכמות. ה-Lead מקבל דיווח כישלון ויכול להקצות מחדש, לעקוף, או לעבוד עם תוצאות חלקיות. בואו נעבור על התרחישים.
תרחיש 1: Teammate יחיד נכשל
ה-Lead מקבל: "Teammate 2 failed — API rate limit error." מה האופציות? (א) הקצאה מחדש: ה-Lead מעביר את המשימה ל-Teammate אחר שעדיין לא עמוס. (ב) עקיפה: ה-Lead ממשיך בלי Teammate 2 ומסנתז מ-Teammates 1 ו-3 בלבד — עם הערה שהסקירה חלקית. (ג) ניסיון נוסף: ה-Lead מחכה רגע ושולח את Teammate 2 לנסות שוב.
תרחיש 2: הצלחה חלקית — 2 מתוך 3
זה התרחיש הנפוץ ביותר. 2 מתוך 3 Teammates הצליחו. ה-Lead לא חייב להפיל הכל — הוא יכול לסנתז תוצאה שימושית ממה שיש. למשל: Security Reviewer הצליח, Performance Reviewer הצליח, Coverage Reviewer נפל. ה-Lead יגיד: "הנה סקירת אבטחה וביצועים מלאה. סקירת coverage לא הושלמה — מומלץ להריץ ידנית עם jest --coverage." תוצאה חלקית שימושית עדיפה על כישלון מוחלט.
תרחיש 3: Teammate תקוע — עובד יותר מדי זמן
Teammate עובד כבר 10 דקות על משימה שצריכה לקחת 3. הוא "תקוע" — אולי נכנס ללולאה, אולי קורא קבצים אינסופיים. ה-Lead יכול לסיים אותו (terminate) ולדווח על תוצאות חלקיות. הגדרת timeout לכל Teammate מונעת סיטואציות שבהן צוות שלם — ואתם — מחכים ל-Teammate אחד איטי.
דפוס Fallback to Sequential — ה-Plan B שלכם
אם Teams לא יציב (זכרו — עדיין research preview), תמיד צריך להיות נתיב גיבוי: הריצו את אותן משימות סדרתית עם סוכן יחיד. יותר איטי, אבל אמין ב-100%. הכלל: אף פעם אל תשלחו צוות לעבודה קריטית בלי שיש לכם Plan B. מה ה-Plan B? סדרת prompts לסוכן יחיד שעושות את אותן 3 משימות אחת-אחת. זה לוקח 3x זמן, אבל עובד תמיד.
הגדירו תקרת תקציב (budget ceiling) לכל ריצת צוות. אם העלות הכוללת חורגת מהסף — ה-Lead מפסיק ומדווח תוצאות חלקיות. בלי תקרה, צוות של 4 Teammates שכל אחד "חוקר" בלי סוף (קורא קבצים, מריץ חיפושים, מנתח) יכול לעלות $50+ בלי תוצאה שימושית. תקרה סבירה לרוב המשימות: $10-15 לכל ריצת צוות. אם צריך יותר — בדקו שהמשימה באמת מצדיקה.
לצוות שתכננתם בתרגיל 1, הוסיפו 3 שורות ל-team-plan.md: (1) Failure policy: מה קורה אם Teammate נכשל? (עקיפה / הקצאה מחדש / ניסיון נוסף). (2) Timeout: כמה זמן לתת לכל Teammate לפני שמפסיקים? (3) Budget ceiling: כמה $ מקסימום לכל הצוות?
מפתחים בונים צוות, מפעילים אותו, הצוות נתקע או נכשל — ואז מתחילים לחשוב מה לעשות. זה בזבוז זמן. מה לעשות במקום: לכל צוות, הגדירו מראש: (1) מה ה-Plan B אם Teams לא עובד? (2) איזה חלק מהתוצאה אפשר להשתמש בו גם אם רק 2/3 הצליחו? (3) מתי מפסיקים ועוברים ל-Plan B? כמו גנרטור חירום בבניין — מקווים שלא צריך, אבל חייב שיהיה.
צוותי סוכנים ב-CI/CD
אחד היישומים המעשיים ביותר של Agent Teams הוא סקירת PR אוטומטית מקיפה. בפרק 2 למדנו איך Claude Code עובד ב-GitHub Actions כ-reviewer יחיד — תופס באגים, מציע שיפורים, מפרגן על קוד טוב. עכשיו אנחנו מדברים על צוות reviewers — כל אחד מתמחה בתחום אחר, וביחד הם נותנים סקירה שאף reviewer יחיד לא יכול לתת.
הרעיון פשוט: כש-PR נפתח, ה-CI pipeline מפעיל צוות של 3 reviewers + Lead synthesizer:
- Security Reviewer (Opus) — מחפש vulnerabilities, SQL injection, XSS, authentication gaps, hardcoded secrets, insecure dependencies. זה חייב להיות Opus — פספוס אבטחה עולה יותר מטוקנים.
- Performance Reviewer (Sonnet) — מחפש N+1 queries, unnecessary re-renders, missing indexes, memory leaks, O(n^2) loops, missing caching. Sonnet מספיק כי patterns הם ידועים ומובנים.
- Coverage Reviewer (Sonnet) — בודק שכל שינוי מכוסה בטסטים, מזהה edge cases חסרים, מציע טסטים נוספים. גם כאן Sonnet מספיק.
ה-Lead Synthesizer (Opus) לוקח את שלושת הדוחות ומרכיב תגובת PR אחת קוהרנטית. לא 3 תגובות נפרדות שמבלבלות את המפתח — תגובה אחת מסודרת עם sections: "Security Findings," "Performance Findings," "Coverage Gaps." המפתח מקבל review מקיף ומאורגן.
יישום עם Agent SDK — מהפרקים הקודמים
ב-CI pipeline, אתם משתמשים ב-Agent SDK (Python מפרק 3 או TypeScript מפרק 4) כדי לתזמר את הצוות פרוגרמטית. זה לא שימוש אינטראקטיבי ב-Claude Code — זה קוד אוטומציה שמפעיל סוכנים, מקבל תוצאות, ומפרסם תגובה.
# Conceptual pipeline structure (Python pseudocode)
# Based on patterns from Chapter 3 (Agent SDK Python)
import asyncio
from agent_sdk import Agent
async def review_pr(pr_diff: str, file_list: list[str]):
# Stage 1: Run 3 specialized reviewers in parallel
security = Agent(
model="opus-4.6",
instructions="You are a security reviewer. Focus ONLY on vulnerabilities.",
tools=["Read", "Grep"]
)
performance = Agent(
model="sonnet-4.6",
instructions="You are a performance reviewer. Focus ONLY on bottlenecks.",
tools=["Read", "Grep"]
)
coverage = Agent(
model="sonnet-4.6",
instructions="You are a coverage reviewer. Identify missing tests.",
tools=["Read", "Grep", "Bash"]
)
# Run all 3 in parallel
results = await asyncio.gather(
security.run(f"Review this PR for security issues:\n{pr_diff}"),
performance.run(f"Review this PR for performance issues:\n{pr_diff}"),
coverage.run(f"Review this PR for test coverage gaps:\n{pr_diff}"),
)
# Stage 2: Lead synthesizes into one coherent review
lead = Agent(model="opus-4.6", instructions="Synthesize reviews.")
final = await lead.run(f"""
Combine these 3 reviews into ONE cohesive PR comment:
## Security: {results[0].text}
## Performance: {results[1].text}
## Coverage: {results[2].text}
Format: markdown with severity labels (Critical/Warning/Info).
""")
# Stage 3: Post to GitHub
github.post_pr_comment(pr_number, final.text)
שימו לב: הקוד משתמש ב-asyncio.gather כדי להריץ את 3 ה-reviewers במקביל — בדיוק כמו שלמדנו בפרק 3. כל reviewer הוא Agent נפרד עם מודל ו-instructions ספציפיים. ה-Lead Synthesizer מקבל את 3 הדוחות ומרכיב תגובה אחת.
הטרייד-אוף: 3x-4x מעלות review יחיד, אבל תופס סוגי בעיות שסוכן יחיד מפספס. review יחיד בדרך כלל מתמקד בנושא אחד (או סוקר ברמת שטח). צוות של 3 מומחים מכסה 3 ממדים לעומק. בפרויקט עם 10+ מפתחים שמוציאים PRs יומי — ההשקעה מצדיקה את עצמה. בפרויקט יחיד עם PR בשבוע — כנראה שלא.
Review יחיד (סוכן בודד): ~$0.50-1.00 לכל PR. צוות של 3 + Lead: ~$3-5 לכל PR. פרויקט עם 20 PRs בשבוע: ~$60-100/שבוע לצוות מול ~$10-20 ל-review יחיד. ההפרש: ~$50-80/שבוע (~200-300 ש"ח). שאלת ה-ROI: האם הבאגים שנתפסים שווים את זה? אם באג אבטחה אחד בחודש נמנע (שעלול לעלות אלפי ש"ח בנזק) — ההשקעה מוצדקת. אם הפרויקט low-risk — כנראה שלא.
כנסו ל-GitHub (או GitLab/Bitbucket) של הפרויקט שלכם ומצאו PR אחד שמורג'ג לאחרונה. חשבו: אם 3 reviewers היו בודקים אותו (אבטחה, ביצועים, כיסוי) — מה היו מוצאים שה-review הנוכחי פספס? רשמו לפחות פריט אחד שכנראה לא נבדק.
העתיד של מערכות מרובות סוכנים
Agent Teams נכון להיום (מרץ 2026) הוא research preview — פיצ'ר ניסיוני שמושבת כברירת מחדל. Anthropic עובדים עליו באופן פעיל, ויש כמה כיוונים מרתקים בהתפתחות.
לאן זה הולך — 3 כיוונים
צוותים פרסיסטנטיים (Persistent Teams): היום כל ריצת צוות מתחילה מאפס — ה-Teammates לא "זוכרים" מה היה בפעם הקודמת. בעתיד, צוותים ישמרו ידע בין sessions. ה-Security Reviewer "יזכור" מה הוא מצא בסקירה הקודמת ויתמקד בקוד חדש. זה ידרוש מנגנון persistent memory מובנה — משהו שמזכיר את Auto-Memory שיש כבר ב-Claude Code, אבל ברמת צוות.
צוותים חוצי-repos (Cross-Repository Teams): היום הצוות עובד על repository אחד. בעתיד, Teammate 1 יעבוד ב-frontend repo, Teammate 2 ב-backend repo, ו-Teammate 3 ב-infrastructure repo — כולם מתואמים. זה רלוונטי לארגונים עם monorepo, ועוד יותר לארגונים עם microservices.
צוותים עם בני אדם (Human-in-the-Loop Teams): החזון הגדול — "צוות הנדסת AI" שבו המוביל הוא אדם (ארכיטקט, tech lead), וה-Teammates הם סוכני AI שמיישמים, בודקים, סוקרים, ופורסים. האדם מגדיר כיוון ומקבל החלטות אסטרטגיות, ה-AI מבצע את העבודה הטקטית. זה כבר קורה חלקית עם Remote Control (שלמדנו שהושק בפברואר 2026) — אדם שמנהל session מהטלפון בזמן שסוכנים עובדים.
מגבלות של היום — מה צריך להשתפר
- תקורת תיאום: כל message בין סוכנים עולה טוקנים. ככל שהצוות גדול יותר, התקורה משמעותית יותר — ולפעמים 20-30% מהעלות הכוללת הולכת רק על "שיחה" בין סוכנים.
- שכפול הקשר: כל Teammate מקבל context window נפרד. אם כולם צריכים להכיר את אותו קוד (500 שורות), ה-context מועתק 3 פעמים — 1,500 שורות של קריאה "מיותרת" (מבחינת עלות).
- תוצאות לא-דטרמיניסטיות: אותו צוות עם אותו prompt עלול לתת תוצאות שונות בכל ריצה — כי ה-Lead מחלק אחרת, ה-Teammates חוקרים בסדר שונה, ומוצאים ממצאים שונים. לדיבוג וסקירה זה בסדר. לתהליכים שצריכים להיות reproducible — זה בעייתי.
- חוסר תמיכה ב-resume:
/resumeו-/rewindלא משחזרים Teammates שהיו באמצע עבודה. אחרי חידוש session, ה-Lead עלול לנסות לשלוח הודעות ל-Teammates שכבר לא קיימים. מגבלה נוספת: סטטוס משימות יכול לפגר — לפעמים Teammate מסיים משימה אבל לא מסמן אותה כ-completed, מה שחוסם משימות תלויות. - עלות: צוות של 3 עולה לפחות פי 3 מסוכן יחיד — ולפעמים פי 4-5 עם תקורה. זה מגביל את השימוש למשימות שבאמת מצדיקות את ההשקעה.
Anthropic עצמם השתמשו ב-Agent Teams כדי לבנות קומפיילר C מבוסס Rust שמסוגל לקמפל את ליבת Linux — פרויקט של כ-100,000 שורות קוד. הם הריצו 16 סוכנים במקביל לאורך כמעט 2,000 sessions של Claude Code. זה מראה את הפוטנציאל האמיתי של הטכנולוגיה — גם אם עדיין ב-research preview, צוותים גדולים של סוכנים כבר מסוגלים לבצע משימות הנדסיות ברמה גבוהה מאוד. המסקנה: הדפוסים שלמדנו פה (Lead + Teammates, manifest, חלוקת אחריות) הם בדיוק מה ש-Anthropic עצמם משתמשים בהם — רק בסקייל אחר.
מה אפשר לעשות כבר עכשיו
גם אם Agent Teams עדיין ניסיוני, הדפוסים שלמדנו בפרק הזה יציבים ורלוונטיים. אתם יכולים:
- לנסות עם משימות לא-קריטיות — סקירות, מחקר, דיבוג. לא לשלוח צוות לשנות קוד production ביום ראשון.
- לפתח אינטואיציה לפירוק משימות — הכישור של "איך לפצל בעיה גדולה לחלקים עצמאיים" שימושי גם בלי Teams. זה עוזר עם subagents, עם
/batch, ועם עבודה עם צוותים אנושיים. - לבנות team templates לתחום שלכם — מבנים, תפקידים, prompts — כדי שכשהפיצ'ר יתייצב ויעבור ל-stable, תהיו מוכנים עם templates מוכנים שכבר בדקתם.
כתבו "רשימת משאלות" קצרה: 3 דברים שהייתם רוצים שצוותי סוכנים יוכלו לעשות עבורכם — דברים שהיום לוקחים לכם הרבה זמן או שאתם לא עושים כי אין bandwidth. שמרו את הרשימה. כשהפיצ'ר יתפתח ויתייצב, בדקו אם המשאלות הפכו למציאות.
מה תבנו: תבנית מלאה ל-CI/CD Review Team — מוכנה ליישום כשתרצו לשלב בפרויקט.
- בחרו פרויקט (שלכם או open source) שיש בו PRs.
- הגדירו 3 reviewer roles: לכל reviewer — מה בודק, באילו קבצים מתמקד, עם איזה מודל (Opus/Sonnet), מה ה-output format (findings list עם severity: Critical/Warning/Info).
- כתבו prompt template לכל reviewer: מה הוא מקבל כ-input (PR diff, changed files list, repo context), ומה הוא מחזיר.
- כתבו prompt template ל-Lead Synthesizer: איך הוא ממזג 3 דוחות לתגובה אחת מסודרת. כללו: format, severity ordering, actionability.
- חשבו ROI: כמה PRs בשבוע? עלות $ לכל PR? עלות חודשית? כמה באגים בחודש צוות כזה עשוי לתפוס? כמה עולה באג שלא נתפס (שעות מפתח, downtime)?
פלט צפוי: מסמך ci-review-team-template.md עם roles, prompt templates, model assignments, ו-ROI calculation.
בנוסף לשגרה מפרקים 3 ו-4 (ניהול סוכנים בודדים, SDK maintenance, חשבונות API):
| תדירות | משימה | פירוט |
|---|---|---|
| יומי | שאלת Team vs Solo | לפני כל משימה מורכבת, 10 שניות: "האם זה צריך צוות?" — רוב הפעמים לא, אבל כשכן — זה חוסך שעות |
| יומי | Review team outputs | אם הרצתם צוות — קראו את הסינתזה של ה-Lead בקריאות ביקורתית. אל תסמכו עיוורון — בדקו שהממצאים הגיוניים |
| שבועי | בדיקת עלויות צוותים | ב-/config בדקו כמה עלו ריצות הצוות השבוע. חשבו: ה-ROI חיובי? הצוותים חסכו זמן שמצדיק את העלות? |
| שבועי | עדכון team templates | שפרו את ה-manifests וה-prompts שלכם על סמך תוצאות — מה עבד? מה לא? אילו Teammates היו מיותרים? |
| שבועי | ניסוי מבנה או prompt חדש | נסו מבנה צוות שלא ניסיתם (Adversarial? Specialist?) או prompt מתוקן — על משימה לא-קריטית |
| חודשי | סקירת פורטפוליו צוותים | סקרו את כל מבני הצוות שניסיתם: מה הכי אפקטיבי לתחום שלכם? מה לזנוח? מה לשפר? |
| חודשי | בדיקת Agent Teams updates | בדקו changelog של Claude Code — האם Agent Teams קיבל שיפורים? עבר מ-research preview ל-stable? אם כן — הזמן להרחיב שימוש |
| חודשי | חישוב ROI מצטבר | סכמו: כמה שעות חסכתם עם צוותים? כמה עלו הטוקנים? האם שווה להמשיך? האם צריך לשנות מודלים? |
הפעילו Agent Teams (export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) ונסו Competing Hypotheses Debugging על באג אמיתי בפרויקט שלכם. כתבו prompt מובנה עם 3 השערות — Frontend, Backend, Database (או 3 כיוונים שמתאימים לפרויקט שלכם) — והריצו. גם אם זו פעם ראשונה, גם אם התוצאה לא מושלמת — תגלו תוך 20 דקות אם הדפוס הזה עובד עבורכם. את כל שאר הדפוסים (Flat, Specialist, Adversarial, CI/CD) תוכלו ללמוד אחרי שהתנסיתם עם האחד הכי חזק. וגם אם Agent Teams לא עבד מושלם — הפירוק ל-3 השערות שווה בפני עצמו, כי תוכלו להריץ אותן סדרתית עם סוכן יחיד.
ענו על לפחות 4 מתוך 5 כדי לעבור:
- מה ההבדל המרכזי בין Subagents ל-Agent Teams מבחינת תקשורת, ולמה זה משפיע על הבחירה ביניהם?
(רמז: כיוון תקשורת — חד-כיוונית מול רב-כיוונית, עצמאות Teammates, יכולת לבנות על עבודת אחרים) - למה שיטת Competing Hypotheses Debugging יעילה יותר מחקירה סדרתית, ומתי דווקא לא כדאי להשתמש בה?
(רמז: 3 כיוונים במקביל = 1/3 זמן, עלות x3, אבל אם כבר יודעים איפה הבעיה — בזבוז) - מה התפקיד של manifest (team-plan.md) בצוות, ומה קורה כשמדלגים עליו?
(רמז: חלוקת קבצים, מניעת דריסות, ה-Teammates לא יודעים מי עושה מה, פלטים שסותרים) - איך הקצאת מודלים חכמה (Opus/Sonnet) משפיעה על עלות ואיכות, ומה הכלל לגבי ה-Lead?
(רמז: Lead = Opus תמיד, משימות שגרתיות = Sonnet, חיסכון 40-60%, משימות אבטחה = לא מתפשרים) - למה צוות של 5+ Teammates נדיר שמוצדק, ומה האלטרנטיבות למשימות ענקיות?
(רמז: coordination overhead גדל לא-ליניארית, diminishing returns, /batch עם 30 workers, פיצול ל-sub-tasks)
בפרק הזה עברנו מסוכנים בודדים לצוותים שמשתפים פעולה, ובדרך גילינו שזו לא רק שאלה של "כמה סוכנים" — זו צורת חשיבה חדשה על פתרון בעיות. במקום לשאול "איך הסוכן יפתור את זה?", שואלים "איך אפרק את זה לחלקים שכמה סוכנים יפתרו במקביל?" הדפוס החזק ביותר שראינו הוא Competing Hypotheses Debugging — שלושה חוקרים במקביל שמוצאים את הבאג ב-20 דקות במקום שעה. התבנית שחשוב לזכור: Lead מתאם ומסנתז, Teammates עובדים בחלונות הקשר נפרדים, manifest מגדיר גבולות ומונע קונפליקטים, ותמיד יש Plan B. בפרק הבא נעבור לProduction Pipelines — שרשראות עיבוד סדרתיות שבהן כל שלב מזין את הבא. אם Teams עוסק בעבודה מקבילית, Pipelines עוסק בעבודה סדרתית — עם error handling, checkpointing, ו-monitoring שהופכים אוטומציה ל-production-grade.
- ☐ הפעלתי Agent Teams עם
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 - ☐ הבנתי את ההבדל בין Subagents (האצלה חד-כיוונית) ל-Agent Teams (שיתוף פעולה רב-כיווני)
- ☐ כתבתי team-plan.md מלא עם Lead role, Teammates, חלוקת קבצים, ו-conflict prevention
- ☐ הרצתי צוות סוכנים ב-Claude Code על משימה אמיתית (תרגיל 1)
- ☐ כתבתי 3 השערות לדיבוג באג ובניתי prompt מובנה ל-Competing Hypotheses
- ☐ ניסיתי Competing Hypotheses Debugging ותיעדתי תוצאות (תרגיל 2)
- ☐ זיהיתי את השכבות בפרויקט שלי (Frontend, Backend, DB, Infra) ותיקיות מתאימות
- ☐ סיווגתי 3 משימות מהעבודה שלי: Team / Pipeline / סוכן יחיד — עם נימוק
- ☐ עברתי על 4 מבני צוות (Flat, Specialist, Adversarial, Hierarchical) ובחרתי את המתאים
- ☐ בניתי פורטפוליו של לפחות 3 מבני צוות עם תיעוד תוצאות (תרגיל 3)
- ☐ הגדרתי הקצאת מודלים חכמה: Opus למשימות קריטיות, Sonnet לשגרתיות
- ☐ הוספתי error handling לתוכנית הצוות: failure policy, timeout, budget ceiling, fallback plan
- ☐ כתבתי CI/CD Review Team template עם roles, prompts, ו-ROI calculation (תרגיל 4)
- ☐ עדכנתי את שגרת העבודה שלי עם tasks חדשים לניהול צוותי סוכנים