Build This Now
Build This Now
Was ist der Claude Code?Claude Code installierenClaude Code Native InstallerDein erstes Claude Code-Projekt
DESIGN.md: KI-UI-Inkonsistenz behebenClaude Buddy/powerupDer Claude Code Source-Map-LeakFork Subagents in Claude CodeKimi K2.6 in Claude Code betreibenAuto Memory in Claude CodeAuto Memory in Claude CodeAuto Memory in Claude CodeAuto Memory in Claude Code
speedy_devvkoen_salo
Blog/Handbook/Core/Fork Subagents in Claude Code

Fork Subagents in Claude Code

CLAUDE_CODE_FORK_SUBAGENT=1 lässt parallele Kind-Agenten den Prompt-Cache-Prefix des Eltern-Agenten teilen, was die Input-Token-Kosten für Kinder 2-N um bis zu 90% senkt.

Hören Sie auf zu konfigurieren. Fangen Sie an zu bauen.

SaaS-Builder-Vorlagen mit KI-Orchestrierung.

Published Apr 22, 20266 min readHandbook hubCore index

Das Problem: Parallele Subagenten in Claude Code zu betreiben war teuer. Jeder Kind-Agent hat den System-Prompt, das komplette Tool-Array und die gesamte Konversationshistorie von Grund auf neu aufgebaut. Fünf Agenten bedeuteten fünf volle Input-Token-Rechnungen. Kein Sharing. Vor v2.1.117 existierte der Fork-Pfad zwar im Codebase, wurde aber in öffentlichen Releases per Compile-Time-Flag entfernt. Nur interne Anthropic-Builds konnten ihn nutzen.

Schneller Gewinn: Eine einzige Umgebungsvariable ändert die Rechnung. Setzt du CLAUDE_CODE_FORK_SUBAGENT=1, ziehen die Kinder 2-N ihren gemeinsamen Prefix direkt aus dem Prompt-Cache. Ungefähr 10x Kostenreduktion pro zusätzlichem Kind:

export CLAUDE_CODE_FORK_SUBAGENT=1

Was Fork Subagents wirklich sind

Ein Fork-Kind bekommt keine frische Session. Es bekommt die exakten Bytes des bereits gerenderten System-Prompts seines Eltern-Agenten, über override.systemPrompt aus toolUseContext.renderedSystemPrompt. Gleiche Bytes, kein Neu-Rendering. Das ist wichtig, weil Feature-Flag-Zustände (zum Beispiel GrowthBook) zwischen Eltern und Kind konsistent bleiben, ohne zusätzliche Koordination.

Das Tool-Array folgt der gleichen Regel. Es wird mit useExactTools: true durchgereicht, was resolveAgentTools() komplett umgeht. Die Serialisierung bleibt byte-identisch, und genau das macht den Prompt-Cache funktionsfähig. Eine Besonderheit: Das Agent-Tool bleibt im Tool-Pool des Kindes, obwohl das Kind es nicht aufrufen darf. Es zu entfernen würde den Cache brechen. Die Einschränkung wird anders durchgesetzt (dazu gleich mehr).

Jeder Eltern-Tool-Use-Block in der Nachrichtenhistorie des Kindes bekommt eine FORK_PLACEHOLDER_RESULT-Konstante ('Fork started -- processing in background') als Ergebnis. Jedes Kind empfängt identische Platzhalter-Bytes. Die Cache-Grenze liegt genau vor der kindspezifischen Direktive, sodass die Kinder erst bei der aufgabenspezifischen Anweisung auseinanderlaufen.

Vor v2.1.117 war dieser gesamte Pfad in öffentlichen Builds zur Compile-Zeit entfernt. Externe Nutzer konnten ihn überhaupt nicht auslösen.

Die Kostenrechnung

Bei 48.500 Tokens gemeinsamen Prefix sind die Zahlen konkret:

SzenarioToken-Kosten pro Kind
Ohne Fork (jedes Kind baut neu auf)~48.700 Tokens
Mit Fork (Kinder 2-N treffen Cache)~5.050 Tokens

Kind eins zahlt den vollen Preis. Es ist die erste Anfrage, der Cache ist noch leer. Kinder 2-N treffen den gemeinsamen Prefix und zahlen nur für das Delta.

