Subagenten

Verwenden Sie Subagenten in ChatGPT und Codex und konfigurieren Sie benutzerdefinierte Codex-Agenten

ChatGPT Work und Codex können Subagenten-Workflows ausführen, indem sie spezialisierte Agenten parallel starten und deren Ergebnisse anschließend in einer Antwort zusammenführen. Dies kann besonders bei komplexen Aufgaben hilfreich sein, die sich stark parallelisieren lassen, etwa bei der Erkundung einer Codebasis oder der Umsetzung eines mehrstufigen Funktionsplans.

In lokalen Codex-Clients können Sie außerdem benutzerdefinierte Agenten mit unterschiedlichen Modellkonfigurationen und Anweisungen für verschiedene Aufgaben definieren.

Verfügbarkeit

In aktuellen Codex-Versionen sind Subagenten-Workflows standardmäßig aktiviert. Die Aktivitäten von Subagenten werden in der ChatGPT-Desktop-App, in Codex CLI und in der IDE-Erweiterung angezeigt.

Da jeder Subagent seine eigene Modell- und Toolarbeit ausführt, verbrauchen Subagenten-Workflows mehr Token als vergleichbare Ausführungen mit einem einzelnen Agenten.

Bitten Sie Codex in einem App-Chat, unabhängige Teile der Arbeit an Subagenten zu delegieren. Aktuelle lokale Codex-Versionen delegieren, wenn Sie direkt darum bitten oder wenn entsprechende AGENTS.md- oder Skill-Anweisungen dies verlangen. Die App zeigt jeden Subagenten-Thread an, sodass Sie dessen Arbeit und die an den Hauptchat zurückgegebene Zusammenfassung prüfen können.

Vorteile von Subagenten-Workflows

Selbst bei großen Kontextfenstern stoßen Modelle an Grenzen. Wenn Sie den Hauptchat (in dem Sie Anforderungen, Einschränkungen und Entscheidungen festlegen) mit unübersichtlichen Zwischenausgaben wie Erkundungsnotizen, Testprotokollen, Stacktraces und Befehlsausgaben überfrachten, kann die Sitzung mit der Zeit unzuverlässiger werden.

Dies wird häufig folgendermaßen beschrieben:

  • Kontextverschmutzung: Nützliche Informationen gehen in unübersichtlichen Zwischenausgaben unter.
  • Kontextverfall: Die Leistung nimmt ab, während sich der Chat mit weniger relevanten Details füllt.

Hintergrundinformationen finden Sie im Chroma-Beitrag über Kontextverfall.

Subagenten-Workflows helfen, indem sie unübersichtliche Arbeit aus dem Haupt-Thread auslagern:

  • Der Hauptagent kann sich auf Anforderungen, Entscheidungen und endgültige Ergebnisse konzentrieren.
  • Spezialisierte Subagenten können parallel Erkundungen, Tests oder Protokollanalysen durchführen.
  • Zusammenfassungen der Subagenten werden anstelle unaufbereiteter Zwischenausgaben zurückgegeben.

Sie können auch Zeit sparen, wenn sich die Arbeit unabhängig parallel ausführen lässt, und machen umfangreichere Aufgaben besser handhabbar, indem sie diese in klar abgegrenzte Teile zerlegen. Codex kann beispielsweise die Analyse eines Dokuments mit mehreren Millionen Token in kleinere Aufgaben aufteilen und dem Haupt-Thread komprimierte Erkenntnisse zurückgeben.

Verwenden Sie parallele Agenten zunächst für leseintensive Aufgaben wie Erkundung, Tests, Triage und Zusammenfassungen. Gehen Sie bei parallelen, schreibintensiven Workflows vorsichtiger vor, da gleichzeitig Code bearbeitende Agenten Konflikte verursachen und den Koordinationsaufwand erhöhen können.

Zentrale Begriffe

