Code Velocity
כלי מפתחים

תת-סוכני Codex: שיפור תהליכי עבודה בפיתוח AI

·7 דקות קריאה·OpenAI·מקור מקורי
שתף
תרשים הממחיש מספר תת-סוכני AI הפועלים במקביל, מתואמים על ידי סוכן Codex ראשי, עם חצים המצביעים על זרימת נתונים והפצת משימות.

תת-סוכני Codex: מחוללים מהפכה בתהליכי עבודה מורכבים ב-AI

בנוף המתפתח במהירות של פיתוח AI, ניהול משימות מורכבות ורב-ממדיות ביעילות הוא בעל חשיבות עליונה. Codex של OpenAI, כלי AI עוצמתי ליצירת קוד וסיוע, מתמודד עם אתגר זה חזיתית עם יכולות התת-סוכנים החדשניות שלו. תת-הסוכנים מעצימים מפתחים לפרק בעיות מורכבות ליחידות ניתנות לניהול ועיבוד מקבילי, כאשר כל אחת מטופלת על ידי סוכן AI מיוחד. גישה זו משפרת באופן דרמטי את היעילות והעומק של פיתוח בסיוע AI, במיוחד עבור משימות כמו חקר מקיף של בסיס קוד, יישום תכונות רב-שלביות, או סקירות קוד מקיפות.

תת-הסוכנים פועלים בכך שהם מאפשרים למופע הראשי של Codex ליצור סוכנים ייעודיים ומתמחים הפועלים במקביל. ניתן להגדיר סוכנים אלה עם מודלים והוראות שונות, מה שמאפשר להם להתמקד בהיבטים ספציפיים של בעיה. לאחר השלמת משימותיהם האישיות, Codex אוסף ומאחד את תוצאותיהם באופן חכם, ומספק תגובה מאוחדת ומקיפה. מתודולוגיה זו קריטית להתגברות על מגבלות הטמונות במערכות סוכן יחיד, כגון 'זיהום הקשר' (context pollution) או 'ריקבון הקשר' (context rot), ובכך מבטיחה שכל חלק במשימה מורכבת יקבל את תשומת הלב הממוקדת הדרושה לו. לצלילה עמוקה יותר ליסודות התיאורטיים, חקירת מושגים כמו הפעלת AI מבוסס סוכנים – חלק 1: מדריך לבעלי עניין יכולה לספק הקשר בעל ערך.

כיצד Codex מתאם תהליכי עבודה של תת-סוכנים

כוחם של תת-סוכני Codex טמון בתיאום החלק שלהם של משימות מבוזרות. כאשר מפתח יוזם שאילתה מורכבת, Codex מזהה באופן חכם הזדמנויות להאציל עבודה למספר תת-סוכנים. תהליך זה כרוך ביצירת תת-סוכנים חדשים, ניתוב הוראות ספציפיות לכל אחד, ולאחר מכן המתנה בסבלנות לתוצאותיהם האישיות. לאחר שכל תת-הסוכנים השלימו את משימותיהם, Codex אוסף את התפוקות שלהם ומסנתז אותן לתגובה מאוחדת ועקבית.

היבט מכריע שיש להבין הוא שתת-סוכנים נוצרים רק כאשר מתבקשים במפורש, בין אם באמצעות הנחיות ספציפיות או תצורות מוגדרות מראש. אמנם עיבוד מקבילי זה מציע יתרונות משמעותיים במהירות ובמקיפות, חשוב לציין שכל תת-סוכן צורך אסימונים עבור המודל שלו ואינטראקציות הכלים שלו. כתוצאה מכך, תהליכי עבודה של תת-סוכנים צורכים באופן מובנה יותר אסימונים מאשר הפעלות סוכן יחיד דומות. מפתחים צריכים להיות מודעים לכך בעת תכנון ההנחיות והתצורות שלהם.

שקלו את דוגמת ההנחיה הבאה כדי ליזום סקירת קוד רב-ממדית באמצעות תת-סוכנים:

I would like to review the following points on the current PR (this branch vs main).
Spawn one agent per point, wait for all of them, and summarize the result for each point.

1. Security issue
2. Code quality
3. Bugs
4. Race conditions
5. Test flakiness
6. Maintainability of the code