Fünf Agenten parallel: Ohne Fork gibt man für gemeinsamen Kontext rund 243.500 Tokens aus. Mit Fork sind es ~48.700 für Kind eins plus ~20.200 für die Kinder zwei bis fünf. Den Rest erledigt der Cache.

Aktivierung

Die Umgebungsvariable ins Shell-Profil eintragen:

export CLAUDE_CODE_FORK_SUBAGENT=1

Für CI/CD-Pipelines: die Variable auf Pipeline-Ebene in den Umgebungsvariablen setzen. Jeder Agent-Run in dieser Pipeline nimmt sie automatisch auf.

Wichtig zu wissen: Fork springt nur an, wenn subagent_type beim Agent-Tool-Aufruf weggelassen wird. Gibt das Modell einen expliziten Typ an (zum Beispiel "Explore" oder "Plan"), löst der Fork-Pfad nicht aus. Die benannten Typen haben ihre eigene Logik.

Der rekursive Fork-Guard

Das hier taucht sonst nirgendwo auf.

Jedes Fork-Kind bekommt ein Standard-XML-Tag in seine Session injiziert. Das Tag besagt sinngemäß: Diese Anweisung gilt für den Eltern-Agenten. Du BIST der Fork. Spawne KEINE Sub-Agenten.

Ohne das würden Kinder versuchen, eigene Kinder zu forken, die dann weitere forken, und das Ganze würde so lange rekursieren, bis das Kontextfenster kollabiert. Das XML-Tag bricht die Kette.

Es gibt zwei Guards, nicht einen. Der erste ist ein querySource === 'agent:builtin:fork' Fast-Path-Check am Anfang des Agent-Options-Handlers. Der zweite ist ein Fallback-Scan der Nachrichtenhistorie, der nach dem Standard-XML-Tag selbst sucht. Der Fallback existiert, weil querySource durch autocompact bei langen Sessions überschrieben werden kann. Beide Checks müssen übereinstimmen, dass es sich um eine Fork-Kind-Session handelt, bevor der Guard greift.

Fork ist außerdem inkompatibel mit dem Coordinator-Modus. Ein geforkter Koordinator würde den "Du bist der Koordinator, delegiere Aufgaben"-System-Prompt des Eltern-Agenten erben und anfangen zu orchestrieren statt auszuführen. Die beiden Modi können keine Session teilen.

Was es ermöglicht

Parallele Agent-Dispatches sind der Hauptanwendungsfall. Fünf Agenten über fünf Module laufen gleichzeitig, und die Kinder 2-5 teilen den gecachten Prefix des Eltern-Agenten. Die Gesamtkosten für den gemeinsamen Kontext sinken auf ungefähr die Token-Kosten eines zusätzlichen Kindes.

CI/CD-Pipelines profitieren automatisch, sobald CLAUDE_CODE_FORK_SUBAGENT=1 in der Umgebung gesetzt ist. Multi-Agenten-Workflows, die bisher wegen der Kosten nicht skalierbar waren, werden praktikabel.

Das "Policy Islands"-Pattern wird ebenfalls nutzbar. Befehle mit context: fork und agent: <name> im Frontmatter spawnen isolierte Subagenten mit vorab deklarierten allowed_tools. Diese Subagenten laufen ohne Approval-Prompts mitten im Workflow und geben dem Eltern-Agenten nur eine Zusammenfassung zurück. Der Eltern-Agent sieht die Zwischen-Tool-Calls nie.

Bekannte Grenzen

  • Inkompatibel mit --print-Modus. Fork nutzt permissionMode: 'bubble', das Prompts an ein Eltern-Terminal übergibt. In non-interaktiven SDK/Headless-Runs gibt es kein Terminal.
  • Inkompatibel mit dem Coordinator-Modus. Ein geforkter Koordinator erbt Orchestrierungsanweisungen und versucht zu delegieren statt auszuführen.
  • Kontextfenster skaliert mit der Session-Länge. Fork-Kinder tragen die vollständige Eltern-Konversationshistorie. Lange Sessions mit vielen Kindern kosten insgesamt mehr, auch mit Caching. Lange, heiße Sessions sind der kritische Fall.
  • Opt-in, kein Standard. Die Umgebungsvariable muss explizit gesetzt werden. Ohne sie ändert sich nichts.

Was das im großen Maßstab freisetzt

