Skip to content

Subagenten-Delegation

源码版本v2026.7.20

Verantwortung

delegate_tool lässt den Haupt-Agenten eine Teilaufgabe an einen isolierten Subagenten delegieren: Der Subagent hat einen eigenen Dialog, ein eigenes Terminal, einen eigenen Werkzeugsatz; wenn er fertig ist, gibt er nur das finale Ergebnis an den Vater-Agenten zurück. Das realisiert eine Pipeline mit «null Kontextkosten» – der Kontext des Vaters wird nicht mit Prozessdetails der Teilaufgabe verschmutzt. Der Subagent läuft in einem ThreadPoolExecutor-Worker; gefährliche Befehle sind per Default auto-deny (konfigurierbar auf auto-approve).

Schlüsseldateien

Datenfluss

  1. Die Hauptschleife erhält vom Provider tool_call: delegate.
  2. delegate_task:2426 wird aufgerufen und erhält die Beschreibung der Teilaufgabe sowie optionale Toolsets.
  3. In DaemonThreadPoolExecutor:2651 wird ein Worker gestartet:
    • der Worker-Installer installiert den Approval-Callback (tools/delegate_tool.py:102); per Default auto-deny für gefährliche Befehle
    • der Subagent baut seinen eigenen Dialogkontext auf und ruft run_conversation:588 auf, um die Schleife zu drehen
    • Werkzeugaufrufe des Subagenten laufen über registry:765 (Toolsets können vom Vater eingeschränkt werden)
  4. Nach Abschluss gibt der Subagent nur den finalen Text zurück; delegate_task verpackt ihn über tool_result:798 und füllt ihn beim Vater auf.
  5. Der Kontext des Vaters wächst nur um ein Tool-Ergebnis, nicht um Prozessdetails.

Zusammenfassung

Subagenten-Delegation = Kontext-Isolation + Kontrolle gefährlicher Befehle. Der Vater sieht nur das Ergebnis, nicht den Prozess, was lange Pipelines vor Prozessrauschen schützt. Standard ist auto-deny; für Batch-/Cron-Szenarien lässt sich auto-approve opt-in einschalten. Die Terminal-Ausführung fällt auf die Sandbox-Backends.

Inoffizielle Community-Lernseite. Basiert auf dem MIT-lizenzierten NousResearch/hermes-agent-Quellcode.