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

9. סוכני משנה (Subagents)

חלק ג׳: הרחבהפרק 9 מתוך 16זמן קריאה: כ-7 דקות

שיחה ארוכה עם הרבה חיפושים, לוגים ותוצאות בדיקות נהיית "רועשת" — וככל שהיא מתמלאת בפרטים משניים, קשה יותר ל-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) מציגה את כל השרשורים הפעילים:

  1. הקלידו /agent או /subagents ולחצו Enter.
  2. בחרו שרשור מהרשימה. 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.enabledbooleanהפעלה/כיבוי של כלי multi-agent. ברירת מחדל: true
agents.max_concurrent_threads_per_sessionnumberמגביל שרשורי סוכנים פתוחים במקביל, לא כולל הראשי (יש גם כינוי ישן: agents.max_threads)
agents.default_subagent_modelstringמודל ברירת מחדל לסוכני משנה
agents.default_subagent_reasoning_effortstringרמת חשיבה ברירת מחדל לסוכני משנה
agents.interrupt_messagebooleanאם 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.