בתרחיש זה, Codex ככל הנראה ישיק שישה תת-סוכנים נפרדים, כאשר כל אחד מתמחה באחד מנקודות הסקירה המפורטות. לאחר שכל סוכן ישלים את ניתוחו, Codex ירכז את הממצאים לדוח יחיד ומובנה, שיציע סקירה הוליסטית של בקשת המשיכה. זה ממחיש את היעילות המושגת על ידי חלוקת עומס העבודה בין ישויות AI מיוחדות.

ניהול ואבטחת מערכת האקולוגית של תת-הסוכנים שלך

ניהול יעיל ואבטחה חזקה הם שיקולים מרכזיים בעבודה עם תת-סוכנים. Codex מספק כלים ומנגנונים לפיקוח על פעילויות תת-סוכנים ולהבטחת פעולות מאובטחות בסביבות ה-sandboxed שלהם.

בהפעלות CLI אינטראקטיביות, מפתחים יכולים להשתמש בפקודה /agent כדי לעבור בין חוטי סוכנים פעילים, לבדוק תהליכים מתמשכים או לכוון תת-סוכן מסוים. שליטה גרנולרית זו מאפשרת התאמות וניטור בזמן אמת של התקדמות סוכנים בודדים. ניתן גם לבקש במפורש מ-Codex לעצור תת-סוכן פועל או לסגור חוטי עבודה שהסתיימו כדי לנהל משאבים ולשמור על מיקוד.

אבטחה היא מעל הכל, ותת-סוכנים יורשים את מדיניות ה-sandbox הנוכחית מהפעלת ה-Codex הראשית. זה מבטיח שפעולותיהם עומדות בכללי בטיחות וגישה מוגדרים מראש. כאשר בקשות אישור עולות מחוטי סוכנים לא פעילים, במיוחד בהפעלות CLI אינטראקטיביות, Codex מציג אותן באופן חכם למשתמש. חלון אישור יציין את חוט המקור, ויאפשר ללחוץ על 'o' כדי לפתוח ולבדוק את החוט הזה לפני קבלת החלטה מושכלת לאשר, לדחות או לענות לבקשה. זה מונע אישורים עיוורים ושומר על פיקוח המפתחים.

עבור זרימות עבודה לא אינטראקטיביות או מצבים שבהם לא ניתן להציג אישור חדש, כל פעולה הדורשת אישור חדש תיכשל אוטומטית, כאשר Codex מדווח על השגיאה חזרה לתהליך העבודה הראשי. מנגנון בטיחות זה מונע פעולות בלתי מורשות בהקשרים אוטומטיים. יתר על כן, Codex מיישם מחדש את עקיפות זמן הריצה החיות של התור ההורי – כגון שינויים שבוצעו באמצעות /approvals או דגל --yolo – לילדים שנוצרו, ובכך מבטיח עמדות אבטחה עקביות לאורך היררכיית הסוכנים. למשתמשים מתקדמים, אפשר גם לעקוף את תצורת ה-sandbox עבור סוכנים מותאמים אישית בודדים, מה שמאפשר שליטה עדינה על הרשאותיהם, לדוגמה, על ידי סימון סוכן כ'קריאה בלבד'.

הגדרת תת-סוכנים מותאמים אישית למשימות ספציפיות

בעוד ש-Codex מספק מספר סוכנים מובנים, כגון default כברירת מחדל כללית, worker למשימות ממוקדות ביצוע, ו-explorer לחקר בסיס קוד עשיר בקריאה, הכוח האמיתי של מערכת תת-הסוכנים טמון ביכולת ההרחבה שלה. מפתחים יכולים להגדיר סוכנים מותאמים אישית משלהם כדי לענות על דרישות מיוחדות ביותר, ובכך להתאים את התנהגות ה-AI להקשרי פרויקטים ייחודיים.

סוכנים מותאמים אישית מוגדרים באמצעות קבצי TOML עצמאיים. קבצים אלו יכולים להיות ממוקמים ב-~/.codex/agents/ עבור סוכנים אישיים או ב-.codex/agents/ עבור סוכנים בהיקף פרויקט. כל קובץ TOML משמש למעשה כשכבת תצורה, המאפשרת לסוכנים מותאמים אישית לעקוף הגדרות שהיו נורשות אחרת מהפעלת ההורה. זה כולל פרמטרים קריטיים כמו מודל ה-AI בשימוש, מאמץ החשיבה שלו, מצב ה-sandbox, ואפילו תצורות מיומנויות ספציפיות.