Codex verwendet in Subagenten-Workflows einige zusammengehörige Begriffe:

  • Subagenten-Workflow: Ein Workflow, bei dem Codex parallele Agenten ausführt und deren Ergebnisse zusammenführt.
  • Subagent: Ein delegierter Agent, den Codex zur Bearbeitung einer bestimmten Aufgabe startet.
  • Agenten-Thread: Der Thread, in dem ein Subagent seine Arbeit ausführt. Unterstützte Clients ermöglichen es Ihnen, diese Threads zu öffnen, um Fortschritt oder Ergebnisse zu prüfen.

Subagenten-Workflows auslösen

Bitten Sie direkt um Subagenten oder parallele Agentenarbeit. Codex kann auch delegieren, wenn entsprechende Projekt- oder Skill-Anweisungen dies verlangen.

In der Praxis bedeutet manuelles Auslösen, direkte Anweisungen wie „starte zwei Agenten“, „delegiere diese Arbeit parallel“ oder „verwende einen Agenten pro Punkt“ zu verwenden. Subagenten-Workflows verbrauchen mehr Token als vergleichbare Ausführungen mit einem einzelnen Agenten, da jeder Subagent seine eigene Modell- und Toolarbeit ausführt.

Eine gute Aufforderung für Subagenten sollte erklären, wie die Arbeit aufzuteilen ist, ob Codex vor dem Fortfahren auf alle Agenten warten soll und welche Zusammenfassung oder Ausgabe zurückgegeben werden soll.

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.

Modelle und Reasoning auswählen

Unterschiedliche Agenten benötigen unterschiedliche Modell- und Reasoning-Einstellungen.

Wenn Sie kein Subagentenmodell und keinen Wert für model_reasoning_effort konfigurieren, übernimmt der Subagent das Modell und den Reasoning-Aufwand des übergeordneten Agenten. Wenn eine explizite Startanforderung oder ein [agents]-Standardwert ein Modell auswählt, ohne dass ein Reasoning-Aufwand explizit angegeben oder konfiguriert ist, verwendet der Subagent den Standard-Reasoning-Aufwand dieses Modells. Um Intelligenz, Geschwindigkeit und Preis für jede Aufgabe abzuwägen, fordern Sie in Ihrem Prompt ein bestimmtes Modell oder einen bestimmten Reasoning-Aufwand an, konfigurieren Sie [agents]-Standardwerte in config.toml oder setzen Sie model und model_reasoning_effort direkt in der benutzerdefinierten Agentendatei. Verwenden Sie beispielsweise gpt-6-luna für schnelle Durchsichten oder eine gpt-6.1-sol-Konfiguration mit höherem Reasoning-Aufwand für anspruchsvollere Denkaufgaben.

Modellauswahl

  • gpt-6.1-sol: Beginnen Sie hier für Agenten mit anspruchsvollen Aufgaben. Verwenden Sie es für mehrdeutige, mehrstufige Aufgaben, die Planung, Tool-Nutzung, Validierung und konsequente Ausführung über einen größeren Kontext hinweg erfordern.
  • gpt-6-luna: Verwenden Sie es für schnelle Agenten mit eng umrissenem Aufgabenbereich, die klare, wiederholbare oder in großer Menge anfallende Aufgaben bearbeiten.

Reasoning-Aufwand (model_reasoning_effort)

Verwenden Sie für GPT-6.1 Sol einen Reasoning-Aufwand, der von Ihrem Client und dem ausgewählten Modell unterstützt wird. Beginnen Sie bei expliziten Modelleinstellungen mit high für GPT-6 Luna oder low für GPT-6 Astra. Passen Sie den Aufwand an die Aufgabe an und verwenden Sie eine vom ausgewählten Modell unterstützte Stufe.

  • ultra: Verwenden Sie diese Stufe für das tiefgehendste Reasoning, sofern das ausgewählte Modell sie unterstützt.
  • max und xhigh: Verwenden Sie diese Stufen für besonders anspruchsvolles Reasoning, sofern das ausgewählte Modell diese Stufen unterstützt.
  • high: Verwenden Sie diese Stufe, wenn ein Agent komplexe Logik nachvollziehen, Annahmen prüfen oder Randfälle durcharbeiten muss (beispielsweise bei Review-Agenten oder Agenten mit Sicherheitsschwerpunkt).
  • medium: Bietet ein ausgewogenes Verhältnis zwischen Geschwindigkeit und Tiefe.
  • low: Verwenden Sie diese Stufe, wenn die Aufgabe unkompliziert ist und Geschwindigkeit im Vordergrund steht.

