9. סוכני משנה (Subagents)
שיחה ארוכה עם הרבה חיפושים, לוגים ותוצאות בדיקות נהיית "רועשת" — וככל שהיא מתמלאת בפרטים משניים, קשה יותר ל-Codex להישאר ממוקד במה שבאמת חשוב. Subagents הם הפתרון: סוכנים נפרדים שעושים את העבודה המלוכלכת בצד, ומחזירים לשיחה הראשית רק את התמצית.
למה בכלל צריך את זה
גם עם חלון הקשר גדול, יש לו גבול. אם משיחה הראשית זורמים חיפושים בקוד, לוגים ארוכים, פלט בדיקות ומעקבי שגיאות (stack traces), הסשן נהיה פחות אמין עם הזמן. לתופעה הזו יש שני שמות מוכרים:
- Context pollution: מידע שימושי נטמע מתחת לפלט רועש.
- Context rot: הביצועים יורדים ככל שהשיחה מתמלאת בפרטים פחות רלוונטיים.
Subagents פותרים את זה על ידי העברת העבודה הרועשת הצידה:
- הסוכן הראשי נשאר ממוקד בדרישות, בהחלטות ובתוצר הסופי.
- סוכני משנה מתמחים רצים במקביל לחקירה, בדיקות או ניתוח לוגים.
- הם מחזירים סיכומים, לא את הפלט הגולמי.
מעבר לחיסכון בהקשר, Subagents גם חוסכים זמן כשאפשר לעבוד במקביל, והופכים משימות גדולות לניתנות לניהול — למשל, לפצל ניתוח של מסמך ענק לכמה בעיות קטנות ולקבל בחזרה רק את המסקנות המזוקקות.
כהתחלה, השתמשו בסוכנים מקבילים למשימות שמבוססות בעיקר על קריאה: חקירה, בדיקות, מיון וסיכום. היזהרו יותר עם משימות מקבילות שכוללות כתיבה — כמה סוכנים שעורכים קוד באותו זמן עלולים להתנגש ולדרוש תיאום נוסף.
כל סוכן משנה מפעיל בעצמו מודל וכלים משלו, ולכן זרימת עבודה עם Subagents צורכת יותר טוקנים מהרצה מקבילה של סוכן יחיד.
שלושה מושגי יסוד
| מושג | הסבר |
|---|---|
| Subagent workflow | זרימת עבודה שבה Codex מריץ סוכנים מקבילים ומאחד את התוצאות שלהם |
| Subagent | סוכן מואצל שCodex מפעיל כדי לטפל במשימה ספציפית |
| Agent thread | השרשור שבו סוכן המשנה עובד. אפשר לפתוח אותו כדי לבדוק התקדמות או תוצאות |
איך מפעילים Subagents
הדרך הפשוטה: לבקש ישירות. Codex גם יכול לאצול עבודה מעצמו כשקובץ AGENTS.md (ראו פרק 6: AGENTS.md: הזיכרון הקבוע של הפרויקט) או הוראות Skill מבקשים זאת. בפועל, הפעלה ידנית נראית כך: "תפצל את זה לשני סוכנים", "תאציל את העבודה הזו במקביל", או "סוכן אחד לכל נקודה".
פרומפט טוב ל-Subagents מסביר איך לחלק את העבודה, האם Codex צריך לחכות לכל הסוכנים לפני שהוא ממשיך, ואיזה סיכום או פלט הוא מצפה לקבל בסוף:
Review this branch with parallel subagents. Spawn one subagent for security risks, one for test gaps, and one for maintainability. Wait for all three, then summarize the findings by category with file references.
ניהול Subagents ב-CLI
בתוך סשן אינטראקטיבי, הפקודה /agent (או /subagents) מציגה את כל השרשורים הפעילים:
- הקלידו
/agentאו/subagentsולחצו Enter. - בחרו שרשור מהרשימה. Codex עובר לשרשור שנבחר, כדי שתוכלו לבדוק או להמשיך את העבודה שלו.
אפשר גם לבקש מ-Codex ישירות לכוון סוכן פעיל, לעצור אותו, או לסגור שרשורים שהושלמו. כשהרבה סוכנים רצים במקביל, Codex ממתין עד שכל התוצאות המבוקשות מוכנות, ואז מחזיר תשובה מאוחדת אחת.
גם כשאתם צופים בשרשור הראשי, בקשת אישור יכולה להגיע משרשור סוכן משנה שרץ ברקע. שכבת האישור מציגה מאיזה שרשור היא הגיעה — לחיצה על o פותחת אותו לפני שאתם מאשרים, דוחים או עונים.
בחירת מודל ורמת חשיבה לכל סוכן
סוכנים שונים צריכים הגדרות מודל וחשיבה שונות. אם לא מגדירים מודל או model_reasoning_effort לסוכן משנה, הוא יורש את ההגדרות של הסוכן ההורה. אפשר לקבוע זאת בשלוש רמות: בבקשה עצמה, בברירות מחדל תחת [agents] ב-config.toml, או ישירות בקובץ של סוכן מותאם אישית.
בחירת מודל
| מודל | מתאים ל… |
|---|---|
gpt-5.6 | סוכנים תובעניים: עבודה מרובת-שלבים ולא חד-משמעית שדורשת תכנון, שימוש בכלים, אימות והמשכיות על פני הקשר גדול |
gpt-5.6-terra | סוכנים שמעדיפים מהירות ויעילות על פני עומק: חקירה, סריקות מבוססות-קריאה, בדיקת קבצים גדולים. עובד טוב לעובדים מקבילים שמחזירים תמצית לסוכן הראשי |
gpt-5.6-luna | סוכנים מהירים וממוקדים, לעבודה ברורה, חוזרת או בנפח גבוה |
רמת חשיבה (model_reasoning_effort)
| רמה | מתאים ל… |
|---|---|
ultra / max / xhigh | חשיבה עמוקה או תובענית במיוחד, במודלים שתומכים ברמות אלה |
high | מעקב אחרי לוגיקה מורכבת, בדיקת הנחות, מקרי קצה — למשל סוכן ביקורת או אבטחה |
medium | ברירת מחדל מאוזנת לרוב הסוכנים |
low | משימה פשוטה, כשמהירות היא הדבר הכי חשוב |
רמת חשיבה גבוהה יותר מאריכה זמן תגובה וצריכת טוקנים, אבל יכולה לשפר איכות בעבודה מורכבת.
אישורים וסביבת הרצה (sandbox)
סוכני משנה יורשים את מדיניות ה-sandbox הנוכחית שלכם. אפשר לדרוס את זה עבור סוכן מותאם אישית ספציפי — למשל לסמן אותו במפורש כ-read-only. Codex גם מיישם מחדש על כל סוכן חדש את השינויים הזמניים שקבעתם בשיחה עצמה, כמו שינוי דרך /permissions או שימוש ב---yolo, גם אם קובץ סוכן מותאם אישית מגדיר ברירות מחדל אחרות.
סוכנים מותאמים אישית (Custom agents)
Codex מגיע עם שלושה סוכנים מובנים:
default— סוכן כללי, ברירת מחדל.worker— ממוקד ביצוע: מימוש ותיקונים.explorer— חקירת קוד מבוססת-קריאה.
כדי להגדיר סוכנים משלכם, מוסיפים קבצי TOML עצמאיים תחת ~/.codex/agents/ לסוכנים אישיים, או .codex/agents/ לסוכנים ששייכים לפרויקט ספציפי. כל קובץ מגדיר סוכן אחד, ושלושת השדות הבאים הם חובה:
| שדה | משמעות |
|---|---|
name | השם ש-Codex משתמש בו כשהוא מפעיל או מתייחס לסוכן |
description | הסבר לאנשים מתי כדאי להשתמש בסוכן הזה |
developer_instructions | ההוראות המרכזיות שמגדירות את ההתנהגות שלו |
אפשר לכלול בקובץ גם מפתחות אחרים מוכרים מ-config.toml, כמו model, model_reasoning_effort, sandbox_mode, mcp_servers ו-skills.config. הגדרות שלא מופיעות בקובץ עוברות בירושה מהסוכן ההורה. אם שם של סוכן מותאם אישית זהה לסוכן מובנה כמו explorer, הגרסה המותאמת שלכם גוברת.
דוגמה: שלושה סוכנים לסקירת PR
תבנית נפוצה: סוכן חקירה שממפה את הקוד, סוכן ביקורת שמחפש בעיות, וסוכן שבודק תיעוד דרך שרת MCP ייעודי.
name = "pr_explorer"
description = "Read-only codebase explorer for gathering evidence before changes are proposed."
model = "gpt-5.3-codex-spark"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
Stay in exploration mode.
Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them.
"""
name = "reviewer"
description = "PR reviewer focused on correctness, security, and missing tests."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
developer_instructions = """
Review code like an owner.
Prioritize correctness, security, behavior regressions, and missing test coverage.
"""
סוכן שלישי, docs_researcher, יכול להשתמש בשרת MCP ייעודי לתיעוד (ראו פרק 7: חיבור לכלים חיצוניים (MCP)) כדי לאמת התנהגות API, בלי לגעת בקוד בעצמו. עם שלושת הסוכנים האלה, פרומפט כמו הבא מפעיל את כולם בבת אחת:
Review this branch against main. Have pr_explorer map the affected code paths, reviewer find real risks, and docs_researcher verify the framework APIs that the patch relies on.
הגבלת מספר הסוכנים במקביל
בקובץ ה-config.toml של הפרויקט אפשר להגביל כמה שרשורי סוכנים פתוחים בו-זמנית:
[agents]
max_concurrent_threads_per_session = 8
הגדרות גלובליות תחת [agents]
| שדה | סוג | מטרה |
|---|---|---|
agents.enabled | boolean | הפעלה/כיבוי של כלי multi-agent. ברירת מחדל: true |
agents.max_concurrent_threads_per_session | number | מגביל שרשורי סוכנים פתוחים במקביל, לא כולל הראשי (יש גם כינוי ישן: agents.max_threads) |
agents.default_subagent_model | string | מודל ברירת מחדל לסוכני משנה |
agents.default_subagent_reasoning_effort | string | רמת חשיבה ברירת מחדל לסוכני משנה |
agents.interrupt_message | boolean | אם true (ברירת מחדל), נרשמת הודעה גלויה למודל כשתור של סוכן נקטע |
ערך מפורש שנקבע בבקשת ההפעלה עצמה תמיד גובר על ברירות המחדל של [agents].
דוגמה נוספת: דיבוג אינטגרציה בפרונטאנד
תבנית שימושית לבאגים שחוצים קוד אפליקציה והמוצר הרץ בפועל: סוכן שממפה קוד, סוכן שמשחזר את הבעיה בדפדפן דרך שרת MCP של כלי פיתוח, וסוכן מימוש שמתקן רק אחרי שהבעיה מובנת:
name = "browser_debugger"
description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "workspace-write"
developer_instructions = """
Reproduce the issue in the browser, capture exact steps, and report what the UI actually does.
Do not edit application code.
"""
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
startup_timeout_sec = 20
סוכן המימוש שמקבל את התוצאות שלו יכול אפילו לכבות Skill מסוים שלא רלוונטי לתיקון נקודתי:
[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false
- Subagents מוציאים עבודה רועשת (חקירה, בדיקות, לוגים) מהשיחה הראשית, ומחזירים רק סיכום.
- מפעילים בבקשה ישירה, או דרך הוראות ב-AGENTS.md / Skill. עולה יותר טוקנים מסוכן יחיד.
/agent(או/subagents) עובר בין שרשורי סוכנים פעילים; o פותח שרשור מקור בבקשת אישור.- מודל ורמת חשיבה לכל סוכן: בפרומפט, בברירות מחדל תחת
[agents], או בקובץ סוכן מותאם אישית. - סוכנים מובנים:
default,worker,explorer. סוכן משלכם: קובץ TOML תחת~/.codex/agents/או.codex/agents/, עםname,descriptionו-developer_instructions.
התוכן באתר נועד למידע כללי בלבד ואינו מהווה ייעוץ מקצועי, הצעה או התחייבות. נעשה מאמץ לדייק, אך ייתכנו שינויים, טעויות או חוסר עדכניות, והשימוש במידע הוא באחריות המשתמש. ככל שהדין מתיר, האתר ובעליו אינם אחראים לנזק שייגרם מהסתמכות על המידע. קישורים לאתרים חיצוניים הם באחריות אותם אתרים, וככל שקיימים קישורי שותפים, ייתכן שהאתר יקבל עמלה ללא תוספת עלות עבורכם. התוכן מוגן בזכויות יוצרים (חוק זכות יוצרים, התשס״ח-2007) ואין להעתיקו ללא רשות. שמות מותגים וסימני מסחר שייכים לבעליהם. ראו גם תקנון האתר ומדיניות הפרטיות.