Delegieren Sie Aufgaben an unabhängige Subagenten, die im Vordergrund oder im Hintergrund arbeiten
Subagenten ermöglichen es dem Hauptagenten, unabhängige Worker zu starten, die Teilaufgaben übernehmen. Ein Subagent teilt Tools und den Kontext der Codebasis mit dem übergeordneten Agenten, arbeitet jedoch in einem eigenen Unterhaltungsstrang — er übernimmt nicht den Unterhaltungsverlauf des übergeordneten Agenten. Das ist nützlich für Aufgaben, die von fokussierter, unabhängiger Arbeit profitieren — etwa beim Erkunden einer Codebasis, beim Ausführen von Tests oder bei der parallelen Implementierung eines Features.Sie können den Agenten ausdrücklich bitten, Subagenten zu verwenden (z. B. „recherchiere in einem Subagenten, wie Authentifizierung funktioniert“), oder der Agent kann selbst entscheiden, einen Subagenten zu beauftragen, wenn er feststellt, dass eine Aufgabe von unabhängiger Arbeit profitieren würde.In unseren Messungen verbessernSubagentensowohl die Gesamtleistung beim Programmierenalsauchreduzieren sie die Kosten.
Wenn der Agent einen Subagent startet, wählt er eines der verfügbaren Subagent-Profile aus und legt fest, ob der Subagent im Vordergrund oder im Hintergrund ausgeführt werden soll. Subagents können in zwei Modi ausgeführt werden:
Vordergrund
Läuft direkt in Ihrer Sitzung. Der übergeordnete Agent pausiert und wartet, bis der Subagent fertig ist, bevor er fortfährt. Sie können Tool-Aufrufe genehmigen oder ablehnen, wenn sie anfallen.
Hintergrund
Läuft parallel, während der übergeordnete Agent weiterarbeitet. Der übergeordnete Agent wird automatisch benachrichtigt, wenn der Subagent abgeschlossen ist. Nicht genehmigte Tools werden automatisch abgelehnt.
Sie sehen die Rohausgabe des Subagenten nicht direkt. Wenn ein Subagent fertig ist, liest der übergeordnete Agent das Ergebnis und fasst die wichtigsten Befunde und Maßnahmen für Sie zusammen.
Jeder Subagent verwendet ein spezifisches Profil, das seine Fähigkeiten bestimmt. Es gibt zwei integrierte Profile:
Profil
Beschreibung
Tool-Zugriff
subagent_explore
Schreibgeschützte Analyse der Codebasis und Recherche
Schreibgeschützte Tools für die Codebasis plus Websuche; kann keine Dateien bearbeiten oder beliebige URLs abrufen (unabhängig davon, ob im Vorder- oder Hintergrund)
Voller Tool-Zugriff (Vordergrund) oder nur vorab genehmigte Tools (Hintergrund)
Der Agent wählt anhand der Aufgabe automatisch das passende Profil aus. Explore-Subagents sind ideal für Recherche und zum Verstehen, während allgemeine Subagents Änderungen vornehmen können.
Sie können auch eigene benutzerdefinierte Subagent-Profile definieren — siehe Custom Subagents weiter unten.
Wie Tool-Berechtigungen funktionieren, hängt davon ab, ob der Subagent im Vordergrund oder im Hintergrund ausgeführt wird:
Subagenten im Vordergrund verhalten sich wie der Hauptagent — Sie werden wie gewohnt aufgefordert, Tool-Aufrufe zuzulassen oder abzulehnen.
Subagenten im Hintergrund übernehmen alle Tool-Berechtigungen, die Sie in der aktuellen Sitzung bereits erteilt haben. Jedes Tool, das nicht vorab genehmigt wurde, wird automatisch abgelehnt. Subagenten im Hintergrund können keine neuen Berechtigungen anfordern.
Wenn ein Subagent im Hintergrund fehlschlägt, weil ein erforderliches Tool abgelehnt wurde, können Sie ihn im Vordergrund fortsetzen, um die erforderlichen Berechtigungen zu erteilen. Weitere Informationen finden Sie unten unter Subagenten fortsetzen.
Wenn Subagents im Hintergrund laufen, erscheint unter dem Eingabebereich ein Indikator, der ihren Status anzeigt. Sie können zum Indikator wechseln, indem Sie im Eingabebereich ↓ drücken und dann Enter, um das Subagent-Panel zu öffnen.Wenn ein Subagent im Vordergrund läuft, zeigt das Ladesymbol „Subagent wird ausgeführt · Ctrl+B, um ihn im Hintergrund auszuführen“ an.
Im Subagent-Panel können Sie alle aktiven und beendeten Subagents anzeigen und verwalten. Es zeigt für jeden Subagent das Profil, den Titel, den Status, die verstrichene Zeit und die Anzahl der Tool-Aufrufe an.
Du kannst Subagents während der Ausführung zwischen Vordergrund und Hintergrund verschieben:
Einen Subagent aus dem Vordergrund in den Hintergrund verschieben: Drücke Ctrl+B, während ein Subagent im Vordergrund läuft. Der Subagent arbeitet im Hintergrund weiter, und der übergeordnete Agent setzt seine Arbeit fort.
Einen Subagent aus dem Hintergrund in den Vordergrund holen: Öffne das Subagent-Panel und drücke f bei einem laufenden Subagent im Hintergrund. Die Ausgabe des Subagents wird inline angezeigt.
Wenn du einen Subagent in den Hintergrund verschiebst, ist der Tool-Aufruf des übergeordneten Agenten bereits zurückgekehrt, sodass der übergeordnete Agent unabhängig weiterarbeitet. Das Ergebnis des Subagents fließt nicht in die aktuelle Pipeline des übergeordneten Agenten zurück, aber du wirst benachrichtigt, wenn er fertig ist.
Abgebrochene, fehlgeschlagene oder abgeschlossene Subagenten können mit einem neuen Prompt fortgesetzt werden. Du kannst den Agenten bitten, einen Subagenten fortzusetzen; er macht dann dort weiter, wo er aufgehört hat. Fortgesetzte Subagenten werden immer im Vordergrund ausgeführt, sodass du alle Tool-Aufrufe genehmigen kannst, die zuvor abgelehnt wurden.Das ist besonders nützlich, wenn:
Ein Subagent im Hintergrund fehlgeschlagen ist, weil ein erforderlicher Tool-Aufruf abgelehnt wurde — setze ihn im Vordergrund fort, um die nötigen Berechtigungen zu erteilen.
Ein Subagent abgeschlossen ist, du aber möchtest, dass er auf Grundlage seiner Befunde weitere Folgearbeiten ausführt.
Ein Subagent vorzeitig abgebrochen wurde und du möchtest, dass er weiterläuft.
Standardmäßig können Subagents keine eigenen Subagents starten — das kann nur der Root-Agent. Subagent-Tools (run_subagent und read_subagent) sind innerhalb eines Subagents deaktiviert, um eine unbegrenzte Verschachtelung zu verhindern.Benutzerdefinierte Subagent-Profile können jedoch die verschachtelte Erstellung aktivieren, indem sie das Feld max-nesting in ihrem Frontmatter festlegen. Dieser Wert überschreibt die Standard-Maximaltiefe und erlaubt es Subagents, untergeordnete Agents zu starten, solange der Baum innerhalb dieses Limits bleibt.Zum Beispiel erlaubt max-nesting: 3 die folgende Kette:
Root agent (Tiefe 0)└── Custom subagent (Tiefe 1) — kann untergeordnete Agenten erzeugen └── Child subagent (Tiefe 2) — kann untergeordnete Agenten erzeugen └── Grandchild subagent (Tiefe 3) — kann keine untergeordneten Agenten erzeugen (Tiefenlimit erreicht)
Verschachtelte Subagents können die Kosten erheblich steigern. Jede Verschachtelungsebene startet zusätzliche Agenten mit eigenen Kontextfenstern und Inferenzaufrufen. Setze diese Funktion gezielt ein.
Benutzerdefinierte Subagents sind experimentell. Das Format, das Verhalten und die Konfigurationsoptionen können sich in zukünftigen Versionen ändern.
Zusätzlich zu den integrierten Profilen subagent_explore und subagent_general können Sie eigene benutzerdefinierte Subagent-Profile definieren. Mit benutzerdefinierten Subagents können Sie spezialisierte Subagents mit eigenen Systemprompts, Tooleinschränkungen, Modell-Overrides und Berechtigungen erstellen — zugeschnitten auf bestimmte Aufgaben in Ihrem Workflow.
Benutzerdefinierte Subagenten werden als AGENT.md-Dateien in einem benannten Verzeichnis unter agents/ definiert. Der Verzeichnisname wird zur Kennung des Profils.
Eine AGENT.md-Datei verwendet dasselbe YAML-Frontmatter wie Skills, gefolgt vom System-Prompt des Subagenten:
---name: reviewerdescription: Reviews code changes for correctness and stylemodel: sonnetallowed-tools: - read - grep - glob - execpermissions: allow: - Exec(git diff) - Exec(git log) deny: - write - edit---You are a code review subagent. Your job is to review code changesthoroughly and report findings back to the parent agent.Focus on:1. Correctness — logic errors, edge cases, off-by-one mistakes2. Security — potential vulnerabilities3. Style — consistency with the rest of the codebase4. Performance — obvious inefficienciesAlways cite specific file paths and line numbers in your findings.
Sobald benutzerdefinierte Subagent-Profile definiert sind, erscheinen sie neben den integrierten Profilen. Der Agent sieht eine Beschreibung jedes verfügbaren Profils und wählt beim Erstellen eines Subagenten das am besten geeignete aus. Sie können den Agenten auch bitten, ein bestimmtes Profil anhand seines Namens zu verwenden (z. B. „Prüfe diesen Code mit dem Reviewer-Subagenten“).Benutzerdefinierte Subagent-Profile, deren Namen mit dem eines integrierten Profils kollidieren (z. B. subagent_explore, subagent_general), werden mit einer Warnung übersprungen.
---name: researcherdescription: Deep codebase research and architecture analysismodel: sonnetallowed-tools: - read - grep - glob---You are a research subagent specializing in codebase exploration.Your job is to thoroughly investigate a topic and report back with:- Relevant files and their purposes- Architecture patterns and dependencies- Code flow traces with specific line referencesBe exhaustive — search broadly and follow references.
---name: test-runnerdescription: Runs tests and reports resultsallowed-tools: - read - grep - glob - execpermissions: allow: - Exec(npm run test) - Exec(cargo nextest) - Exec(pytest)---You are a test runner subagent. Run the relevant test suites and report:- Which tests passed and failed- Failure messages and stack traces- Suggestions for fixing failures