Ein höherer Reasoning-Aufwand erhöht die Antwortzeit und den Tokenverbrauch, kann bei komplexen Arbeiten jedoch die Qualität verbessern. Weitere Informationen finden Sie unter Modelle, Grundlagen der Konfiguration und Konfigurationsreferenz.

Orchestrierung und Thread-Steuerung

ChatGPT oder Codex übernimmt die Orchestrierung zwischen Agenten, darunter das Starten neuer Subagenten, das Weiterleiten nachfolgender Anweisungen, das Warten auf Ergebnisse und das Schließen von Agenten-Threads.

Wenn viele Agenten ausgeführt werden, wartet Codex, bis alle angeforderten Ergebnisse verfügbar sind, und gibt anschließend eine konsolidierte Antwort zurück.

Aktuelle lokale Codex-Versionen starten Agenten nach einer direkten Aufforderung oder aufgrund entsprechender Projekt- oder Skill-Anweisungen.

Probieren Sie die folgende Aufforderung in Ihrem Projekt aus, um dies in Aktion zu sehen:

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
5. Test flakiness
6. Maintainability of the code

Subagenten verwalten

  • Öffnen Sie über die im Haupt-Thread angezeigte Aktivität einen Subagenten-Thread, um dessen Arbeit zu prüfen.
  • Bitten Sie Codex direkt, einen laufenden Subagenten zu lenken oder zu stoppen oder abgeschlossene Subagenten-Threads zu schließen.

Genehmigungen und Sandbox-Steuerung

Subagenten übernehmen Ihre aktuelle Sandbox-Richtlinie.

Subagenten übernehmen den unterhalb des Eingabefelds ausgewählten Berechtigungsmodus. Wählen Sie den Berechtigungsmodus für den übergeordneten Turn aus, bevor Sie Codex um die Delegierung von Arbeiten bitten.

Legen Sie die Sandbox- und Genehmigungseinstellungen in der übergeordneten Sitzung fest. Benutzerdefinierte Agentenanweisungen können einen Agenten auffordern, Änderungen zu vermeiden, erstellen aber keine separate schreibgeschützte Sandbox.

Benutzerdefinierte Agenten

Codex wird mit integrierten Agenten ausgeliefert:

  • default: universeller Ausweichagent.
  • worker: ausführungsorientierter Agent für Implementierungen und Fehlerbehebungen.
  • explorer: leseintensiver Agent zur Erkundung der Codebasis.

Um eigene benutzerdefinierte Agenten zu definieren, fügen Sie eigenständige TOML-Dateien unter ~/.codex/agents/ für persönliche Agenten oder unter .codex/agents/ für projektbezogene Agenten hinzu.

Jede Datei definiert einen benutzerdefinierten Agenten. Benutzerdefinierte Agenten können Modelleinstellungen und Anweisungen ändern oder unterstützte Funktionen deaktivieren. Sie erben die Berechtigungen, den Anbieter und die MCP server der übergeordneten Sitzung; eine benutzerdefinierte Agentendatei kann diese Einstellungen nicht überschreiben.

Jede eigenständige Datei eines benutzerdefinierten Agenten muss Folgendes definieren:

  • name
  • description
  • developer_instructions