כל קובץ סוכן מותאם אישית עצמאי חייב להגדיר את השדות הבאים:

  • name (שם): המזהה הייחודי של הסוכן, ש-Codex משתמש בו בעת יצירתו או התייחסות אליו.
  • description (תיאור): הנחיה קריאה לאדם המסייעת ל-Codex להבין מתי לפרוס סוכן זה.
  • developer_instructions (הוראות למפתח): סט ההוראות המרכזי המכתיב את התנהגות הסוכן ואת ההיגיון התפעולי שלו.

ניתן לכלול גם שדות אופציונליים כמו nickname_candidates, model, model_reasoning_effort, sandbox_mode, mcp_servers ו-skills.config. אם הם מושמטים, הגדרות אלו ייורשו מהפעלת ההורה, מה שמפשט את התצורה כאשר ברירות המחדל מקובלות. לשיטות עבודה מומלצות בהנדסת פרומפטים, המשפיעה ישירות על הוראות הסוכן, עיין במשאבים כמו מדריך ההנחיות של Codex.

שדה ה-name הוא המזהה המוחלט לסוכן מותאם אישית. בעוד שהתאמת שם הקובץ לשם הסוכן היא מוסכמה נפוצה ומומלצת, שדה ה-name בתוך קובץ ה-TOML הוא המקור האולטימטיבי לאמת. שדה ה-nickname_candidates הוא תוספת שימושית לחווית המשתמש, המאפשר ל-Codex להקצות שמות תצוגה קריאים יותר לסוכנים שנוצרו, מה שמועיל במיוחד בתרחישים מורכבים של ריבוי סוכנים.

הגדרות גלובליות ותצורת תת-סוכנים מתקדמת

מעבר להגדרות סוכן מותאמות אישית בודדות, Codex מציע הגדרות תצורה גלובליות לניהול ההתנהגות הכוללת של תהליכי עבודה של תת-סוכנים. הגדרות אלו נמצאות בדרך כלל תחת הסעיף [agents] בקובץ התצורה הראשי שלך, ומציעות שליטה מרכזית על הקצאת משאבים ופרמטרים תפעוליים.

להלן פירוט של הגדרות תת-סוכנים גלובליות מרכזיות:

שדהסוגנדרשמטרה
agents.max_threadsמספרלאמגביל את מספר חוטי הסוכנים הפתוחים במקביל. ברירת מחדל ל-6 אם לא הוגדר.
agents.max_depthמספרלאמגביל את עומק הקינון של סוכנים שנוצרו (הפעלת השורש מתחילה ב-0). ברירת מחדל ל-1. מונע האצלה רקורסיבית מעבר לילדים מיידיים כדי לנהל שימוש באסימונים וזמן אחזור.
agents.job_max_runtime_secondsמספרלאמגדיר את פסק הזמן ברירת המחדל לכל עובד עבור משימות spawn_agents_on_csv. אם לא הוגדר, ברירת מחדל ל-1800 שניות (30 דקות).

הגדרת agents.max_threads, עם ברירת מחדל של 6, מספקת הגנה מפני צריכת משאבים מוגזמת על ידי הגבלת מספר תת-הסוכנים שיכולים לפעול בו-זמנית. הגדרת agents.max_depth, עם ברירת המחדל שלה של 1, חשובה במיוחד. בעוד שקינון עמוק יותר עשוי להיראות מושך עבור האצלה מורכבת, הגדלת ערך זה יכולה להוביל לעלייה משמעותית בשימוש באסימונים, בזמן האחזור ובצריכת משאבים מקומית עקב פיזור חוזר ונשנה. באופן כללי מומלץ לשמור על ברירת המחדל אלא אם כן דפוס האצלה רקורסיבי ספציפי הכרחי בהחלט ומנוהל בקפידה.

