Einführung in Dynamic Workflows in Claude Code
Dieser Beitrag des Claude-Code-Teams von Anthropic (Thariq Shihipar, Sid Bidasaria) erklärt die neu eingeführte Funktion der Dynamic Workflows in Claude Code. Dynamic Workflows bedeuten, dass Claude passend zur Aufgabe spontan selbst eine eigene Ausführungsstruktur (Harness) in Form einer JavaScript-Datei schreibt und damit mehrere Subagenten koordiniert. Das bisherige Standard-Harness von Claude Code ist zwar für Coding-Aufgaben optimiert, stieß aber bei Aufgaben mit langer Laufzeit, groß angelegter Parallelität oder adversarieller Verifikation an Grenzen. Der Kernansatz besteht daher darin, Claude selbst ein maßgeschneidertes Harness erstellen zu lassen.
Hintergrund der Einführung und Funktionsweise
- Grenzen eines einzelnen Kontexts: Wenn Planung und Ausführung gleichzeitig in einem einzigen Kontextfenster stattfinden, treten drei Fehlermodi auf. Dazu gehören agentische Faulheit (agentic laziness), bei der die Aufgabe nur halb erledigt und dann als abgeschlossen erklärt wird, ein Selbstbevorzugungs-Bias (self-preferential bias), bei dem die eigenen Ergebnisse zu wohlwollend bewertet werden, sowie Zielabweichung (goal drift), bei der das ursprüngliche Ziel im Verlauf der Kontextkomprimierung unscharf wird.
- Struktur der Ausführung: Durch das Ausführen einer JavaScript-Datei werden Subagenten erzeugt und koordiniert; dabei können Standardfunktionen wie JSON, Math oder Array genutzt werden. Auch der Modelltyp jedes Subagenten (Sonnet, Opus usw.) sowie die Frage, ob eine Worktree-Isolierung verwendet wird, entscheidet der Workflow selbst. Nach einer Unterbrechung kann die Ausführung durch Wiederaufnahme der Session fortgesetzt werden.
- Aufruf: Man bittet Claude, einen Workflow zu erstellen, oder verwendet das Triggerwort "ultracode".
Zusammenfassung typischer Muster
- Klassifizieren und Weiterleiten (Classify and Route): Ein Klassifikator-Agent bestimmt zunächst den Aufgabentyp und verzweigt dann zu dem passenden Agenten oder Verarbeitungsfluss. Das lässt sich auch im letzten Schritt zur Ergebnisklassifikation einsetzen.
- Fan-out und Synthese (Fan-out and Synthesize): Eine große Aufgabe wird in kleine Einheiten zerlegt, für jede Einheit läuft ein eigener Agent, und in der Synthesephase werden alle Ergebnisse gesammelt und zu einem Ganzen zusammengeführt. Geeignet ist das für viele kleine Teilaufgaben, die jeweils einen sauberen Kontext benötigen.
- Adversarielle Verifikation (Adversarial Verification): Jedem Arbeitsagenten wird ein separater Verifikationsagent zugeordnet, der das Ergebnis anhand einer Rubric (Bewertungsraster) widerlegt und überprüft.
- Generieren und Filtern (Generate and Filter): Zunächst werden viele Ideen erzeugt, danach werden sie mithilfe von Rubric und Verifikation gefiltert und dedupliziert, sodass nur die qualitativ besten Kandidaten übrig bleiben.
- Turnier (Tournament): N Agenten bearbeiten dieselbe Aufgabe mit unterschiedlichen Ansätzen im Wettbewerb, und ein Jury-Agent ermittelt per paarweisem Vergleich (pairwise comparison) den Gewinner. Der Beitrag erklärt, dass paarweise Vergleiche zuverlässiger seien als absolute Punktbewertungen.
- Schleife bis zur Konvergenz (Loop Until Convergence): Wenn der Arbeitsumfang nicht im Voraus feststeht, wird die Erzeugung von Agenten so lange wiederholt, bis keine neuen Erkenntnisse oder Fehler mehr auftauchen.
Zusammenfassung der Anwendungsfälle
- Groß angelegte Refactorings und Migrationen: Die Arbeit wird nach Aufrufstellen, fehlgeschlagenen Tests oder Modulen aufgeteilt; in jedem Worktree nehmen Subagenten Änderungen vor, ein weiterer Agent prüft diese adversariell, anschließend wird zusammengeführt. Als reales Beispiel wird ein Rewrite von Zig nach Rust genannt; wenn man anweist, ressourcenintensive Befehle zu vermeiden, lässt sich die Parallelität maximieren.
- Deep Research (Skill
/deep-research): Websuche wird per Fan-out verteilt, Quellen werden gesammelt, Behauptungen adversariell verifiziert und anschließend zu einem Bericht mit Zitaten synthetisiert. Das lässt sich auch für das Schreiben von Statusberichten in Slack oder für eine tiefe Erkundung von Codebasen nutzen. - Faktenprüfung (Fact-Checking): Zuerst identifiziert ein Agent alle Tatsachenbehauptungen in einem Bericht, dann prüft für jede Behauptung ein Verifikations-Subagent die Quellen, und ein separater Verifikationsagent bewertet zusätzlich die Qualität dieser Quellen.
- Qualitatives Sortieren und Ranking: Aufgaben, die sich nicht auf einmal verarbeiten lassen, etwa das Sortieren von mehr als 1000 Support-Tickets nach Schweregrad, werden mit turnierartigen Pipelines für paarweise Vergleiche oder durch parallele Bucket-Aufteilung mit anschließendem Merge gelöst.
- Regelprüfung und Automatisierung von
CLAUDE.md: Für jede Regel können Verifikationsagenten eingesetzt werden, um Auslassungen zu finden, während ein Agent mit skeptischer Persona die Gültigkeit der Regeln selbst überprüft. Umgekehrt lassen sich wiederkehrende Korrekturen aus jüngsten Sessions und Code-Reviews clustern, um neue Regeln automatisch abzuleiten. - Debugging intermittierender Fehler und Postmortem-Analyse: Unabhängige Agenten bilden anhand getrennter Belege aus Logs, Dateien oder Daten jeweils Hypothesen, und ein Gremium aus Verifizierern und Widerlegern bewertet diese. Das ist nicht nur auf Code anwendbar, sondern auch auf die Analyse rückläufiger Umsätze oder Störungen in Datenpipelines.
- Triage und Backlog-Bearbeitung: Support-Queues und Bug-Reports werden klassifiziert, mit vorhandenen Einträgen dedupliziert und dann automatisch behoben oder an Menschen eskaliert. Empfohlen wird ein Quarantäne-Muster, das Agenten, die unzuverlässige externe Inhalte lesen, von Agenten trennt, die privilegierte Aktionen ausführen. In Kombination mit
/loopist auch ein Dauerbetrieb möglich. - Kreative Exploration und Evaluation (Eval): Bei Aufgaben wie Design oder Naming, in die Geschmack einfließt, werden viele Varianten erzeugt und anschließend von Review-Agenten anhand einer Rubric bewertet und ausgewählt. Das lässt sich auch für leichte Evaluationen zur Bewertung und Verbesserung der Qualität eines Skills selbst einsetzen.
- Modell-Routing (Model Routing): Ein Klassifikator-Agent untersucht vorab die Komplexität einer Aufgabe und leitet sie dann an das passende Modell weiter, etwa Sonnet oder Opus.
Vorteile und Unterscheidungsmerkmale
- Unterscheidungsmerkmal: Bestehende statische Workflows, die mit dem Claude Agent SDK oder
claude -perstellt werden, müssen für generalisierte Verarbeitung universell geschrieben sein. Dynamic Workflows unterscheiden sich dadurch, dass Claude jedes Mal spontan ein individuell zugeschnittenes Harness schreibt. - Vorteile: Mehrere Agenten mit getrennten Kontexten können sich jeweils auf ihr eigenes Ziel konzentrieren, wodurch Probleme wie Faulheit, Selbstbevorzugung und Zielabweichung strukturell reduziert werden. Hinzu kommen betriebliche Funktionen wie das Fortsetzen unterbrochener Sessions, das Festlegen eines Token-Budgets ("use 10k tokens"), die Kombination mit
/goalund/loopsowie das Speichern per Taste "s" und das Teilen über das Verzeichnis~/.claude/workflowsoder über Skills. - Nachteile und Vorsichtspunkte: Der Tokenverbrauch kann stark steigen, daher eignet sich der Ansatz nicht für jede Aufgabe. Auch die Autoren betonen klar, dass man für gewöhnliche Coding-Aufgaben kein Panel aus fünf Reviewern braucht, und empfehlen, sich vor dem Einsatz zu fragen: "Braucht das wirklich mehr Rechenaufwand?" Bewährte Praktiken befinden sich außerdem noch in der Entstehung.
Dynamic Workflows wirken wie eine Erweiterung von Claude Code vom einzelnen Coding-Assistenten hin zu einem Meta-Orchestrator, der viele Agenten koordiniert. Es ist ein Ansatz, der die Mitte zwischen statischen Pipelines und autonomen Agenten sucht und besonders bei langlaufenden strukturierten Aufgaben wie Code-Migrationen, Deep Research, Triage oder Postmortem-Analysen wirksam sein dürfte. Gleichzeitig sind die Token-Kosten hoch, und Best Practices sind noch nicht etabliert, sodass man die Eignung je Muster sorgfältig prüfen und zunächst klein mit "Quick Workflows" anfangen sollte.
Noch keine Kommentare.