Wenn eine benutzerdefinierte Agentendatei model oder model_reasoning_effort festlegt, hat der Wert in der Datei Vorrang. Vor dem Anwenden der Datei ermittelt Codex jede Einstellung zuerst anhand eines expliziten Werts beim Starten, dann anhand des entsprechenden Standardwerts aus [agents] und schließlich anhand des Werts der übergeordneten Sitzung. Wenn eine explizite Startanforderung oder ein Standardwert aus [agents] ein Modell auswählt und keiner von beiden einen Reasoning-Aufwand vorgibt, verwendet Codex den Standardaufwand dieses Modells. Eine benutzerdefinierte Agentendatei, die nur model festlegt, behält diesen zuvor ermittelten Aufwand bei. Legen Sie auch model_reasoning_effort in der Datei fest, wenn das ausgewählte Modell diesen Aufwand nicht unterstützt oder Sie einen anderen wünschen. Skills werden von der übergeordneten Sitzung geerbt, und ein benutzerdefinierter Agent kann einzelne Skills mit skills.config deaktivieren.

Globale Einstellungen

Globale Subagenten-Einstellungen befinden sich weiterhin unter [agents] in Ihrer Konfiguration.

Feld Typ Erforderlich Zweck
agents.enabled boolean Nein Multi-Agent-Tools aktivieren oder deaktivieren.
agents.max_concurrent_threads_per_session number Nein Anzahl gleichzeitig geöffneter gestarteter Agenten-Threads begrenzen, ohne den primären Agenten.
agents.default_subagent_model string Nein Standardmodell für gestartete Agenten festlegen.
agents.default_subagent_reasoning_effort string Nein Standard-Reasoning-Aufwand für gestartete Agenten festlegen.
agents.interrupt_message boolean Nein Eine für das Modell sichtbare Nachricht aufzeichnen, wenn ein Agenten-Turn unterbrochen wird.

Hinweise:

  • agents.enabled ist standardmäßig true. Legen Sie den Wert auf false fest, um Multi-Agent-Tools zu deaktivieren.
  • Wenn Sie agents.max_concurrent_threads_per_session nicht festlegen, wählt Codex den Standardwert. Bestehende Konfigurationen können agents.max_threads weiterhin als veralteten Alias verwenden.
  • Explizite Startwerte überschreiben agents.default_subagent_model und agents.default_subagent_reasoning_effort.
  • agents.interrupt_message ist standardmäßig true. Legen Sie den Wert auf false fest, um die für das Modell sichtbare Unterbrechungsnachricht aus dem Kontext des Agenten wegzulassen.
  • Wenn der Name eines benutzerdefinierten Agenten mit einem integrierten Agenten wie explorer übereinstimmt, hat Ihr benutzerdefinierter Agent Vorrang.

Schema für benutzerdefinierte Agentendateien

Feld Typ Erforderlich Zweck
name string Ja Agentenname, den Codex beim Starten oder Verweisen auf diesen Agenten verwendet.
description string Ja Für Menschen bestimmte Hinweise dazu, wann Codex diesen Agenten verwenden sollte.
developer_instructions string Ja Kernanweisungen, die das Verhalten des Agenten definieren.

Verwenden Sie model, model_reasoning_effort, model_reasoning_summary und model_verbosity, um das Modellverhalten anzupassen. Die Konfigurationsreferenz beschreibt die zulässigen Werte.

Um die Funktionen eines benutzerdefinierten Agenten einzuschränken, setzen Sie unterstützte Funktionsschlüssel auf false: features.shell_tool, features.apps, features.plugins, features.memories oder features.request_permissions_tool. Deaktivieren Sie einzelne Skills mit skills.config oder mitgelieferte Skills mit skills.bundled.enabled = false. Setzen Sie skills.include_instructions = false, um den automatisch eingefügten Anweisungsblock für Skills wegzulassen. Zentral verwaltete Vorgaben gelten weiterhin.

Andere Sitzungseinstellungen, darunter sandbox_mode, approval_policy, model_provider und mcp_servers, überschreiben die übergeordnete Konfiguration nicht, wenn sie in einer benutzerdefinierten Agentendatei stehen. Auch die Servicestufe richtet sich nach der Präferenz der Stammsitzung. Konfigurieren Sie MCP server in der übergeordneten Sitzung, damit der Agent sie verwenden kann.

