Sub-Agents¶
Unteragenten ermöglichen es Ihnen, Hintergrundaufgaben auszuführen, ohne die Hauptkonversation zu blockieren. Wenn Sie einen Unteragenten starten, läuft er in einer eigenen isolierten Sitzung, erledigt seine Arbeit und meldet das Ergebnis nach Abschluss im Chat.
Anwendungsfälle:
- Ein Thema recherchieren, während der Hauptagent weiterhin Fragen beantwortet
- Mehrere lange Aufgaben parallel ausführen (Web-Scraping, Code-Analyse, Dateiverarbeitung)
- Aufgaben an spezialisierte Agenten in einem Multi-Agenten-Setup delegieren
Schnellstart¶
Der einfachste Weg, Unteragenten zu verwenden, ist, Ihren Agenten ganz natürlich zu bitten:
"Starte einen Unteragenten, um die neuesten Node.js-Release-Notes zu recherchieren"
Der Agent ruft im Hintergrund das Tool sessions_spawn auf. Wenn der Unteragent fertig ist, gibt er seine Ergebnisse wieder in Ihren Chat zurück.
Sie können Optionen auch explizit angeben:
"Starte einen Unteragenten, um die Server-Logs von heute zu analysieren. Verwende gpt-5.2 und setze ein 5-Minuten-Timeout." Der Hauptagent ruft
sessions_spawnmit einer Aufgabenbeschreibung auf.
Funktionsweise¶
{ status: "accepted", runId, childSessionKey } zurück.
Eine neue isolierte Sitzung wird erstellt (agent:
:subagent:) in der dedizierten Warteschlangen-Spur subagent.
subagents.model nicht gesetzt ist) Thinking: keine Überschreibung für Unteragenten (sofern subagents.thinking nicht gesetzt ist)
Konfiguration¶
Max. gleichzeitig: 8 Standardwerte:
- Automatische Archivierung: nach 60 Minuten
- Festlegen eines Standardmodells
- Verwenden Sie ein günstigeres Modell für Unteragenten, um Token-Kosten zu sparen:
- { agents: { defaults: { subagents: { model: "minimax/MiniMax-M2.1", }, }, }, }
Festlegen eines Standard-Thinkinglevels¶
Use a cheaper model for sub-agents to save on token costs:
{
agents: {
defaults: {
subagents: {
model: "minimax/MiniMax-M2.1",
},
},
},
}
Setting a Default Thinking Level¶
{
agents: {
defaults: {
subagents: {
thinking: "low",
},
},
},
}
Pro-Agent-Überschreibungen¶
In einer Multi-Agenten-Konfiguration können Sie Sub-Agent-Standards pro Agent festlegen:
{
agents: {
list: [
{
id: "researcher",
subagents: {
model: "anthropic/claude-sonnet-4",
},
},
{
id: "assistant",
subagents: {
model: "minimax/MiniMax-M2.1",
},
},
],
},
}
Konwährung¶
Steuern Sie, wie viele Sub-Agenten gleichzeitig ausgeführt werden können:
{
agents: {
defaults: {
subagents: {
maxConcurrent: 4, // default: 8
},
},
},
}
Sub-Agenten verwenden eine dedizierte Warteschlangenspur (subagent), die von der Haupt-Agenten-Warteschlange getrennt ist, sodass Sub-Agent-Läufe eingehende Antworten nicht blockieren.
Automatisches Archivieren¶
Sub-Agent-Sitzungen werden nach einem konfigurierbaren Zeitraum automatisch archiviert:
{
agents: {
defaults: {
subagents: {
archiveAfterMinutes: 120, // default: 60
},
},
},
}
*.deleted.<timestamp> um (gleicher Ordner) — Transkripte werden erhalten, nicht gelöscht. Automatische Archivierungs-Timer sind Best-Effort; ausstehende Timer gehen verloren, wenn das Gateway neu startet.
Das sessions_spawn-Tool¶
Dies ist das Tool, das der Agent aufruft, um Sub-Agenten zu erstellen.
Parameter¶
| Parameter | Typ | Default | Description |
|---|---|---|---|
task |
string | (erforderlich) | Was der Sub-Agent tun soll |
label |
string | — | Kurze Bezeichnung zur Identifikation |
agentId |
string | (Agent des Aufrufers) | Unter einer anderen Agenten-ID starten (muss erlaubt sein) |
modell |
string | (optional) | Überschreiben des Modells für diesen Sub-Agenten |
thinking |
string | (optional) | Überschreiben der Denkstufe (off, low, medium, high usw.) |
runTimeoutSeconds |
Zahl | 0 (keine Begrenzung) |
Den Sub-Agenten nach N Sekunden abbrechen |
aufräumen |
"delete" | "keep" | "keep" | "delete" archiviert unmittelbar nach der Ankündigung |
Modellauflösungsreihenfolge¶
Das Sub-Agenten-Modell wird in dieser Reihenfolge aufgelöst (erste Übereinstimmung gewinnt):
- Expliziter
model-Parameter imsessions_spawn-Aufruf - Pro-Agent-Konfiguration:
agents.list[].subagents.model - Globaler Standard:
agents.defaults.subagents.model - Normale Modellauflösung des Zielagenten für diese neue Sitzung
Die Denkstufe wird in dieser Reihenfolge aufgelöst:
- Expliziter
thinking-Parameter imsessions_spawn-Aufruf - Pro-Agent-Konfiguration:
agents.list[].subagents.thinking - Globaler Standard:
agents.defaults.subagents.thinking - Andernfalls wird keine sub-agent-spezifische Denk-Überschreibung angewendet
Agentenübergreifendes Spawnen¶
Standardmäßig können Sub-Agenten nur unter ihrer eigenen Agenten-ID gestartet werden. 1. Um es einem Agenten zu ermöglichen, Sub-Agenten unter anderen Agenten-IDs zu starten:
2. {
agents: {
list: [
{
id: "orchestrator",
subagents: {
allowAgents: ["researcher", "coder"], // oder ["*"] um alle zu erlauben
},
},
],
},
}
agents_list, um herauszufinden, welche Agenten-IDs derzeit für sessions_spawn erlaubt sind.
4. Sub-Agenten verwalten (/subagents)¶
- Verwenden Sie den Slash-Befehl
/subagents, um Sub-Agent-Läufe für die aktuelle Sitzung zu inspizieren und zu steuern:
| Befehl | Beschreibung |
|---|---|
/subagents list |
6. Alle Sub-Agent-Läufe auflisten (aktiv und abgeschlossen) |
/subagents stop <id\\|#\\|all> |
7. Einen laufenden Sub-Agenten stoppen |
/subagents log <id\\|#> [limit] [tools] |
8. Sub-Agent-Transkript anzeigen |
/subagents info <id\\|#> |
9. Detaillierte Lauf-Metadaten anzeigen |
/subagents send <id\\|#> <message> |
10. Eine Nachricht an einen laufenden Sub-Agenten senden |
- Sie können Sub-Agenten per Listenindex (
1,2), Run-ID-Präfix, vollständigem Sitzungsschlüssel oderlastreferenzieren.
/subagents list
````
13. ```
🧭 Subagents (aktuelle Sitzung)
Aktiv: 1 · Abgeschlossen: 2
1) ✅ · research logs · 2m31s · run a1b2c3d4 · agent:main:subagent:...
2) ✅ · check deps · 45s · run e5f6g7h8 · agent:main:subagent:...
3) 🔄 · deploy staging · 1m12s · run i9j0k1l2 · agent:main:subagent:...
```
```
/subagents stop 3
```
```
⚙️ Stopp für deploy staging angefordert.
```
````
/subagents info 1
````
15. ```
ℹ️ Subagent-Info
Status: ✅
Bezeichnung: research logs
Aufgabe: Die neuesten Server-Fehlerprotokolle recherchieren und die Ergebnisse zusammenfassen
Run: a1b2c3d4-...
Sitzung: agent:main:subagent:...
Laufzeit: 2m31s
Aufräumen: behalten
Ergebnis: ok
```
````
/subagents log 1 10
````
17. Zeigt die letzten 10 Nachrichten aus dem Transkript des Sub-Agenten. Fügen Sie `tools` hinzu, um Tool-Call-Nachrichten einzuschließen:
```
/subagents log 1 10 tools
```
````
/subagents send 3 "Also check the staging environment"
```
19. Sendet eine Nachricht in die Sitzung des laufenden Sub-Agenten und wartet bis zu 30 Sekunden auf eine Antwort.
```
20. Ankündigen (Wie Ergebnisse zurückkommen)¶
-
Wenn ein Sub-Agent fertig ist, durchläuft er einen announce-Schritt:
-
- Die finale Antwort des Sub-Agenten wird erfasst
-
- Eine Zusammenfassungsnachricht mit Ergebnis, Status und Statistiken wird an die Sitzung des Hauptagenten gesendet
-
- Der Hauptagent postet eine natürlichsprachliche Zusammenfassung in Ihren Chat
Announce-Antworten bewahren, sofern verfügbar, Thread-/Themen-Routing (Slack-Threads, Telegram-Themen, Matrix-Threads).
25. Ankündigungsstatistiken¶
- Jede Ankündigung enthält eine Statistikzeile mit:
-
- Laufzeitdauer
- Tokenverbrauch (Eingabe/Ausgabe/Gesamt)
-
- Geschätzte Kosten (wenn die Modellbepreisung über
models.providers.*.models[].costkonfiguriert ist)
- Geschätzte Kosten (wenn die Modellbepreisung über
-
- Sitzungsschlüssel, Sitzungs-ID und Transkriptpfad
30. Ankündigungsstatus¶
- Die Ankündigungsnachricht enthält einen Status, der aus dem Laufzeitergebnis abgeleitet ist (nicht aus der Modellausgabe):
-
- erfolgreicher Abschluss (
ok) — Aufgabe normal abgeschlossen
- erfolgreicher Abschluss (
-
- Fehler — Aufgabe fehlgeschlagen (Fehlerdetails in den Notizen)
-
- Zeitüberschreitung — Aufgabe hat
runTimeoutSecondsüberschritten
- Zeitüberschreitung — Aufgabe hat
-
- unbekannt — Status konnte nicht ermittelt werden
NO_REPLY zurückgeben und es wird nichts gepostet.
37. Dies unterscheidet sich von ANNOUNCE_SKIP, das im Agent-zu-Agent-Ankündigungsfluss (sessions_send) verwendet wird.
38. Tool-Richtlinie¶
- Standardmäßig erhalten Sub-Agenten alle Tools außer einer Reihe verweigerter Tools, die für Hintergrundaufgaben unsicher oder unnötig sind:
sessions_list | Sitzungsverwaltung — Hauptagent orchestriert |
| sessions_history | Sitzungsverwaltung — Hauptagent orchestriert |
| sessions_send | Sitzungsverwaltung — Hauptagent orchestriert |
| sessions_spawn | Kein verschachteltes Fan-out (Sub-Agenten können keine Sub-Agenten starten) |
| gateway | Systemadministration — gefährlich für Sub-Agenten |
| agents_list | Systemadministration |
| whatsapp_login | Interaktive Einrichtung — keine Aufgabe |
| session_status | Status/Planung — Hauptagent koordiniert |
| cron | Status/Planung — Hauptagent koordiniert |
| memory_search | Relevante Informationen stattdessen im Spawn-Prompt übergeben |
| memory_get | Relevante Informationen stattdessen im Spawn-Prompt übergeben |
41. Sub-Agent-Tools anpassen¶
- Sie können die Tools für Sub-Agenten weiter einschränken:
43. {
tools: {
subagents: {
tools: {
// deny gewinnt immer über allow
deny: ["browser", "firecrawl"],
},
},
},
}
- Um Sub-Agenten auf nur bestimmte Tools zu beschränken:
45. {
tools: {
subagents: {
tools: {
allow: ["read", "exec", "process", "write", "edit", "apply_patch"],
// deny gewinnt weiterhin, falls gesetzt
},
},
},
}
allow gesetzt ist, sind nur diese Tools verfügbar (die Standard-Deny-Liste gilt weiterhin zusätzlich).
Authentifizierung¶
Die Sub-Agent-Authentifizierung wird nach Agent-ID aufgelöst, nicht nach Sitzungstyp:
-
- Der Auth-Store wird aus dem
agentDirdes Zielagenten geladen
- Der Auth-Store wird aus dem
-
- Die Auth-Profile des Hauptagenten werden als Fallback zusammengeführt (Agentenprofile gewinnen bei Konflikten)
-
- Die Zusammenführung ist additiv — Hauptprofile sind immer als Fallbacks verfügbar
Context and System Prompt¶
Sub-agents receive a reduced system prompt compared to the main agent:
- Included: Tooling, Workspace, Runtime sections, plus
AGENTS.mdandTOOLS.md - Not included:
SOUL.md,IDENTITY.md,USER.md,HEARTBEAT.md,BOOTSTRAP.md
The sub-agent also receives a task-focused system prompt that instructs it to stay focused on the assigned task, complete it, and not act as the main agent.
Stopping Sub-Agents¶
| Method | Effect |
|---|---|
/stop in the chat |
Aborts the main session and all active sub-agent runs spawned from it |
/subagents stop <id> |
Stops a specific sub-agent without affecting the main session |
runTimeoutSeconds |
Automatically aborts the sub-agent run after the specified time |
runTimeoutSeconds does not auto-archive the session. The session remains until the normal archive timer fires.
Full Configuration Example¶
{
agents: {
defaults: {
model: { primary: "anthropic/claude-sonnet-4" },
subagents: {
model: "minimax/MiniMax-M2.1",
thinking: "low",
maxConcurrent: 4,
archiveAfterMinutes: 30,
},
},
list: [
{
id: "main",
default: true,
name: "Personal Assistant",
},
{
id: "ops",
name: "Ops Agent",
subagents: {
model: "anthropic/claude-sonnet-4",
allowAgents: ["main"], // ops can spawn sub-agents under "main"
},
},
],
},
tools: {
subagents: {
tools: {
deny: ["browser"], // sub-agents can't use the browser
},
},
},
}
Einschränkungen¶
maxConcurrent as a safety valve.
- Auto-archive is best-effort: Pending archive timers are lost on gateway restart.
Siehe auch¶
- Session Tools — details on
sessions_spawnand other session tools - Multi-Agent Sandbox and Tools — per-agent tool restrictions and sandboxing
- Configuration —
agents.defaults.subagentsreference - Queue — how the
subagentlane works