Mit gesetztem CLAUDE_CODE_FORK_SUBAGENT=1 und Pro/Max-Nutzern, die jetzt standardmäßig bei high-Effort liegen (ebenfalls ab v2.1.117), ist die Kombination bedeutsam. Ein Orchestrator auf high-Effort dispatcht parallele Fork-Kinder. Jedes Kind erbt den vollständigen Eltern-Kontext zu Cache-Rabattpreisen. Jedes Kind läuft auf high-Effort. Vor diesem Release hatten Pro/Max-Nutzer beides nicht.

Die Umgebungsvariable setzen, fünf Agenten parallel laufen lassen, und vier davon kosten ungefähr ein Zehntel von früher. Das ist die ganze Geschichte.

Continue in Core

  • 1M-Kontext-Fenster in Claude Code
    Anthropic hat das 1-Mio.-Token-Kontextfenster für Opus 4.6 und Sonnet 4.6 in Claude Code aktiviert. Kein Beta-Header, kein Aufpreis, feste Preise und weniger Kompaktierungen.
  • AGENTS.md vs CLAUDE.md erklärt
    Zwei Kontext-Dateien, eine Codebase. Wie AGENTS.md und CLAUDE.md sich unterscheiden, was jede macht und wie du beide nutzt, ohne etwas zu duplizieren.
  • Auto Dream
    Claude Code räumt zwischen Sessions seine eigenen Projektnotizen auf. Veraltete Einträge werden gelöscht, Widersprüche aufgelöst, Themen-Dateien umsortiert. Starte mit /memory.
  • Automatischer Speicher in Claude Code
    Mit dem automatischen Speicher kann Claude Code die Projektnotizen weiterführen. Wo sich die Dateien befinden, was geschrieben wird, wie /memory es umschaltet und wann man es über CLAUDE.md auswählt.
  • Auto-Planning-Strategien
    Auto Plan Mode nutzt --append-system-prompt, um Claude Code in eine Plan-zuerst-Schleife zu zwingen. Dateioperationen pausieren zur Genehmigung, bevor irgendetwas angefasst wird.
  • Autonomes Claude Code
    Ein einheitlicher Stack für Agenten, die Features über Nacht ausliefern. Threads geben dir die Struktur, Ralph-Schleifen geben dir die Autonomie, Verifikation hält alles ehrlich.

More from Handbook

  • Grundlagen für Agenten
    Fünf Möglichkeiten, spezialisierte Agenten in Claude Code zu erstellen: Aufgaben-Unteragenten, .claude/agents YAML, benutzerdefinierte Slash-Befehle, CLAUDE.md Personas und perspektivische Aufforderungen.
  • Agent-Harness-Engineering
    Der Harness ist jede Schicht rund um deinen KI-Agenten, außer dem Modell selbst. Lern die fünf Steuerungshebel, das Constraint-Paradoxon und warum das Harness-Design die Performance des Agenten mehr bestimmt als das Modell.
  • Agenten-Muster
    Orchestrator, Fan-out, Validierungskette, Spezialistenrouting, Progressive Verfeinerung und Watchdog. Sechs Orchestrierungsformen, um Claude Code Sub-Agenten zu verdrahten.
  • Agent Teams Best Practices
    Bewährte Muster für Claude Code Agent Teams. Kontextreiche Spawn-Prompts, richtig bemessene Aufgaben, Datei-Eigentümerschaft, Delegate-Modus und Fixes für v2.1.33-v2.1.45.

Hören Sie auf zu konfigurieren. Fangen Sie an zu bauen.

SaaS-Builder-Vorlagen mit KI-Orchestrierung.

Der Claude Code Source-Map-Leak

Ein fehlender .npmignore-Eintrag hat 512K Zeilen TypeScript, 44 GrowthBook-Feature-Flags, den KAIROS-Daemon und den Undercover Mode mit jedem npm install ausgeliefert.

Kimi K2.6 in Claude Code betreiben

Kimi K2.6 ist das Open-Weight-Modell hinter Cursor. So routest du Claude Code über OpenRouter durch Kimi, für etwa 12 Dollar pro Entwickler und Monat.

On this page

Was Fork Subagents wirklich sind
Die Kostenrechnung
Aktivierung
Der rekursive Fork-Guard
Was es ermöglicht
Bekannte Grenzen
Was das im großen Maßstab freisetzt

Hören Sie auf zu konfigurieren. Fangen Sie an zu bauen.

SaaS-Builder-Vorlagen mit KI-Orchestrierung.