DeepSeek Harness Subagenten: Delegation als Kostenmultiplikator
Updated August 16, 2026 · first published August 16, 2026
Der schnellste Weg, eine Agentenrechnung zu vervielfachen, ist Agenten Agenten starten zu lassen. Aus einer Nutzeranfrage wird ein Baum, und der Baum hat keine natürliche Größe. DeepSeek Harness behandelt Delegation deshalb nicht als Feature, sondern als Naht mit expliziten Grenzen.
Subagenten sind eine Naht, kein Einbau
Delegation läuft über ctx.subagents. Anders als der Shell-Executor, der genau eine Implementierung hat, werden Subagenten-Provider namentlich registriert und mehrere können nebeneinander existieren. Die Dokumentation nennt sechs Transporte: In-Process-Spawning und Forking (gewöhnliche Agenten über den Kontext des Elternteils), eine ACP-Brücke für Remote-Deployment, Codex, Claude Code und eine SDK-basierte Variante.
Kostenseitig heißt das: Der Preis eines Kindes hängt davon ab, welcher Provider es erzeugt hat. Ein geforkter In-Process-Agent und ein über eine ACP-Brücke gestarteter Remote-Agent sehen im Aufrufcode gleich aus und haben völlig verschiedene Rechnungen.
Zwei Delegationsmodi, zwei Kostenprofile
| Modus | Form | Kostencharakteristik |
|---|---|---|
| One-Shot | Kind erzeugen, Prompt senden, Ergebnis abwarten, verwerfen | Begrenzt, dem Elternzug zurechenbar |
| Fortsetzbar | Dauerhafte Hintergrundsitzung mit residenter Aktivierung | Offen; akkumuliert über Züge hinweg |
One-Shot löst sich zu einem Run-Handle mit einem finalen Ergebnis-Promise auf. Fortsetzbare Kinder sind aufwendiger: Ein Continuation-Manager reserviert die Identität, komponiert das Kind, ordnet jeden Zug über dessen Inbox, und der Provider steuert nur die anfänglichen Erzeugungsmetadaten bei. Aktivierungen haben drei Zustände — laufend, wartend (ruhend, hält aber unabgeschlossene Kindaktivierungen) und abgeschlossen. Trifft eine Nachricht ein, ohne dass eine Aktivierung lebt, wird kalt aus der persistierten Sitzung fortgesetzt.
Kalte Fortsetzungen sind der Posten, den man vergisst. Der Zustand kommt aus dem Protokoll, also sind die Eingabe-Token proportional zur Protokollgröße. Ein langlebiges Kind, das selten angesprochen wird, kann pro Nachricht teurer sein als eines, das ständig läuft.
Capabilities scheitern laut, nicht leise
Das Harness validiert angeforderte Capabilities gegen den Provider und lehnt mit einem typisierten Fehler ab, statt still zu ignorieren. Die Start-Capabilities decken Ausgabeschemata, Tiefenlimits, Werkzeugfilter und Personas ab und stehen eins zu eins zu den Anfrageoptionen. Wer eine Option setzt, die der Provider nicht kann, bekommt das sofort zu sehen und nicht als überraschende Rechnungsposition.
Tiefe ist gedeckelt, und der Deckel lässt sich nicht umgehen
Die Delegationstiefe wird im Sitzungs-Header persistiert, und ein Laufzeitfeld führt den jeweils größeren Wert. Eine kalte Fortsetzung kann die Tiefe also nicht senken. Der Start wird abgelehnt, wenn die abgeleitete Tiefe maxDepth oder die Safe-Integer-Grenze überschreitet.
Ein Elternteil, das drei Kinder startet, die je drei weitere starten, hat aus einer Nutzeranfrage dreizehn Agenten gemacht. Tiefenlimits sind der Unterschied zwischen einem Fan-out, den Sie dimensioniert haben, und einem, den Sie entdeckt haben.
Entdeckung ist billig, Zustellung ist autoritativ
listChildren() liefert einen live bevorzugten Bestand über eine dreistufige Beschleunigung: Watermark-Cache, dann Projektions-Checkpoint, dann Inspektion der Persistenz. listDescendants() läuft in Pre-Order und ergänzt Eltern- und Tiefenpositionen. Keine der beiden Funktionen konsultiert Agentenregister, Aktivierungen oder Provider — die Nachrichtenzustellung bleibt autoritativ. Für die Kostenzurechnung heißt das: Sie können den Baum jederzeit günstig aufzählen.
Ergebnisse tragen einen Stop-Grund
Die Ausgabe ist die letzte nicht leere Assistenznachricht oder der akkumulierte Textstream; optionale strukturierte Ausgaben werden gegen das angeforderte Schema validiert. Der stopReason ist eine merge-erweiterbare Union: completed, aborted, error, max-tokens, refusal. Alles außer completed bedeutet Teilausgabe, die auf Fehler-Werkzeugergebnisse abgebildet wird — bezahlt, aber unvollständig.
Was zu messen ist
- Kinder pro Elternzug und Nachfahren pro Nutzeranfrage.
- Maximal beobachtete Tiefe gegen den konfigurierten Deckel.
- Anteil fortsetzbarer Kinder, die kalt fortgesetzt wurden, plus Protokollgröße beim Fortsetzen.
- Verteilung der Stop-Gründe — ein hoher Anteil an max-tokens oder error ist bezahlte, unfertige Arbeit.
Related
- Was ist DeepSeek Harness? Der Leitfaden
- Alles ist ein Plugin: die Architektur (EN)
- Ausgaben-Leitplanken im Harness (EN)
- Das Sitzungsprotokoll als Kostennachweis (EN)
Want this applied to your own LLM spend? FinOps LLM runs a free audit of your AI costs and shows where the savings are. Book free audit →