- הרצת
/fleetמוצלחת על משימת refactoring אמיתית — עם לפחות 2 sub-agents שעובדים במקביל - דוח
/tasksמתועד — מעקב אחרי התקדמות כל sub-agent בזמן אמת - סוכן מותאם (Custom Agent) עם קובץ
.agent.mdשמגדיר שם, כלים ומודל ייעודי - טבלת החלטה:
/fleetמולrunSubagent— מתי כל אחד מתאים - חישוב עלות מוקדם: כמה premium requests ה-fleet צפוי לצרוך למשימה ספציפית
- רשימת 5 תרחישים מתאימים ו-5 תרחישים לא מתאימים ל-fleet בפרויקט שלכם
- תוכלו להפעיל
/fleetולפרק משימה מורכבת למשימות משנה מקביליות — בפרומפט אחד - תוכלו להגדיר תלויות בין משימות משנה ולשלוט מה רץ לפני מה
- תוכלו ליצור סוכנים מותאמים עם מודלים, כלים ושמות ספציפיים באמצעות קבצי
.agent.md - תוכלו לחשב את ההשפעה על קרדיטים לפני הרצת fleet — ולהחליט אם שווה
- פרקים קודמים: פרק 6 (Copilot CLI) — חובה. את/ה צריך/ה Copilot CLI מותקן, מוגדר ועובד עם סוכנים מובנים
- כלים נדרשים: Copilot CLI מעודכן לגרסה האחרונה, פרויקט קוד עם לפחות 3-4 קבצים עצמאיים (נפרדים ולא תלויים זה בזה)
- חשבונות: מנוי GitHub Copilot פעיל (Pro / Pro+ / Business / Enterprise)
- זמן משוער: 45-60 דקות כולל תרגילים מעשיים
בפרק הקודם (פרק 6: Copilot CLI) למדת לעבוד עם Copilot ישירות מהטרמינל — התקנת את ה-CLI, הכרת את 4 הסוכנים המובנים (Explore, Task, Plan, Code-review), ניהלת זיכרון cross-session, ובחרת מתי CLI מתאים יותר מ-VS Code. בפרק הזה תלמד להכפיל את הכוח של ה-CLI: להריץ כמה סוכנים במקביל עם /fleet, לפרק משימות מורכבות לחלקים עצמאיים, לעקוב אחרי ביצוע עם /tasks, וליצור סוכנים מותאמים שמתמחים במשימות ספציפיות. בפרק הבא (פרק 8: Copilot ב-GitHub.com) תעבור לסביבת הענן — שם תכיר את Coding Agent שפותח PRs מ-issues, Code Review אוטומטי, ו-Copilot Spaces.
| מונח באנגלית | הסבר בעברית |
|---|---|
| /fleet | פקודת slash ב-Copilot CLI שמפעילה ריצה מקבילית של מספר סוכנים על משימה אחת |
| Task Decomposition | פירוק משימה — חלוקת משימה מורכבת לתתי-משימות עצמאיות שאפשר לעבוד עליהן בנפרד |
| Orchestrator | מתזמר — הסוכן הראשי שמנתח את הפרומפט, מחלק משימות, ומנהל את כל ה-sub-agents ב-fleet |
| Sub-agent | סוכן משנה — מופע עצמאי של Copilot שמטפל בתת-משימה אחת עם context window נפרד |
| Dependency | תלות — קשר בין משימות שמחייב סדר ביצוע: משימה B חייבת לחכות שמשימה A תסתיים |
| Custom Agent | סוכן מותאם — פרופיל שמוגדר בקובץ .agent.md עם הנחיות, כלים ומודל ייעודיים |
| Agent Profile | פרופיל סוכן — קובץ Markdown עם YAML frontmatter שמגדיר שם, תיאור, כלים ומודל לסוכן |
| Result Merging | מיזוג תוצאות — התהליך שבו ה-orchestrator מחבר את הפלטים של כל ה-sub-agents לתוצאה אחודה |
| runSubagent | כלי ב-VS Code שמפעיל סוכן משנה בהקשר מבודד — עובד סדרתית, לא במקביל |
| Cost Multiplier Effect | אפקט כפל עלות — כל sub-agent צורך premium requests בנפרד, כך ש-fleet עלול לעלות יותר מסוכן בודד |
אדם, מפתח Backend בחברת פינטק ישראלית, קיבל משימה: לעשות refactoring ל-4 מודולים של מערכת התשלומים — payments/, invoices/, webhooks/, ו-reports/. כל מודול צריך מעבר מ-callback style ל-async/await, עדכון טיפוסים, ותוספת error handling אחיד.
בשיטה הרגילה, אדם ישב עם Copilot CLI ועבד על מודול אחד בכל פעם. כל מודול לקח כ-45 דקות. אחרי יום וחצי — 4 מודולים, 3 שעות עבודה בפועל. לא רע, אבל מתסכל — כי כל מודול היה עצמאי לגמרי. שום סיבה שהם לא יכלו לרוץ במקביל.
בשבוע שאחרי, אדם למד על /fleet. הוא כתב פרומפט אחד:
/fleet Refactor these 4 modules from callbacks to async/await, add proper TypeScript types, and implement consistent error handling with our AppError class:
1. src/payments/ — payment processing module
2. src/invoices/ — invoice generation module
3. src/webhooks/ — webhook handler module
4. src/reports/ — reporting module
Each module is independent. Use the patterns from src/shared/error-handler.ts as reference.
Fleet חילק את המשימה ל-4 sub-agents, כל אחד עבד על מודול אחד. אחרי 14 דקות — כל 4 המודולים עודכנו, עם עקביות מלאה. במקום 3 שעות סדרתיות — רבע שעה. אדם חסך 85% מהזמן על משימה שנולדה מקבילית.
מה שהפתיע את אדם: לא רק המהירות, אלא העקביות. כשהוא עבד סדרתית, המודול הרביעי נכתב בסגנון קצת שונה מהראשון — כי הוא שכח את ה-pattern שהשתמש בו שעה קודם. עם fleet, כל 4 ה-sub-agents קראו את אותו reference file (src/shared/error-handler.ts) — וכולם יישמו את אותם patterns באופן זהה. fleet לא רק מהיר — הוא יותר עקבי מסוכן בודד על משימות ארוכות.
מה זה /fleet ולמה זה משנה את המשחק
עד עכשיו, כל פקודה שנתת ל-Copilot CLI הופעלה על ידי סוכן אחד. סוכן אחד שקורא קבצים, חושב, כותב קוד, מריץ טסטים — בזה אחר זה. גם כשהמשימה מורכבת מחלקים עצמאיים לגמרי, הסוכן עובד עליהם סדרתית — אחד אחרי השני.
/fleet (פליט) משנה את זה. זו פקודת slash ב-Copilot CLI שהופכת סוכן בודד לצוות שלם של סוכנים שעובדים במקביל. במקום שסוכן אחד יעבוד על 4 מודולים ברצף, fleet מפעיל 4 סוכנים שעובדים על כולם בו-זמנית.
תחשבו על זה כמו צוות פיתוח:
- בלי fleet = מפתח אחד שעובד על 4 משימות ברצף. משימה 1 ← משימה 2 ← משימה 3 ← משימה 4. זמן כולל: 4 שעות.
- עם fleet = 4 מפתחים שכל אחד לוקח משימה אחת. כולם עובדים במקביל. זמן כולל: שעה אחת (+ קצת זמן תיאום).
אתם ה-Tech Lead. אתם מגדירים את המשימה. /fleet לוקח את התפקיד של מנהל הצוות — מפרק, מחלק, מנטר, ומאחד תוצאות.
הנקודה הקריטית: fleet לא רק מאיץ — הוא משנה את אופי העבודה. במקום לחשוב "איך אני עושה את זה", אתם מתחילים לחשוב "איך אני מפרק את זה לחלקים עצמאיים." וזו חשיבה של מנהל פרויקט, לא של מפתח בודד.
מה fleet לא עושה
חשוב להבהיר מראש: fleet לא קסם. הוא לא הופך משימה סדרתית מטבעה לפתאום מקבילית. הוא לא פותר merge conflicts בשבילכם. והוא לא חוסך premium requests — הוא בדרך כלל צורך יותר. fleet חוסך זמן, לא כסף. אם המשימה שלכם היא "תתקן את הבאג הזה בקובץ X" — fleet לא יעזור כי אין מה לפרק. fleet מבריק כשיש לכם משימה שמורכבת מכמה חלקים עצמאיים שיכולים לרוץ בו-זמנית.
מי יכול להשתמש ב-fleet?
fleet זמין לכל מי שמשתמש ב-Copilot CLI עם מנוי פעיל (Pro, Pro+, Business, Enterprise). Copilot CLI הגיע ל-General Availability ב-25 בפברואר 2026, ו-fleet היה חלק מהשחרור. אם ה-CLI שלכם מעודכן לגרסה האחרונה — fleet זמין ומוכן לשימוש. אין צורך בהתקנה נפרדת או הפעלה — זו פקודת slash מובנית שעובדת מהרגע הראשון.
דרישות מינימום:
- Copilot CLI מותקן ומעודכן (גרסה GA ומעלה)
- מנוי Copilot פעיל (כולל Free tier — אבל שימו לב שב-Free יש מגבלת premium requests)
- פרויקט עם לפחות 2-3 קבצים שצריכים שינוי עצמאי
לפי דוחות של GitHub, מפתחים שמשתמשים ב-fleet מדווחים על חיסכון של 40-80% בזמן על משימות מקביליות. המספר המדויק תלוי בכמה חלקים עצמאיים יש במשימה, כמה גדול כל חלק, ובאיזה מודל משתמשים. הערכה מייצגת: משימה של 4 מודולים שלוקחת שעה סדרתית — תיקח ~15-20 דקות עם fleet (כולל overhead).
פתחו את הפרויקט שלכם ורשמו 3 משימות שנתקלתם בהן לאחרונה שהיו מרובות קבצים ועצמאיות. לדוגמה: "לעדכן את כל קבצי הטסט לפורמט חדש", "להוסיף error handling ל-3 מודולים", "לכתוב תיעוד ל-4 endpoints". שמרו את הרשימה — תשתמשו בה בתרגילים.
איך fleet עובד — מאחורי הקלעים
כשאתם כותבים /fleet לפני הפרומפט, Copilot CLI לא פשוט "מריץ מהר יותר". מופעל תהליך מסודר של 4 שלבים שמנוהל על ידי Orchestrator (מתזמר) — סוכן ראשי שלא כותב קוד בעצמו, אלא מנהל את הצוות:
שלב 1: ניתוח הפרומפט
ה-Orchestrator קורא את הפרומפט שלכם ומחליט: האם המשימה הזו ניתנת לפירוק? אם כתבתם "תתקן את הבאג בקובץ X" — אין מה לפרק, וfleet ירוץ כמו סוכן רגיל. אם כתבתם "תעדכן 4 מודולים" — ה-Orchestrator מזהה שזה ניתן לפיצול.
כלל מפתח: ככל שהפרומפט שלכם יותר ספציפי ומפורט, כך ה-Orchestrator מסוגל לפרק טוב יותר. פרומפט כללי כמו "תשפר את הקוד" יגרום לריצה סדרתית — כי ה-Orchestrator לא יכול לזהות חלקים עצמאיים.
שלב 2: פירוק וזיהוי תלויות
ה-Orchestrator מחלק את המשימה לwork items (יחידות עבודה) ובונה גרף תלויות (Dependency Graph). לכל work item הוא מגדיר:
- מה בדיוק צריך לעשות
- אילו קבצים מעורבים
- האם הוא תלוי ב-work item אחר (ואם כן — באיזה)
Work items עצמאיים מסומנים כ"מוכנים לשיגור". Work items תלויים נכנסים לתור המתנה.
שלב 3: שיגור מקבילי
ה-Orchestrator משגר sub-agents (סוכני משנה) — כל אחד מקבל work item אחד. הנקודה החשובה: כל sub-agent מקבל context window נפרד ומבודד. הוא לא רואה את מה שה-sub-agents האחרים עושים. זה כמו 4 מפתחים שכל אחד יושב בחדר נפרד עם מפרט ברור.
ההפרדה הזו היא גם יתרון וגם מגבלה:
- יתרון: אין התנגשויות context — כל sub-agent ממוקד במשימה שלו בלי רעש
- מגבלה: sub-agent לא יכול "לשאול" sub-agent אחר שאלה. אם יש תלות — זה חייב להיות דרך ה-Orchestrator
שלב 4: מיזוג תוצאות
ה-Orchestrator עושה polling — בודק כל כמה שניות אם sub-agents סיימו. כשכל ה-sub-agents של הגל הנוכחי מסיימים:
- אם יש עוד גל (work items שהמתינו לתלויות) — הוא משגר את הגל הבא
- אם הכל סיים — הוא ממזג את התוצאות לתוצאה אחודה ומציג לכם את הסיכום
המיזוג הוא החלק הרגיש ביותר. ה-Orchestrator צריך לחבר שינויים מכמה sub-agents לתוצאה אחת קוהרנטית. ברוב המקרים, כשה-sub-agents עבדו על קבצים שונים — זה פשוט: כל sub-agent שינה קבצים שלו, ואין התנגשות. אבל אם שני sub-agents נגעו באותו קובץ (למשל — שניהם הוסיפו exports ל-index.ts) — ייתכנו merge conflicts. ה-Orchestrator ינסה לפתור אותם, אבל לא תמיד יצליח.
למה context isolation חשוב: כל sub-agent מקבל context window נפרד — הוא לא רואה את הקבצים ששאר ה-sub-agents עובדים עליהם, ולא יודע מה השתנה מחוץ ל-scope שלו. זה מה שמאפשר parallelism אמיתי (אין "ריצה" על shared state), אבל גם מה שיוצר סיכון: שני sub-agents יכולים לקבל החלטות סותרות אם לא נתתם להם הנחיות ברורות. למשל — אם ביקשתם "add error handling" בלי לציין איך, כל sub-agent עלול ליצור מנגנון error שונה.
הדרך הטובה ביותר להבטיח עקביות בין sub-agents: ציינו reference file. כתבו בפרומפט "Use the patterns from src/shared/error-handler.ts as reference." כל sub-agent יקרא את הקובץ הזה וישתמש באותם patterns — גם בלי לדעת מה ה-sub-agents האחרים עושים.
חשבו על המשימה האחרונה שעבדתם עליה עם Copilot CLI. האם היא הייתה ניתנת לפירוק ל-2+ חלקים עצמאיים? אם כן — כתבו ביום שורה אחת: "X חלקים עצמאיים: [רשימה]". אם לא — למה לא?
הפעלת /fleet — מהלכה למעשה
הסינטקס בסיסי — מוסיפים /fleet לפני הפרומפט:
/fleet [הפרומפט שלכם כאן]
אבל ההבדל בין fleet שעובד מעולה לבין fleet שרץ סדרתי ולא עוזר — הוא באיכות הפרומפט. הנה ההבדלים:
פרומפט חלש (fleet לא יצליח לפרק)
/fleet Fix all the issues in the project
למה זה נכשל: ה-Orchestrator לא יכול לזהות חלקים עצמאיים. "all the issues" זה כללי מדי. fleet יחזור לריצה סדרתית של סוכן בודד — בזבוז.
פרומפט טוב (fleet יפרק ביעילות)
/fleet Perform the following independent tasks:
1. Add input validation to src/api/users.ts — validate email, name length, password strength
2. Add input validation to src/api/products.ts — validate price range, SKU format, description length
3. Add input validation to src/api/orders.ts — validate order items, quantities, shipping address
4. Write unit tests for all 3 validators in tests/validators/
למה זה עובד: כל item ממופה לקבצים ספציפיים, כל item עצמאי, ויש deliverable ברור לכל אחד. ה-Orchestrator יזהה ש-items 1-3 יכולים לרוץ במקביל, ו-item 4 צריך לחכות שהם יסיימו (כי הטסטים תלויים בקוד שנכתב).
מה לצפות אחרי ההרצה
כשfleet מתחיל לרוץ, תראו בטרמינל הודעה שמציינת כמה sub-agents נוצרו ומה כל אחד עושה. למשל:
Fleet: Decomposing task into 4 subtasks...
[1/4] Adding validation to users.ts — dispatching sub-agent
[2/4] Adding validation to products.ts — dispatching sub-agent
[3/4] Adding validation to orders.ts — dispatching sub-agent
[4/4] Writing tests — waiting for 1-3 to complete
ברגע שה-sub-agents הראשונים יוצאים, תראו התקדמות ב-output. כשכולם מסיימים, fleet מציג סיכום של מה בוצע, אילו קבצים שונו, ואם הייתה בעיה. תמיד בדקו את הסיכום — אם sub-agent נכשל, fleet יציין את זה.
מה קורה כשfleet לא מצליח לפרק?
אם הפרומפט שלכם כללי מדי, ה-Orchestrator לא יזהה חלקים עצמאיים. במקרה הזה, fleet פשוט ירוץ כסוכן רגיל — בלי parallelism. לא תקבלו שגיאה, אלא ריצה סדרתית רגילה. זה לא נורא — אבל זה מבזבז את ה-overhead של fleet (ניתוח הפרומפט) בלי תועלת. אם אתם רואים שfleet רץ סדרתי — תעצרו, שפרו את הפרומפט, ונסו שוב.
מה קורה: כותבים "/fleet Improve the codebase" בלי פירוט.
למה זה מפתה: fleet אמור "לפרק אוטומטית" — אז למה שאני אפרק בעצמי?
מה לעשות במקום: פרטו: אילו קבצים, מה בדיוק לעשות בכל אחד, ומה התוצאה הצפויה. ה-Orchestrator מצוין בניהול — אבל הוא צריך מכם הנחיות ברורות, בדיוק כמו Tech Lead שנותן brief לצוות.
אנטומיה של fleet prompt מוצלח
בואו ננתח את הפרומפט הטוב שראינו למעלה ונבין למה כל חלק חשוב:
- "Perform the following independent tasks:" — המילה "independent" היא סיגנל ל-Orchestrator שאפשר להקביל. בלי המילה הזו, הוא ינסה לנחש
- מספור (1. 2. 3. 4.) — מספור ברור מאפשר ל-Orchestrator לזהות כל item כ-work unit נפרד
- שם קובץ מלא (src/api/users.ts) — ה-Orchestrator יודע בדיוק אילו קבצים כל sub-agent צריך. בלי שמות — הוא חייב לחפש, מה שמוסיף זמן ו-overhead
- תיאור ספציפי ("validate email, name length, password strength") — כל sub-agent יודע בדיוק מה לעשות, בלי לנחש
- "(depends on 1,2,3)" — תלות מפורשת שמונעת מ-item 4 לצאת לפני שהאחרים סיימו
5 כללים לכתיבת fleet prompt מנצח
| כלל | דוגמה טובה | דוגמה גרועה |
|---|---|---|
| ציינו קבצים ספציפיים | src/api/users.ts |
"the API files" |
| הגדירו deliverable לכל item | "Add validation function that returns errors array" | "Improve validation" |
| סמנו תלויות אם יש | "Item 4 depends on items 1-3" | (לא מציינים שום תלות) |
| הפרידו לנקודות ממוספרות | "1. ... 2. ... 3. ..." | פסקה אחת ארוכה |
| ציינו reference files | "Use patterns from src/shared/" | "Follow best practices" |
קחו אחת מ-3 המשימות שרשמתם קודם. כתבו לה /fleet prompt לפי 5 הכללים — עם קבצים ספציפיים, deliverables, ותלויות. אל תריצו עדיין — רק כתבו את הפרומפט בקובץ טקסט.
עכשיו הריצו את הפרומפט שכתבתם: פתחו טרמינל בתיקיית הפרויקט, הקלידו copilot (או ghcs), הדביקו את הפרומפט עם /fleet בהתחלה, ולחצו Enter. צפו ב-Orchestrator שמפרק את המשימה — כמה sub-agents הוא יצר? האם הוא זיהה תלויות?
זמן משוער: 15 דקות
מה תייצרו: הרצת fleet מוצלחת עם 2+ sub-agents שעובדים במקביל.
- בחרו פרויקט עם 3-4 קבצים שצריכים אותו סוג שינוי (למשל: הוספת JSDoc, מעבר ל-async/await, תוספת error handling)
- כתבו fleet prompt עם קבצים ממוספרים ו-deliverable לכל אחד
- הריצו:
/fleet [הפרומפט שלכם] - צפו ב-output — כמה sub-agents נוצרו? מה כל אחד עושה?
- כשהפעולה מסתיימת, בדקו: האם כל הקבצים עודכנו? האם יש עקביות בין הקבצים?
- הריצו
git diffובדקו את השינויים — תעדו: כמה זמן לקח fleet, ואיך זה משתווה להערכה שלכם של עבודה סדרתית
תוצאה צפויה: שינויים עקביים ב-3-4 קבצים, שנעשו במקביל, עם זמן קצר משמעותית ממה שהייתם עושים סדרתית.
תלויות בין משימות — מקביל vs סדרתי
לא כל משימה ניתנת להרצה מקבילית. ה-Orchestrator חייב להבין מה תלוי במה כדי להחליט מה רץ ביחד ומה מחכה. הנה שני דפוסים קלאסיים:
דפוס 1: מקביל מלא (Fully Parallel)
כל המשימות עצמאיות — אין תלויות ביניהן:
/fleet
1. Add error handling to src/services/auth.ts
2. Add error handling to src/services/payment.ts
3. Add error handling to src/services/notification.ts
4. Add error handling to src/services/search.ts
כאן כל 4 המשימות רצות בו-זמנית. שום אחת לא תלויה באחרת. זה התרחיש האידיאלי ל-fleet.
דפוס 2: גלים (Waves / Staged)
חלק מהמשימות תלויות בתוצאות של אחרות:
/fleet
1. Create shared error types in src/types/errors.ts
2. Create shared validation utils in src/utils/validation.ts
3. Refactor src/api/users.ts to use the new error types and validation (depends on 1,2)
4. Refactor src/api/products.ts to use the new error types and validation (depends on 1,2)
5. Update tests in tests/ for all changed files (depends on 3,4)
ה-Orchestrator יזהה 3 גלים:
- גל 1: items 1 + 2 (במקביל — שניהם עצמאיים)
- גל 2: items 3 + 4 (במקביל — שניהם תלויים ב-1+2, אבל עצמאיים ביניהם)
- גל 3: item 5 (מחכה ש-3+4 יסיימו)
טיפ מעשי: אם אתם יודעים שיש תלויות, ציינו אותן במפורש בפרומפט. כתבו "(depends on 1,2)" או "after items 1-3 are done". ה-Orchestrator מנסה לזהות תלויות לבד, אבל הוא יעשה עבודה טובה יותר אם אתם עוזרים לו.
דפוס 3: סדרתי מלא (Fully Sequential)
לפעמים אין שום parallelism. כל שלב תלוי בשלב הקודם:
# לא מתאים ל-fleet!
1. Create database schema migration
2. Update ORM models to match new schema (depends on 1)
3. Update API routes to use new models (depends on 2)
4. Update frontend to match new API (depends on 3)
במקרה כזה, אל תשתמשו ב-fleet. ה-Orchestrator ירוץ סדרתי (גל 1 = item 1, גל 2 = item 2, וכו') — ותשלמו את ה-overhead של fleet בלי שום parallelism. עדיף סוכן בודד שיעבוד ברצף.
איך לזהות תלויות בפרויקט שלכם
שאלו את עצמכם 3 שאלות על כל זוג items:
- האם item B קורא קובץ ש-item A כותב? אם כן — B תלוי ב-A.
- האם item B מייבא (import) מקובץ ש-item A משנה? אם כן — B תלוי ב-A.
- האם ניתן להריץ את item B גם אם item A לא קיים? אם כן — הם עצמאיים.
אם כל שני items עוברים את שאלה 3 בהצלחה — הם מתאימים ל-parallelism. אם לא — סמנו תלות.
חשבו על משימה עם תלויות: כתבו 4-5 items שיש ביניהם גם חלקים מקביליים וגם סדרתיים. סמנו ליד כל item: "🟢 עצמאי" או "🟡 תלוי ב-X". זה יעזור לכם לכתוב fleet prompts טובים יותר.
מה קורה: כותבים "/fleet Refactor the data model, then update the API to use it, then fix the tests" — בלי לציין תלויות.
למה זה מפתה: fleet אמור "לזהות אוטומטית" — אז למה להתאמץ?
מה לעשות במקום: ציינו תלויות במפורש: "(depends on 1)", "(after 1,2 complete)". ה-Orchestrator טוב — אבל לא מושלם. אם הוא לא יזהה תלות, שני sub-agents יעבדו על קבצים שמשפיעים אחד על השני, ותקבלו merge conflicts או קוד שבור.
ניטור: /tasks ומעקב אחרי fleet
אחרי שfleet יוצא לדרך, אתם לא צריכים לשבת ולחכות בחושך. הפקודה /tasks היא חלון הבקרה שלכם — היא מציגה את כל המשימות הרקע בסשן הנוכחי, כולל כל sub-agent שfleet יצר.
איך להשתמש ב-/tasks
פשוט מקלידים /tasks בזמן שfleet רץ. נפתח דיאלוג עם רשימת כל המשימות:
| מקש | פעולה |
|---|---|
↑ ↓ |
ניווט בין משימות ברשימה |
Enter |
צפייה בפרטים של sub-agent — מה הוא עושה עכשיו, אילו קבצים שינה |
k |
Kill — עצירת sub-agent תקוע או שגוי |
r |
Remove — הסרת משימות שהסתיימו או נהרגו מהרשימה |
מתי להתערב
- Sub-agent תקוע: אם sub-agent רץ כבר 10+ דקות על משימה שאמורה לקחת 2, לחצו
kלהרוג אותו. Fleet ימשיך עם שאר המשימות - Sub-agent בלולאה: אם אתם רואים ב-details שהוא חוזר על אותה פעולה שוב ושוב — kill ותחשבו על ניסוח אחר למשימה הזו. לולאות קורות בדרך כלל כשהמשימה לא ברורה מספיק
- Sub-agent נכשל: אם sub-agent קיבל שגיאה ועצר, fleet ימשיך עם שאר המשימות. תוכלו לטפל במשימה שנכשלה ידנית אחרי שfleet מסיים
- כל ה-sub-agents סיימו: fleet יציג סיכום אוטומטי. בדקו אותו — האם כל המשימות הצליחו? האם יש שינויים שנראים לא נכונים?
טיפ: תזמון /tasks
אין סיבה להריץ /tasks מיד — fleet צריך כמה שניות להפעיל את ה-sub-agents. המלצה: חכו 10-15 שניות אחרי שfleet מתחיל, ואז הריצו /tasks. ככה תראו את כל ה-sub-agents כשהם כבר בפעולה, ולא רשימה ריקה.
אפשר להריץ /tasks כמה פעמים במהלך fleet — זה לא מפריע לריצה. כל פעם תראו סטטוס מעודכן. אם sub-agent סיים, הסטטוס שלו יעבור מ-"running" ל-"completed".
Background tasks (4 total):
[1] ✅ Add validation to users.ts — completed (2m 14s)
[2] 🔄 Add validation to products.ts — running (1m 48s)
[3] ✅ Add validation to orders.ts — completed (1m 52s)
[4] ⏳ Write tests for validators — waiting (depends on 1,2,3)
בדוגמה הזו, שני sub-agents סיימו, אחד עדיין רץ, ואחד מחכה שהשלושה הראשונים יסיימו. ברגע ש-agent 2 יסיים — agent 4 ייצא לדרך אוטומטית.
בפעם הבאה שאתם מריצים /fleet, הקלידו /tasks אחרי 15 שניות. נווטו ברשימה, לחצו Enter על אחד מה-sub-agents כדי לראות פרטים. תעדו לעצמכם: כמה sub-agents נוצרו ומה הסטטוס של כל אחד. חכו עד שfleet מסיים ובדקו שכל המשימות בסטטוס "completed".
עלות fleet — חישוב premium requests מראש
זה אולי הנושא הכי חשוב בפרק הזה, וגם הכי מוזנח: fleet עולה יותר מסוכן בודד. לא "קצת יותר" — אלא כפולות. כל sub-agent הוא מופע עצמאי שצורך premium requests בנפרד.
הנוסחה
עלות fleet = סכום (אינטראקציות של כל sub-agent × מכפיל המודל)
בואו נראה דוגמה מעשית:
| תרחיש | סוכן בודד | fleet (3 sub-agents) |
|---|---|---|
| מודל: GPT-4.1 (0x = חינם) | 10 אינטראקציות × 0 = 0 credits | 3 × ~5 אינטראקציות × 0 = 0 credits |
| מודל: Claude Sonnet (0.5x) | 10 × 0.5 = 5 credits | 3 × ~5 × 0.5 = 7.5 credits |
| מודל: Claude Opus (3x) | 10 × 3 = 30 credits | 3 × ~5 × 3 = 45 credits |
| מודל: o3-pro (30x) | 10 × 30 = 300 credits | 3 × ~5 × 30 = 450 credits |
שימו לב: fleet עם 3 sub-agents לא בהכרח עולה 3 פעמים יותר, אבל הוא כמעט תמיד עולה יותר מסוכן בודד. הסיבה: כל sub-agent מתחיל מ-context ריק, כך שהוא צריך כמה אינטראקציות ראשוניות "להבין את הסביבה" — overhead שלא קיים בסוכן בודד שכבר מכיר את הפרויקט.
חישוב מעשי: כמה credits ל-fleet?
בואו נחשב דוגמה ריאלית. נניח שיש לכם משימה שדורשת refactoring של 4 מודולים:
- סוכן בודד: יעבוד סדרתית, ~10 אינטראקציות LLM (קריאת קובץ, תכנון, כתיבה, בדיקה — לכל מודול). סה"כ: 10 אינטראקציות
- fleet עם 4 sub-agents: כל sub-agent יעשה ~4-5 אינטראקציות (קריאת הקובץ שלו, תכנון, כתיבה, בדיקה). בנוסף ה-Orchestrator עושה ~2-3 אינטראקציות (ניתוח, שיגור, מיזוג). סה"כ: 4×5 + 3 = ~23 אינטראקציות
עם מודל 0x (חינם) — שני המקרים עולים 0 credits. fleet הוא כלי חינמי בפועל.
עם Claude Sonnet (0.5x): סוכן בודד = 10×0.5 = 5 credits. Fleet = 23×0.5 = 11.5 credits. fleet עולה כפול.
עם Opus (3x): סוכן בודד = 10×3 = 30 credits. Fleet = 23×3 = 69 credits. fleet עולה 2.3 פעמים יותר.
המסקנה ברורה: fleet + מודל 0x = win-win. fleet + מודל יקר = חישוב עלות-תועלת.
מתי העלות המוגברת מוצדקת?
התשובה תלויה בזמן שלכם. אם fleet חוסך שעה ועולה 20 credits נוספים — ושעת עבודה שלכם שווה יותר מ-$0.80 (20 × $0.04) — fleet מוצדק מבחינה כלכלית. ברוב המקרים, הזמן שfleet חוסך שווה הרבה יותר מהעלות הנוספת. אבל אם אתם קרובים למגבלת ה-credits החודשית ולא רוצים להיכנס ל-overage — כדאי לשקול.
כלל האצבע המרכזי: הריצו fleet עם מודלים 0x (חינמיים) כמו GPT-4.1. ב-0x, fleet עולה אפס — לא משנה כמה sub-agents רצים. זה הופך את fleet לכלי פרודוקטיביות ללא עלות. שמרו את המודלים היקרים (Opus, o3) לסוכן בודד על משימות שדורשות עומק.
| שאלה | כן → fleet | לא → סוכן בודד |
|---|---|---|
| יש 3+ חלקים עצמאיים? | ✔ fleet יפרק ויקביל | ✖ אין מה לפרק |
| המודל הנבחר הוא 0x (חינם)? | ✔ fleet בחינם — תמיד שווה | ⚠ חישוב עלות מול זמן |
| הזמן שייחסך > 30 דקות? | ✔ עלות Premium מוצדקת | ✖ חיסכון לא מצדיק |
| אין קבצים משותפים? | ✔ אין סיכון merge conflicts | ✖ סיכון גבוה לקונפליקטים |
כלל אצבע: אם אפילו תשובה אחת היא "לא" — שקלו סוכן בודד. אם כל התשובות "כן" — fleet בהחלט.
Overage — מה קורה כשנגמרים הקרדיטים?
כל מנוי Copilot כולל מספר קבוע של premium requests לחודש (למשל: Pro = 300). כשנגמרים, כל request נוסף עולה $0.04. עכשיו תחשבו: fleet של 4 sub-agents עם Claude Opus (3x) שצורך ~70 credits בהפעלה אחת — אם אתם כבר ב-overage, זה $2.80 על הפעלה אחת. לא הרבה — אבל אם אתם מריצים fleet 5 פעמים ביום, זה $14 ביום, $280 בחודש עבודה. תמיד בדקו כמה credits נשארו לפני fleet עם מודל יקר.
מצד שני, fleet עם GPT-4.1 (0x) — אפס עלות, אפס overage, ללא הגבלה. לרוב המשימות (refactoring, docs, tests) GPT-4.1 מספיק. שמרו את Opus ו-Sonnet לסוכן בודד על משימות שדורשות הבנה עמוקה.
חשבו על fleet prompt שכתבתם או שתכתבו. חשבו: כמה sub-agents צפויים? איזה מודל תשתמשו? חשבו את העלות המשוערת: (מספר sub-agents) × (~5 אינטראקציות) × (מכפיל מודל). רשמו את המספר — האם זה שווה לכם? אם יוצא מעל 20 credits — שקלו מודל 0x במקום.
מתי fleet מושלם — 5 תרחישים אידיאליים
fleet מבריק כשהמשימה שלכם מתפצלת באופן טבעי לחלקים עצמאיים עם קבצים נפרדים. הנה 5 תרחישים שבהם fleet חוסך הכי הרבה זמן. לכל תרחיש — פרומפט לדוגמה שאתם יכולים להתאים לפרויקט שלכם:
1. Refactoring מרובה קבצים
3-10 קבצים שצריכים את אותו סוג שינוי: מעבר ל-async/await, הוספת types, שינוי import style.
/fleet Refactor the following services from class-based to functional:
1. src/services/user-service.ts
2. src/services/order-service.ts
3. src/services/payment-service.ts
Use arrow functions, remove 'this' references, export individual functions.
2. יצירת Test Suite
כתיבת טסטים ל-N מודולים שכל אחד עצמאי:
/fleet Write comprehensive unit tests for each module:
1. tests/auth.test.ts for src/auth/ — test login, register, forgot-password
2. tests/cart.test.ts for src/cart/ — test add, remove, update quantity
3. tests/checkout.test.ts for src/checkout/ — test payment flow, validation
3. עדכון תיעוד
כתיבת/עדכון docs למספר components:
/fleet Update JSDoc documentation for all public functions in:
1. src/components/Button.tsx
2. src/components/Modal.tsx
3. src/components/Table.tsx
4. src/components/Form.tsx
Follow the documentation style in src/components/Input.tsx as reference.
4. Migration של dependencies
מעבר מספריה A לספריה B ב-N קבצים:
/fleet Migrate from moment.js to date-fns in all files:
1. src/utils/date-formatter.ts
2. src/components/DatePicker.tsx
3. src/api/reports.ts
4. src/hooks/useCountdown.ts
Replace all moment() calls with equivalent date-fns functions.
5. Feature חוצה שכבות
פיצ'ר שדורש שינויים ב-API + UI + tests כשכל שכבה עצמאית:
/fleet Implement dark mode support:
1. Add theme types and context in src/theme/
2. Update all CSS variables in src/styles/variables.css
3. Add toggle component in src/components/ThemeToggle.tsx
4. Write tests for theme switching in tests/theme.test.ts (depends on 1,3)
מה משותף ל-5 התרחישים?
שימו לב לדפוס: בכל 5 התרחישים יש הפרדה ברורה של קבצים. כל sub-agent עובד על קובץ/תיקייה אחרים, ואין חפיפה. זה הסוד של fleet: ככל שהחלוקה נקייה יותר — התוצאה טובה יותר. אם אתם יכולים להצביע על כל item ולומר "זה נוגע רק בקובץ X" — fleet יעבוד מצוין.
כלל האצבע: אם כל item בפרומפט ממופה ל-קובץ או תיקייה ייחודיים — fleet הוא הבחירה הנכונה. אם items חולקים קבצים — חשבו פעמיים.
מתוך 5 התרחישים למעלה, בחרו אחד שרלוונטי לפרויקט שלכם. התאימו את ה-prompt — שנו את שמות הקבצים ואת סוג השינוי. שמרו את ה-prompt לרשימת ה-deliverables שלכם — תשתמשו בו בתרגיל הבא.
מתי לא להשתמש ב-fleet — מלכודות נפוצות
fleet הוא לא "תמיד טוב יותר". יש מצבים שבהם fleet מזיק יותר מאשר עוזר:
❌ תרחיש 1: משימות סדרתיות
"תבנה את ה-database schema, אחר כך ה-API, אחר כך ה-UI." — כל שלב תלוי בקודם. fleet לא יוכל להקביל כלום. ה-Orchestrator ירוץ סדרתי ותשלמו overhead מיותר. פתרון: סוכן בודד שעובד ברצף — אותה תוצאה, פחות overhead.
❌ תרחיש 2: קוד מקושר (Tightly Coupled)
שני קבצים שמייבאים אחד מהשני, משתמשים באותם types, ותלויים בהתנהגות משותפת. למשל: user-service.ts ו-auth-service.ts ששניהם מייבאים מ-types/user.ts ומשתמשים זה בזה. אם שני sub-agents ישנו אותם במקביל — כל אחד עלול לשנות את ה-types בצורה שונה, ותקבלו קוד שלא מתקמפל. פתרון: סוכן בודד שרואה את כל התמונה.
❌ תרחיש 3: קבצים משותפים
אם כמה sub-agents נוגעים באותו קובץ (למשל — כולם צריכים לעדכן את index.ts כי הם מוסיפים exports) — ה-Orchestrator ינסה למזג, אבל הסיכוי לקונפליקט גבוה. דמיינו 3 sub-agents שכל אחד מוסיף שורה שונה לאותו קובץ — ה-merge עלול ליצור duplicate imports, missing exports, או סדר שגוי. פתרון: הוציאו את השינוי בקובץ המשותף ל-item נפרד שרץ אחרי כולם.
❌ תרחיש 4: משימה קטנה
Fleet מוסיף overhead: ניתוח, פירוק, שיגור, polling, מיזוג. ה-overhead הזה לוקח 30-60 שניות. אם המשימה כולה לוקחת 2 דקות עם סוכן בודד — fleet יהיה איטי יותר בגלל ה-overhead. כלל אצבע: fleet משתלם כשהמשימה הסדרתית לוקחת 10+ דקות. מתחת לזה — סוכן רגיל.
❌ תרחיש 5: תקציב קרדיטים מוגבל
אם נשארו לכם 20 premium requests החודש ואתם חושבים על fleet עם מודל 1x — fleet של 4 sub-agents עלול "לאכול" 20-30 credits במכה אחת. עדיף סוכן בודד עם מודל 0x שלא צורך credits כלל. זכרו: overage עולה $0.04 לכל credit. fleet של 4 sub-agents עם Opus (3x) שנכנס ל-overage עלול לעלות כמה דולרים בהפעלה אחת.
עברו על הרשימה. אם אפילו אחד מהתנאים מתקיים — אל תשתמשו ב-fleet:
- ❌ המשימה סדרתית מטבעה (שלב B תלוי ב-A)
- ❌ כמה sub-agents ייגעו באותו קובץ
- ❌ המשימה כולה לוקחת פחות מ-5 דקות
- ❌ הקבצים מייבאים אחד מהשני (tightly coupled)
- ❌ אתם על מודל יקר (3x+) ותקציב מוגבל
אם כל התנאים לא מתקיימים — fleet הוא הבחירה הנכונה.
מה קורה: fleet מסיים, אתם עושים git add . ו-git commit בלי לבדוק.
למה זה מפתה: fleet הצליח, אז בטח הכל טוב, נכון?
מה לעשות במקום: תמיד הריצו git diff אחרי fleet. בדקו שהשינויים הגיוניים, שאין קונפליקטים, ושה-sub-agents לא עשו שינויים סותרים. fleet ממזג אוטומטית — אבל הוא לא תמיד מזהה שינויים שסותרים מבחינה לוגית (למשל: שני sub-agents שינו את אותו type definition בצורות שונות).
חשבו על הפרויקט שלכם. רשמו 3 משימות שהן לא מתאימות ל-fleet — וליד כל אחת כתבו למה (תלויות? קבצים משותפים? קטנה מדי?).
סוכנים מותאמים — .agent.md
עד עכשיו השתמשנו בסוכנים המובנים של Copilot CLI (Explore, Task, Plan, Code-review — מפרק 6). אבל מה אם אתם רוצים סוכן שמתמחה בדיוק במה שאתם צריכים? סוכן שיודע את ה-conventions של הפרויקט שלכם, משתמש רק בכלים מסוימים, ועובד עם מודל ספציפי?
זה בדיוק מה ש-Custom Agents (סוכנים מותאמים) עושים. הם מוגדרים בקבצי .agent.md — קבצי Markdown עם YAML frontmatter שמגדיר את הפרופיל של הסוכן.
מבנה קובץ .agent.md
---
name: docs-writer
description: Generates and updates documentation following project conventions
model: gpt-4.1
tools:
- read
- edit
- search
---
# Documentation Writer Agent
You are a documentation specialist for this project.
## Rules
- Always follow JSDoc format for TypeScript files
- Include @param, @returns, and @example for every public function
- Use Hebrew for user-facing docs, English for code docs
- Never modify source code — only documentation
מאפייני YAML frontmatter
| מאפיין | חובה? | מה עושה |
|---|---|---|
name |
כן | שם ייחודי לסוכן — ככה מפעילים אותו (/agent docs-writer) |
description |
כן | תיאור קצר — Copilot משתמש בו כדי להחליט מתי להפעיל את הסוכן אוטומטית |
model |
לא | מודל ספציפי (gpt-4.1, claude-sonnet, gemini-pro). אם לא מצוין — נבחר אוטומטית |
tools |
לא | רשימת כלים: ["read", "edit", "search"] או ["*"] לכל הכלים |
mcp-servers |
לא | שרתי MCP שהסוכן יכול לגשת אליהם (מפרק 5) |
איפה שמים את הקובץ?
| מיקום | היקף | מתי להשתמש |
|---|---|---|
.github/agents/ |
רמת ריפוזיטורי | סוכנים ספציפיים לפרויקט — משותפים לכל הצוות |
{org}/.github/agents/ |
רמת ארגון | סוכנים משותפים לכל הריפוזיטוריים בארגון |
~/.copilot/agents/ |
רמת משתמש | סוכנים אישיים שעובדים בכל פרויקט |
סדר עדיפויות: קובץ ברמת ריפוזיטורי דורס קובץ באותו שם ברמת ארגון או משתמש. זה מאפשר לפרויקט ספציפי "לדרוס" סוכן ארגוני עם גרסה מותאמת. למשל: הארגון הגדיר סוכן reviewer עם כללים כלליים, אבל הפרויקט שלכם צריך כללים ספציפיים ל-TypeScript — צרו .github/agents/reviewer.agent.md בריפוזיטורי ותדרסו את הגרסה הארגונית.
3 סוכנים מותאמים שכל צוות צריך
הנה 3 תבניות שמכסות את רוב הצרכים:
סוכן 1: Test Generator
---
name: test-generator
description: Generates comprehensive unit and integration tests
model: gpt-4.1
tools:
- read
- edit
- search
---
# Test Generator Agent
## Rules
- Use the project's existing test framework (detect from package.json)
- Follow AAA pattern: Arrange, Act, Assert
- Include edge cases: null, undefined, empty string, boundary values
- Mock external dependencies — never call real APIs
- Aim for 80%+ code coverage on the target file
- Name test files: [original-name].test.ts
סוכן 2: Security Reviewer
---
name: security-review
description: Reviews code for security vulnerabilities and best practices
model: claude-sonnet-4
tools:
- read
- search
---
# Security Review Agent
## Focus Areas
- SQL injection, XSS, CSRF vulnerabilities
- Hardcoded secrets or API keys
- Missing input validation
- Insecure dependencies (check package.json)
- Authentication and authorization gaps
- OWASP Top 10 compliance
סוכן 3: Refactorer
---
name: refactorer
description: Refactors code for better readability and maintainability
model: gpt-4.1
tools:
- read
- edit
- search
---
# Refactoring Agent
## Principles
- Extract repeated logic into shared utilities
- Replace magic numbers with named constants
- Simplify nested conditionals with early returns
- Ensure all changes pass existing tests
- Never change public API signatures without explicit approval
הפעלת סוכן מותאם
שתי דרכים:
- מפורשת:
/agent docs-writer— מפעיל את הסוכן ישירות. אתם שולטים מתי ועל מה הוא עובד - אוטומטית: Copilot קורא את ה-
descriptionומפעיל את הסוכן כשהמשימה מתאימה. למשל, אם תבקשו "update the docs" ויש סוכן עם description של "documentation" — הוא יופעל אוטומטית. זה עובד כי Copilot משווה את הפרומפט שלכם ל-description של כל סוכן רשום ומחליט איזה מתאים
סוכנים מותאמים + fleet = קומבינציה חזקה
הנה תרחיש מתקדם: אתם יכולים ליצור כמה סוכנים מותאמים ואז להשתמש ב-fleet כדי להפעיל אותם במקביל על חלקים שונים של הפרויקט. למשל:
/fleet
1. /agent test-generator — write tests for src/api/users.ts
2. /agent test-generator — write tests for src/api/products.ts
3. /agent security-review — review src/api/auth.ts
4. /agent docs-writer — update docs for src/api/
כל sub-agent יקבל את ההנחיות של הסוכן המותאם הרלוונטי — כך שה-test-generator יכתוב טסטים לפי ה-conventions שהגדרתם, ה-security-reviewer יחפש לפי הכללים שלכם, וכו'. זו רמה גבוהה של אוטומציה שמשלבת customization (מה הסוכן עושה) עם parallelism (כמה סוכנים עובדים בו-זמנית).
צרו סוכן מותאם ראשון: צרו תיקייה .github/agents/ בפרויקט שלכם, ובתוכה קובץ reviewer.agent.md. כתבו frontmatter עם name: reviewer, description: Reviews code for security and performance, model: gpt-4.1, tools: ["read", "search"]. בגוף הקובץ כתבו 3-4 כללים שחשובים לכם ב-code review. שמרו והריצו: /agent reviewer על קובץ בפרויקט.
זמן משוער: 15 דקות
מה תייצרו: קובץ .agent.md עם שם, כלים, מודל, ו-MCP server (אופציונלי).
- החליטו על תפקיד: test-writer, security-reviewer, docs-generator, refactorer, או תפקיד מותאם
- צרו קובץ
.github/agents/[name].agent.md - כתבו YAML frontmatter:
name,description,model(בחרו מודל מתאים — 0x לרוב המשימות),tools - בגוף הקובץ: כתבו 5+ כללים ספציפיים שמגדירים איך הסוכן עובד
- הריצו:
/agent [name]על קובץ בפרויקט - בדקו: האם הסוכן פועל לפי הכללים? האם הוא משתמש במודל שהגדרתם?
תוצאה צפויה: סוכן מותאם שעובד לפי הכללים שהגדרתם, עם המודל והכלים הנכונים.
כשאתם מגדירים model: claude-sonnet-4 בסוכן, כל הפעלה של הסוכן תשתמש במודל הזה — גם אם מודל ברירת המחדל שלכם הוא GPT-4.1 (חינם). זה אומר שסוכן מותאם עם מודל 1x יכלה premium requests גם אם אתם לא שמים לב. כלל אצבע: השתמשו ב-model: gpt-4.1 בסוכנים מותאמים אלא אם אתם באמת צריכים מודל חזק יותר.
השוואה: /fleet (CLI) מול runSubagent (VS Code)
שמעתם על runSubagent בפרק 2 (ארגז הכלים). עכשיו בואו נשווה אותו ל-/fleet — שניהם מפעילים sub-agents, אבל בצורה שונה מאוד. ההבדל המרכזי: /fleet הוא כלי CLI שרץ מקבילית, בעוד runSubagent הוא כלי VS Code שרץ סדרתית. למה הם עובדים שונה? כי ב-VS Code, המודל לא יכול לדעת בוודאות שמשימות עצמאיות — אז הוא שומר על צד שמרני ומריץ אחת אחרי השנייה.
| מאפיין | /fleet (CLI) |
runSubagent (VS Code) |
|---|---|---|
| סביבה | Copilot CLI (טרמינל) | VS Code (IDE) |
| ריצה | ⚡ מקבילית — כל ה-sub-agents רצים בו-זמנית | → סדרתית — sub-agent אחד בכל פעם |
| ניהול | Orchestrator אוטומטי — מפרק, משגר, ממזג | המודל מחליט מתי להפעיל sub-agent |
| Context | כל sub-agent מקבל context מבודד | sub-agent מקבל context מבודד + הוראות מהסוכן הראשי |
| ניטור | /tasks — דיאלוג עם סטטוס כל agent |
output בחלון הצ'אט |
| עלות | גבוהה יותר (כל agent = premium requests עצמאיות) | נמוכה יותר (ריצה סדרתית = פחות context overhead) |
| שימוש אידיאלי | משימות גדולות עם parallelism טבעי | בידוד מיקוד — "תחקור את הנושא הזה בנפרד" |
דוגמה מעשית: אותה משימה בשתי דרכים
נניח שאתם רוצים לעשות code review ל-3 קבצים:
עם /fleet (CLI):
/fleet Review these 3 files for security issues:
1. src/api/auth.ts — focus on token handling
2. src/api/payment.ts — focus on input validation
3. src/api/admin.ts — focus on authorization checks
fleet ישגר 3 sub-agents שיעבדו במקביל. כל אחד סוקר קובץ אחד. תוצאה תוך 2-3 דקות.
עם runSubagent (VS Code):
ב-VS Code, תבקשו מ-Copilot: "Review these 3 files for security issues." הסוכן הראשי ישתמש ב-runSubagent כדי לשלוח כל קובץ ל-sub-agent נפרד — אבל אחד אחרי השני. סדרתית. תוצאה תוך 6-9 דקות.
התוצאה זהה, הזמן שונה. fleet = 3 דקות, runSubagent = 8 דקות. אבל אם אתם כבר עובדים ב-VS Code ולא רוצים לעבור לטרמינל — runSubagent עדיין מועיל כי הוא מבודד את ה-review מהשיחה הראשית.
יש בקשה פתוחה (Issue #274630) להוסיף תמיכה ב-parallel runSubagent ב-VS Code. אם ומתי זה ייושם — runSubagent יהיה כמו fleet בתוך ה-IDE. עד אז, fleet ב-CLI הוא הדרך היחידה לריצה מקבילית אמיתית.
- צריך מהירות על משימה מקבילית? →
/fleet - צריך בידוד למשימה ספציפית? →
runSubagent - עובדים בטרמינל? →
/fleet - עובדים ב-VS Code? →
runSubagent(fleet לא זמין ב-IDE) - תקציב מוגבל? →
runSubagent(פחות premium requests) - משימה עם תלויות מורכבות? →
runSubagent(ריצה סדרתית = שליטה טובה יותר)
כלל אצבע: /fleet = צוות מקבילי, runSubagent = יועץ ממוקד.
מתי אין צורך ב-sub-agents בכלל?
לא כל משימה צריכה sub-agents. רוב העבודה היומיומית — כתיבת פיצ'ר, תיקון באג, שאלה על הקוד — מתאימה מצוין לסוכן רגיל (Agent Mode בבלי /fleet ובלי runSubagent). sub-agents, בין אם fleet ובין אם runSubagent, מתאימים למצבים ספציפיים:
- fleet: כשיש 3+ חלקים עצמאיים שאפשר לעשות בו-זמנית
- runSubagent: כשצריך בידוד — "תחקור את הנושא הזה בנפרד בלי לזהם את השיחה הראשית"
- סוכן רגיל: כל דבר אחר — וזה 80% מהעבודה
אל תרגישו שאתם "חייבים" להשתמש ב-fleet כל יום. fleet הוא כלי חזק למצבים ספציפיים — אבל סוכן רגיל הוא עדיין ברירת המחדל לרוב העבודה. כלל פשוט: אם אתם צריכים לחשוב יותר מ-10 שניות "אם fleet מתאים כאן" — כנראה שסוכן רגיל מספיק. fleet מתאים כשברור מיד שיש כמה חלקים עצמאיים. הכלי הנכון למשימה הנכונה — זה העיקרון שמנחה את כל הקורס הזה.
חשבו על 3 משימות שעשיתם השבוע. לכל אחת סמנו: /fleet, runSubagent, או "סוכן רגיל (בלי sub-agents)". השתמשו בטבלת ההשוואה למעלה כדי להחליט.
זמן משוער: 20 דקות
מה תייצרו: הרצת fleet מתועדת עם ניטור /tasks, בדיקת תוצאות, וחישוב עלות-תועלת.
- בחרו משימה מתאימה: refactoring, tests, docs, או migration — עם 3+ חלקים עצמאיים. בדקו: האם הקבצים עצמאיים? האם אין תלויות ביניהם? האם הם לא חולקים imports?
- כתבו fleet prompt: לפי 5 הכללים מהסעיף "fleet in action" — קבצים ממוספרים, deliverable לכל item, תלויות מפורשות, reference file
- חישוב עלות מוקדם:
(מספר sub-agents) × (~5 אינטראקציות) × (מכפיל מודל). רשמו את המספר. אם יוצא יותר מ-30 credits — שקלו מודל 0x - בחרו מודל: לתרגיל הזה מומלץ GPT-4.1 (0x) — בחינם ומספיק טוב לרוב המשימות
- הריצו:
/fleet [prompt] - ניטור: אחרי 15 שניות הריצו
/tasks. צלמו מסך (screenshot) או תעדו: כמה sub-agents? מה הסטטוס של כל אחד? האם יש agent שתקוע? - בדיקת תוצאות: כשfleet מסתיים — הריצו
git diffובדקו: האם כל הקבצים עודכנו? האם יש עקביות בין השינויים? האם יש merge conflicts? - ניתוח: השוו: זמן בפועל מול הערכה סדרתית (כמה הייתם מעריכים שזה היה לוקח בלי fleet?). מה יחס החיסכון?
תוצאה צפויה: משימה שלמה שבוצעה במקביל, עם תיעוד מלא: פרומפט, חישוב עלות, ניטור /tasks, git diff של תוצאות, וניתוח עלות-תועלת.
בונוס: אם התוצאות טובות — שמרו את הפרומפט כ-template לשימוש חוזר. תוכלו לשנות רק את שמות הקבצים בפעם הבאה.
שגרת עבודה — fleet וסוכנים מותאמים
בנוסף לשגרה מפרק 6 (שימוש יומי ב-CLI), הוסיפו את הפעולות הבאות. שימו לב: השגרה הזו מתווספת לשגרות הקודמות, לא מחליפה אותן. אם בפרק 6 התחלתם עם "בדיקת זיכרון CLI" ו"שימוש ב-Explore agent" — אלה ממשיכים. הפעולות כאן הן ספציפיות ל-fleet ולסוכנים מותאמים.
| תדירות | פעולה |
|---|---|
| יומי | לפני משימה מורכבת — שאלו: "אפשר לפרק את זה ל-fleet?" אם יש 3+ חלקים עצמאיים → fleet |
| יומי | אחרי כל fleet — הריצו git diff ובדקו תוצאות לפני commit |
| יומי | עקבו אחרי צריכת premium requests — בדקו אם fleet חרג מהצפוי |
| שבועי | סקרו את הסוכנים המותאמים: האם יש סוכן שלא עובד טוב? עדכנו את ה-prompt או הכלים |
| שבועי | בדקו אם יש דפוסי fleet חוזרים — אם אתם מריצים את אותו סוג fleet שוב ושוב, צרו template |
| חודשי | סקרו עלות: כמה premium requests הלכו ל-fleet? האם שווה? נסו לעבור למודלים 0x |
| חודשי | נקו סוכנים שלא בשימוש מ-.github/agents/ — פחות סוכנים = פחות בלבול ל-Copilot |
אם אתם עושים רק דבר אחד מהפרק הזה
קחו משימה אמיתית מהפרויקט שלכם שדורשת שינוי ב-3+ קבצים עצמאיים. כתבו fleet prompt עם קבצים ממוספרים ו-deliverable לכל אחד. הריצו /fleet עם המודל GPT-4.1 (חינם). צפו ב-sub-agents שעובדים במקביל. בדקו את התוצאה עם git diff. הפעם הראשונה שתראו 3 סוכנים עובדים על הפרויקט שלכם בו-זמנית — תבינו למה fleet משנה את המשחק.
בדקו את עצמכם
- למה fleet עולה יותר premium requests מסוכן בודד? (רמז: חשבו על context isolation ואינטראקציות עצמאיות)
- איך ה-Orchestrator מחליט אילו משימות רצות במקביל ואילו ממתינות? (רמז: גרף תלויות — dependency graph)
- למה פרומפט כללי כמו "Fix all issues" גורם ל-fleet לרוץ סדרתי? (רמז: ה-Orchestrator צריך לזהות חלקים עצמאיים — מה הוא צריך כדי לעשות את זה?)
- מה ההבדל המרכזי בין /fleet ל-runSubagent, ולמה זה משנה? (רמז: מקבילי vs סדרתי — מתי כל אחד עדיף?)
- למה כדאי להגדיר
model: gpt-4.1בסוכן מותאם ולא להשאיר את ברירת המחדל? (רמז: מה קורה כשמודל ברירת מחדל הוא auto וה-auto בוחר מודל יקר?)
4 מתוך 5 = עוברים. פחות? חזרו לסעיפים הרלוונטיים.
סיכום הפרק
הפרק הזה שינה את הדרך שבה אתם חושבים על משימות. במקום "איך אני עושה את זה" — התחלתם לשאול "איך אני מפרק את זה." /fleet הוא לא רק כלי מהירות — הוא כלי חשיבה שמכריח אתכם לזהות parallelism טבעי בעבודה שלכם: אילו חלקים עצמאיים, מה תלוי במה, ואיפה ה-overhead של fleet לא מצדיק את עצמו.
למדתם שfleet מבריק על משימות עם חלקים עצמאיים (refactoring, tests, docs) אבל מסוכן על קוד מקושר ותלויות. למדתם שהעלות של fleet תלויה במודל — ועם מודלים 0x (חינמיים) fleet הוא כלי חינמי בלתי מוגבל. ולמדתם ליצור סוכנים מותאמים שמתמחים בדיוק במה שהפרויקט שלכם צריך — עם קובצי .agent.md שמגדירים שם, תיאור, כלים ומודל.
התובנה המרכזית: fleet לא מחליף חשיבה — הוא מכפיל אותה. אתם עדיין ה-Tech Lead. fleet הוא הצוות שלכם. ככל שתתנו brief טוב יותר (פרומפט ספציפי, קבצים ממוספרים, תלויות מפורשות) — התוצאה תהיה טובה יותר. ולמדתם את ההבדל בין /fleet (CLI, מקבילי) ל-runSubagent (VS Code, סדרתי) — וידעתם לבחור את הכלי הנכון למשימה.
בפרק הבא נעבור לסביבת GitHub.com — שם נכיר את Coding Agent שעובד בענן ופותח Pull Requests אוטומטית מ-Issues, Code Review אוטומטי שסוקר את הקוד שלכם מכמה זוויות, ו-Copilot Spaces שמרכזים קונטקסט מהפרויקט כדי לשפר את התשובות של Copilot.
- ☐ הרצתי
/fleetעל משימה אמיתית עם 2+ sub-agents שרצו במקביל - ☐ השתמשתי ב-
/tasksלניטור התקדמות sub-agents - ☐ כתבתי fleet prompt עם קבצים ממוספרים, deliverables, ותלויות מפורשות
- ☐ חישבתי עלות fleet לפני הרצה: (sub-agents × אינטראקציות × מכפיל מודל)
- ☐ הרצתי
git diffאחרי fleet ובדקתי תוצאות לפני commit - ☐ יצרתי קובץ
.agent.mdעם name, description, model, tools - ☐ הפעלתי סוכן מותאם עם
/agent [name]ובדקתי שהוא פועל לפי הכללים - ☐ כתבתי רשימת 5 תרחישים מתאימים ל-fleet בפרויקט שלי
- ☐ כתבתי רשימת 5 תרחישים שלא מתאימים ל-fleet (עם הסיבה)
- ☐ מילאתי טבלת החלטה: /fleet מול runSubagent מול סוכן רגיל
- ☐ הגדרתי מודל 0x (GPT-4.1) כברירת מחדל בסוכנים מותאמים כדי לחסוך credits
- ☐ הוספתי לשגרת העבודה: "לפני משימה מורכבת — שאל אם fleet מתאים"
- Fleet Templates: שמרו fleet prompts מוצלחים כקבצי טקסט בפרויקט (למשל
.github/fleet-templates/refactor.md). בפעם הבאה, רק שנו את שמות הקבצים - Pre-flight check: לפני fleet גדול, הריצו
git stash— ככה אם fleet עושה בלגן,git checkout .מחזיר הכל - Fleet + Branch: הריצו fleet על branch נפרד. אם התוצאות טובות — merge. אם לא — delete branch. יותר בטוח מלרוץ על main
- Incremental fleet: בפעם הראשונה, התחילו עם fleet של 2-3 items בלבד. כשתרגישו בנוח — הגדילו ל-5-6. fleet של 10+ items הוא מתכון לבעיות
- Fleet + Custom Agent: שלבו fleet עם סוכנים מותאמים לתוצאות הכי טובות — כל sub-agent מקבל את ה-expertise הנכון