קובצי סוכנים מותאמים אישית יכולים לכלול גם מפתחות config.toml נתמכים אחרים, ובכך להרחיב את יכולת ההגדרה שלהם מעבר לשדות החובה בלבד. גישת תצורה מודולרית ושכבתית זו מבטיחה שלמפתחים תהיה שליטה עדינה על סוכני ה-AI שלהם, מה שמאפשר להם לבצע אופטימיזציה לביצועים, עלות ואבטחה המותאמים לצרכי הפיתוח הספציפיים שלהם. על ידי הבנה וניצול יכולות תת-סוכנים עוצמתיות אלו, מפתחים יכולים לפרוץ את גבולות הקידוד בסיוע AI ולשפר באופן משמעותי את תהליכי העבודה שלהם בפיתוח.

שאלות נפוצות

What are Codex subagents and how do they enhance AI development workflows?
Codex subagents are specialized AI agents that can be spawned in parallel by a primary Codex instance to tackle complex, multi-faceted tasks. They significantly enhance AI development workflows by enabling the division of labor across different agents, each focusing on a specific aspect of a task. This parallel processing capability is particularly beneficial for computationally intensive or intricate operations like comprehensive codebase exploration, implementing large-scale multi-step feature plans, or conducting extensive code reviews. By distributing the workload, subagents help in accelerating development cycles, improving the quality of outputs, and managing complexity more effectively than a single agent could.
How does Codex manage the orchestration of multiple subagents?
Codex excels at orchestrating subagent workflows by managing the entire lifecycle from spawning new agents to consolidating their results. When a complex task is initiated, Codex can intelligently route follow-up instructions to the appropriate subagents, monitor their progress, and await the completion of all requested tasks. Once all subagents have finished their assignments and returned their respective outputs, Codex then aggregates these results into a unified, consolidated response. This seamless orchestration ensures that even highly parallelized tasks remain coherent and deliver a comprehensive solution, simplifying complex project management for developers.
What are the security considerations and controls for Codex subagents?
Security for Codex subagents is a critical aspect, with several mechanisms in place to ensure safe operation. Subagents inherently inherit the current sandbox policy of the parent session, ensuring a consistent security posture. For interactive command-line interface (CLI) sessions, approval requests stemming from inactive agent threads can be surfaced to the user, allowing for informed decisions before actions are taken. In non-interactive environments or when immediate approval isn't feasible, actions requiring new approval will fail, preventing unauthorized operations. Developers can also apply runtime overrides for sandbox and approval choices, and even configure individual custom agents with specific sandbox modes, such as 'read-only', for fine-grained control over their operational scope and access.
How can developers create and utilize custom agents within Codex?
Developers can define custom agents in Codex to tailor AI behavior to specific needs. This is achieved by creating standalone TOML configuration files under `~/.codex/agents/` for personal agents or `.codex/agents/` for project-scoped ones. Each TOML file defines a single custom agent and acts as a configuration layer, allowing developers to override default settings like model choice, reasoning effort, or sandbox mode. Essential fields such as 'name', 'description', and 'developer_instructions' are mandatory, guiding the agent's identity and core behavior. This flexibility enables the creation of highly specialized agents for unique development tasks, further enhancing the adaptability of the Codex system.
What global settings are available for managing subagent behavior in Codex?
Codex provides several global settings to manage subagent behavior, primarily located under the `[agents]` section in the configuration file. Key settings include `agents.max_threads`, which controls the maximum number of concurrent open agent threads (defaulting to 6); `agents.max_depth`, which limits the nesting depth of spawned agents (defaulting to 1 to prevent excessive recursion and resource consumption); and `agents.job_max_runtime_seconds`, which sets a default timeout for workers in `spawn_agents_on_csv` jobs (defaulting to 1800 seconds if not specified). These settings are crucial for balancing performance, resource usage, and control over complex agent workflows, helping developers prevent unintended fan-out and manage token consumption effectively.
What are the primary advantages of using subagents for complex tasks?
The primary advantages of using subagents for complex tasks within Codex lie in their ability to parallelize and specialize operations. By breaking down a large task into smaller, manageable subtasks and assigning each to a specialized agent, development teams can achieve significant speed improvements and higher quality outcomes. For instance, in a large codebase review, one subagent might focus on security vulnerabilities, another on code quality, and a third on performance bottlenecks simultaneously. This concurrent processing not only accelerates the overall task but also allows for deeper, more focused analysis in each area, leading to more robust and comprehensive solutions than a single, monolithic AI agent could provide.

הישארו מעודכנים

קבלו את חדשות ה-AI האחרונות לתיבת הדוא״ל.

שתף