Codex identifiziert den benutzerdefinierten Agenten anhand seines Felds name. Den Dateinamen an den Agentennamen anzupassen, ist die einfachste Konvention, aber das Feld name ist die maßgebliche Quelle.

Beispiele für benutzerdefinierte Agenten

Die besten benutzerdefinierten Agenten sind eng umrissen und klar ausgerichtet. Geben Sie jedem eine eindeutige Aufgabe, eine zu dieser Aufgabe passende Tool-Oberfläche und Anweisungen, die verhindern, dass er in angrenzende Aufgabenbereiche abdriftet.

Die Beispiele verwenden GPT-6.1 Sol, sofern Ihr angemeldetes Konto oder Ihr Workspace Zugriff darauf hat. Falls es nicht verfügbar ist, wählen Sie ein Modell, das Sie verwenden können.

Beispiel 1: PR-Review

Dieses Muster verteilt das Review auf drei fokussierte benutzerdefinierte Agenten:

  • pr_explorer erfasst die Codebasis und sammelt Belege.
  • reviewer sucht nach Risiken hinsichtlich Korrektheit, Sicherheit und Tests.
  • docs_researcher prüft Framework- oder API-Dokumentation über einen dedizierten MCP server.

Projektkonfiguration (.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 8

[mcp_servers.openaiDeveloperDocs]
url = "https://developers.openai.com/mcp"

.codex/agents/pr-explorer.toml:

name = "pr_explorer"
description = "Read-only codebase explorer for gathering evidence before changes are proposed."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Stay in exploration mode.
Do not edit files.
Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them.
Prefer fast search and targeted file reads over broad scans.
"""

.codex/agents/reviewer.toml:

name = "reviewer"
description = "PR reviewer focused on correctness, security, and missing tests."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Review code like an owner.
Do not edit files.
Prioritize correctness, security, behavior regressions, and missing test coverage.
Lead with concrete findings, include reproduction steps when possible, and avoid style-only comments unless they hide a real bug.
"""

.codex/agents/docs-researcher.toml:

name = "docs_researcher"
description = "Documentation specialist that uses the docs MCP server to verify APIs and framework behavior."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Use the docs MCP server to confirm APIs, options, and version-specific behavior.
Return concise answers with links or exact references when available.
Do not make code changes.
"""

Diese Einrichtung eignet sich gut für Prompts wie:

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.

Beispiel 2: Fehlerbehebung bei der Frontend-Integration

Dieses Muster ist für UI-Regressionen, instabile Browserabläufe oder Integrationsfehler nützlich, die Anwendungscode und das laufende Produkt betreffen.

Projektkonfiguration (.codex/config.toml):

[agents]
max_concurrent_threads_per_session = 6

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
startup_timeout_sec = 20

.codex/agents/code-mapper.toml:

name = "code_mapper"
description = "Read-only codebase explorer for locating the relevant frontend and backend code paths."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Map the code that owns the failing UI flow.
Do not edit files.
Identify entry points, state transitions, and likely files before the worker starts editing.
"""

.codex/agents/browser-debugger.toml:

name = "browser_debugger"
description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Reproduce the issue in the browser, capture exact steps, and report what the UI actually does.
Use browser tooling for screenshots, console output, and network evidence.
Do not edit application code.
"""

.codex/agents/ui-fixer.toml:

name = "ui_fixer"
description = "Implementation-focused agent for small, targeted fixes after the issue is understood."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Own the fix once the issue is reproduced.
Make the smallest defensible change, keep unrelated files untouched, and validate only the behavior you changed.
"""

[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false

Diese Einrichtung eignet sich gut für Prompts wie:

Investigate why the settings modal fails to save. Have browser_debugger reproduce it, code_mapper trace the responsible code path, and ui_fixer implement the smallest fix once the failure mode is clear.