Zum Inhalt springen

Deterministische Sub-Agent Orchestration mit Claude Mods

Eine Regel zur Delegation, die im Prompt steht, ist eine Empfehlung: Das Modell wägt sie gegen alles andere im Context ab und kann sich darüber hinwegsetzen. Ein Mod setzt dieselbe Regel bei jedem Agent Call als Code durch. Jede Aufgabe geht an den Sub-Agent, dessen Tools zu ihr passen, und läuft auf dem günstigsten Modell, das sie lösen kann.

Teil 1: Der Mod bringt jede Aufgabe zum passenden Specialist und Modell

Spezialisierte Sub-Agents liefern bessere Arbeit zu niedrigeren Kosten

Drei Dinge bestimmen einen Sub-Agent: sein Prompt mit Anweisungen, Skills und House Rules, seine Tools wie der MCP Server der Angular CLI und Chrome DevTools und sein Modell. Ein Specialist, bei dem diese Konfiguration stimmt, arbeitet besser und günstiger als ein General-purpose Agent.

Vier Karten im Vergleich: der Orchestrator auf Opus plant mit den Tools Agent, Read, Glob, Grep und Bash; der fact-gatherer auf Haiku erstellt nur lesend ein Inventory, Write, Edit und Bash sind gestrichen; angular-expert auf Sonnet baut mit angular-cli, chrome-devtools und den Skills angular-conventions und ui-ux-pro-max; deployment-engineer auf Sonnet deployt mit gh CLI, Secrets Store, GitHub Actions und deploy-hetzner-box

Der Orchestrator plant auf Opus, der fact-gatherer erstellt auf Haiku ein Inventory dessen, was vorhanden ist, angular-expert und deployment-engineer arbeiten auf Sonnet mit den Tools und Skills ihres Stacks. Für ein Inventory reicht das günstige und schnelle Haiku 5.5. Sonnet übernimmt Implementation und Tests innerhalb eines Stacks, Opus die Planung und kreative Arbeit.

Drei Spalten mit dem Modell, das eine Aufgabe typischerweise braucht: Haiku mit einem Dollarzeichen für ein Inventory dessen, was vorhanden ist, mit fact-gatherer; Sonnet mit zwei Dollarzeichen für Implementation und Tests in einem Stack mit angular-expert, dotnet-expert, hugo-expert und playwright-expert, wobei angular-expert hervorgehoben ist; Opus mit drei Dollarzeichen für Planung und kreative Arbeit mit content-writer und media-creator

Wie das abläuft, zeigt eine einfache Two-Tier App, von der Anfrage bis zum geprüften Ergebnis: „Feld X zu Liste Y hinzufügen“. Ein Inventory auf Haiku sammelt die Fakten, von denen der Contract abhängt, je ein Specialist auf Sonnet setzt die Hälfte seines Tier um, und Opus plant und prüft. Jeder Schritt läuft auf dem günstigsten Modell, das ihn schafft. Der Contract steht in einem gemeinsamen Ledger, aus dem jeder Agent dieselben Fakten liest. So geht kein Detail verloren, wenn Zusammenfassungen von Agent zu Agent wandern, und ein Prozess, der abbricht, etwa weil ihm die Token ausgehen oder sein Cache verfällt, setzt beim Stand im Ledger wieder auf.

Ablauf in vier Schritten: Der Orchestrator auf Opus schickt das Inventory an den fact-gatherer auf Haiku, der jede Stelle mit path:line meldet, an der das Feld vorkommt; der Orchestrator hält den Contract im gemeinsamen Ledger fest, owner als string oder null, höchstens 100 Zeichen, JSON-Name owner; danach arbeiten dotnet-expert für den API Tier und angular-expert für den Client Tier parallel auf Sonnet; ihre Claims werden im Main Thread anhand von Diff und Build geprüft

Der Ablauf hat vier Schritte. Zuerst sucht der fact-gatherer auf Haiku jede Stelle im Code, an der das Feld vorkommt, und meldet sie mit Datei und Zeile. Daraus legt der Orchestrator den Contract im Ledger fest, im Beispiel ein Feld owner, Text oder leer, höchstens 100 Zeichen. Dann setzen dotnet-expert im API Tier und angular-expert im Client Tier parallel auf Sonnet um. Zum Schluss prüft der Main Thread ihre Claims an Diff und Build.

Mit dem Agent wählen Sie sein Modell samt Kosten sowie seine Expertise: System Prompt und Tools, etwa die Angular CLI für angular-expert oder die gh CLI für deployment-engineer, entscheiden, wie gut die Arbeit wird.

Ob eine Regel zur Delegation greift, entscheidet das Modell

Ob Claude Code eine Aufgabe delegiert und an wen, entscheidet das Modell anhand von Prompt-Text. Eine Agent Description erhöht nur die Wahrscheinlichkeit einer Delegation. So landet Angular-Arbeit, die angular-expert auf Sonnet erledigen würde, bei einem General-purpose Agent. Der übernimmt das Opus-Modell des Orchestrator, und ihm fehlen die passenden Tools wie der MCP Server der Angular CLI und Chrome DevTools. Das Ergebnis hält sich nicht an die Standards, die im Specialist festgelegt sind, stimmt oft nicht, und die Token werden ineffizient eingesetzt.

Terminal-Verlauf: Beide Agents dotnet-expert und angular-expert laufen auf Sonnet, die CLAUDE.md verlangt, Arbeit an den zuständigen Expert zu geben; der User bittet um Feld X in Liste Y in der .NET API und im Angular Client; Claude teilt den Auftrag in einen Prompt pro Tier, gibt die API an dotnet-expert auf Sonnet und den Client-Prompt an einen General-purpose Agent, der Opus erbt; auf die Frage, warum angular-expert den Client nicht übernommen hat, antwortet Claude, die Regel in der CLAUDE.md sei eine Anweisung, die es gegen den restlichen Context abwägt, und nichts in der Harness setze sie durch

Im Beispiel verlangt die CLAUDE.md, Arbeit an den zuständigen Specialist zu geben. Claude gibt die API an dotnet-expert auf Sonnet und den Client-Prompt an einen General-purpose Agent, der Opus übernimmt; angular-expert startet nie. Auf Nachfrage erklärt Claude selbst, warum: Die Regel in der CLAUDE.md ist eine Anweisung, die es gegen den restlichen Context abwägt, und nichts in der Harness setzt sie durch.

Hooks halten die CLAUDE.md kurz und wiederholen ihre Regeln vor jedem Prompt

Vor den Mods standen die Regeln zur Delegation wie eine Verfassung in der CLAUDE.md, und Hooks setzten sie durch. claude-md-guard.sh sorgte dafür, dass die Claude Constitution nicht unnötig aufgebläht wurde. delegation-reminder.sh brachte vor jedem Prompt den Skill Check und die Regeln zur Delegation erneut in den Context, gegen Context Decay: In einer langen Session verlieren frühe Anweisungen an Gewicht, je mehr neuer Text in den Context kommt.

Links die Regeln zur Delegation in der CLAUDE.md, fünf durchsetzbare und drei, die Urteilsvermögen brauchen; rechts die zwei Hooks: claude-md-guard.sh läuft nach jeder Änderung der CLAUDE.md und blockiert sie bei mehr als 120 Zeilen, fehlenden Abschnitten, Inventories oder nicht existierenden src-Ordnern; delegation-reminder.sh fügt die Regeln vor jedem Prompt erneut ein; ein roter Hinweis: Keiner der beiden Hooks läuft beim Agent Call, das Modell wählt den Sub-Agent weiterhin selbst

Fünf der Regeln in der CLAUDE.md lassen sich prüfen und damit durchsetzen, drei brauchen Urteilsvermögen.

Ein Mod setzt die Regeln zur Delegation bei jedem Agent Call als Code durch

In Claude Code läuft der Ablauf von Prompt über Orchestrator und Agent Call zum Sub-Agent; der Mod sitzt im Ablauf zwischen Agent Call und Sub-Agent, hält den Spawn an und wählt den Sub-Agent; von oben speisen Agent-Dateien und routing.json den Mod

Der Mod fängt jeden Agent Call ab, bevor der Sub-Agent startet. Er hält den Spawn an und bestimmt den Ziel-Agent aus den Agent-Definitionen und der routing.json. Jeder potenzielle Delegationsfehler landet im Log, und unser Learning Loop stellt sicher, dass er in Zukunft nicht mehr auftritt. So läuft jede Session mit denselben Regeln. Was Mods in der Harness sonst leisten, beschreibt der Artikel Agentic Software Engineering mit Mods optimieren .

Bevor ein Sub-Agent startet, gibt ihm der Mod vier Dinge mit: den Prompt mit Ihrem Auftrag, den Teil des Contract, den er umsetzen soll, einen Boundary Block mit den Aktionen, die er nicht ausführen darf, und bei Bedarf den Reroute zum zuständigen Specialist. So startet jeder Sub-Agent unter denselben Regeln, egal wie lange die Session schon läuft.

Die Karte zeigt, was der Mod bei agent.spawn einfügt: Prompt, der Auftrag des Orchestrator, zurückverfolgt auf Ihre Worte; Contract Slice, der gemeinsame Contract mit seinen path:line-Fakten aus dem Ledger; Boundary Block, kein checkout, stash, reset, commit oder push, Side Effects melden; Reroute, ein generischer Agent mit dieser Arbeit wird zu angular-expert; anpassbar über Keywords und Gates in .claude/routing.json

Drei Regeln setzt der Mod als Code durch: Er hält einen generischen Spawn an, wenn ein Specialist für die Arbeit zuständig ist, er sperrt Gated Agents, die Sie nicht genannt haben, und er schickt jedes Inventory an den fact-gatherer auf Haiku. Den Roster der Agents fügt er in den System Prompt ein, den Boundary Block in jeden Prompt; beides bleibt eine Anweisung an das Modell. Auftrag, Prompt und Claim jedes Sub-Agent hält er für den Orchestrator im Ledger fest.

Drei Spalten mit dem, was der Mod aus jeder Regel macht: Als Code bei agent.spawn hält er einen generischen Spawn an, den ein Specialist übernimmt, sperrt einen Gated Agent, den Sie nicht genannt haben, und schickt Inventories an den fact-gatherer auf Haiku, was keine Regel verlangt hat; bei jedem Prompt und Spawn fügt er den Agent Roster und den Boundary Block als Anweisung ein; für den Coordinator hält er Auftrag, Prompt und Claim im Session Ledger fest

Derselbe Prompt landet bei jedem Spawn beim selben Specialist

Zurück zum Beispiel mit dem neuen Feld: Der Prompt für den Angular Client, der beim General-purpose Agent gelandet war, läuft jetzt durch den Mod. Der hält ihn an und routet ihn zu angular-expert auf Sonnet um.

Der Prompt „Feld X in der Ansicht von Liste Y im Angular Client anzeigen, mit Vitest Specs“, wie Claude ihn an einen General-purpose Agent gibt; der Mod markiert Angular und Vitest, liest den Prompt und routet den Agent Call zu angular-expert, der auf Sonnet mit Skills und House Rules seines Stacks läuft; die Zweige zum fact-gatherer auf Haiku und zum General-purpose Agent auf Opus sind ausgegraut; unten die Treffer pro Specialist mit angular-expert

Der Mod liest den Client-Prompt, erkennt darin Angular und Vitest und routet den Agent Call zu angular-expert, der auf Sonnet mit den Skills seines Stacks arbeitet. Den Reroute bestätigen Sie.

Die Tabelle zeigt fünf Prompts und den Agent, zu dem der Mod jeden davon routet. Ein Prompt, der Code ändert, landet beim Specialist seines Stacks, ein Inventory beim fact-gatherer auf Haiku. Ist für eine Aufgabe kein Specialist zuständig, bleibt sie beim General-purpose Agent.

BeispielPromptZiel-Agent
Client Tier„Show field X in the list Y view of the Angular client, with Vitest specs“angular-expert
API Tier„Add field X to list Y in the .NET API, with an EF Core delta script and an xUnit test“dotnet-expert
Inventory„Find out where list Y is defined and used, in the API and the client“fact-gatherer
Liste ohne Änderungen„List every file that touches list Y, do not edit anything“fact-gatherer
Ohne Owner„Rename field X in the helper script“general-purpose

Weil der Mod bei jedem Agent Call nach denselben Regeln routet, landet derselbe Prompt immer beim selben Specialist und auf demselben Modell. Damit können wir von deterministischer Orchestration ausgehen.

Entscheidungsbaum: Eine Aufgabe vom Orchestrator auf Opus trifft zuerst auf die Frage, ob sie nur sucht, auflistet oder lokalisiert; ja führt zum fact-gatherer auf Haiku; nein führt zur Frage, ob die Expertise eines Specialist zum Prompt passt; nein führt zum General-purpose Agent, der Opus erbt, dem teuren Fallback; ja führt zur Frage, ob es um lange Texte, Bilder oder Video geht; ja führt zu einem Producer auf Opus, nein zu einem Stack Expert auf Sonnet

Jede Aufgabe des Orchestrator durchläuft dieselben Fragen. Soll sie nur etwas finden oder auflisten, geht sie als Inventory an den fact-gatherer auf Haiku. Passt die Expertise eines Specialist, entscheidet die Art der Arbeit: Code geht an einen Stack Expert auf Sonnet, lange Texte, Bilder und Video gehen an einen Producer auf Opus. Ist niemand zuständig, übernimmt der General-purpose Agent auf Opus, der teuerste Weg.

Teil 2: Optimierungen senken Kosten und Delegationsfehler weiter

Doch hier endet die Optimierung unserer Harness Architecture noch nicht. Drei weitere Schritte senken Kosten und Delegationsfehler:

  • Ein Graph Ledger , der die Kosten umso stärker senkt, je mehr Agents am selben Contract arbeiten
  • Ein Learning Loop , der Delegationsfehler in der Session abfängt und ihre Ursache danach behebt
  • Ein /delegation Command und Side-Pane , eine UI Extension, die uns zusätzliche Informationen liefert, während die Harness läuft

Der Graph Ledger spart mit jedem weiteren Consumer eines Contract mehr

Jede Session führt einen gemeinsamen Agent Ledger, die Datei agent-ledger.md im Scratchpad der Session. Schreiben darf nur der Main Thread: pro Agent den Prompt, den Claim, also seine Meldung, dass die Arbeit fertig ist, den Nachweis, dass jemand diese Meldung geprüft hat, und die Side Effects, also alles, was der Agent außerhalb der geänderten Dateien verändert hat, etwa gestartete Server, installierte Packages oder neue Rows in der Datenbank. Nachträglich gestartete Sub-Agents bekommen ihren Prompt aus diesem Ledger. Was ein Agent schon geprüft hat oder was sich als Irrweg herausgestellt hat, muss kein weiterer Agent noch einmal herausfinden, und die Token dafür zahlen Sie nur einmal.

Der einfachste Ledger ist eine Markdown-Datei, eine log-artige Liste, in der jeder Eintrag unter dem vorigen steht. Beziehungen zwischen den Einträgen kennt sie nicht. Welcher Fakt zu welchem Contract gehört und welcher Specialist welchen Teil davon braucht, sucht der Orchestrator selbst zusammen und wiederholt es in jedem Prompt von Hand. Ein Graph speichert diese Beziehungen mit: Fakten, Contract und Agents sind verknüpft, und jeder Agent bekommt gezielt den Teil, den er braucht. So arbeiten auch GraphRAG und Agent Memory.

Der Owner-Feld-Lauf in zwei Bahnen über fünf Schritte Inventory, Contract, API Tier, Client Tier und Verify: Im Default mit Keywords und Markdown Ledger geht das Inventory über das Wort find out an Haiku, der Contract wird von Hand in jeden Prompt getippt, den Reroute zu dotnet-expert bestätigen Sie, der Client-Prompt ohne Stack-Wort läuft als General-purpose Agent auf Opus, und der Claim bleibt ungeprüft bis Verify; mit Graph Ledger entstehen 21 Fact Nodes, daraus ein einmal festgehaltener Contract, ein Contract Slice geht an dotnet-expert und angular-expert, und der Ledger Check bestätigt den Diff

Mit Markdown Ledger tippt der Orchestrator den Contract von Hand in jeden Prompt, und ein Client-Prompt ohne Stack-Wort landet als General-purpose Agent auf Opus. Mit Graph Ledger entstehen aus dem Inventory 21 Fakten, daraus einmal der Contract, und dotnet-expert und angular-expert bekommen beim Spawn ihren Teil davon. Als geprüft gilt ein Claim erst, wenn der Ledger Check den Diff bestätigt.

Unsere Frage war, ob ein Graph Ledger die Effizienz noch weiter steigern kann. Erwartet hatten wir keinen Gewinn bei einem Contract mit zwei Consumers. Die Messungen haben das bestätigt und zugleich gezeigt, dass die Einsparung mit jedem weiteren Consumer wächst. Alle Zahlen in diesem Abschnitt stammen aus gemessenen Läufen.

Gemessen haben wir drei Aufgaben mit je drei Läufen pro Variante (Markdown Ledger und Graph Ledger). Jeder Lauf war eine eigene Claude Code Session ohne Eingriff, mit dem Orchestrator auf Opus und in einer frischen Kopie des Repositories. Die Kosten pro Lauf sind die Kosten, die Claude Code für die Session ausweist; die Token haben wir pro Modell aus den Transcripts aller Agents addiert. Gleiche Qualität heißt: Jeder Layer enthält die Änderung, und alle Builds sind grün. Runtime Tests gehörten nicht zur Messung, und einen Client, dessen Build schon vor den Läufen fehlschlug, haben wir aus der Bewertung genommen.

Getestet haben wir außerdem Jev als Decision Layer, der vor dem LLM den Agent für einen Prompt wählt. Jev brachte in unseren Läufen keinen Vorteil bei der Performance, deshalb haben wir die Messungen dem Artikel nicht beigelegt.

Der Graph Ledger in vier Schritten: Der fact-gatherer auf Haiku meldet Fakten, jede path:line wird ein Fact Node, verankerte behalten einen Hash; der Orchestrator auf Opus hält einen Contract fest, abgeleitet aus den Fakten, für jeden Consumer und seinen Ordner, nur im Main Thread; beim Spawn bekommen dotnet-expert und angular-expert auf Sonnet den Contract Slice, der Orchestrator wiederholt den Contract nicht mehr; der Ledger Check verlangt, dass der Diff jedes Ordners das Feld owner hinzufügt, bevor ein Claim als geprüft gilt

Der Graph Ledger arbeitet in vier Schritten. Zuerst meldet der fact-gatherer auf Haiku, was er im Code gefunden hat, und jede Fundstelle wird ein eigener Fakt im Graph. Daraus leitet der Orchestrator auf Opus einmal den Contract ab und legt fest, welcher Agent welchen Teil davon umsetzt. Beim Spawn bekommen dotnet-expert und angular-expert auf Sonnet nur ihren Teil, den Contract Slice, und der Orchestrator muss den Contract nicht mehr in jeden Prompt schreiben. Zum Schluss prüft der Ledger Check im Diff jedes Ordners, ob das neue Feld wirklich dazugekommen ist. Erst dann gilt der Claim eines Agent als geprüft.

Messung am Owner-Feld in einer Two-Tier App mit API und Client, Orchestrator auf Opus, je drei Läufe, Graph Ledger gegen Markdown Ledger: Kosten pro Lauf 0,85 gegen 0,87 Dollar, minus 2 Prozent; Wall Time 170 gegen 139 Sekunden, plus 22 Prozent; Opus Token 536k gegen 555k, minus 3 Prozent; Prompt-Länge des Orchestrator 5,5k gegen 5,8k Zeichen, minus 6 Prozent; darunter drei Tiles: gleiche Qualität, weil in allen Läufen jeder Layer die Änderung bekam und beide Builds grün waren; 6 Prozent kürzere Prompts, weil der Hook Contract und Fakten anhängt; 2 Prozent weniger Kosten im Rauschen, der Graph Ledger lohnt sich erst bei mehr Consumers, wiederholten Spawns und langen Sessions

Bei zwei Consumers liegt der Kostenunterschied von 2 % im Rauschen, ein Lauf mit Graph Ledger dauert 22 % länger, und die Qualität ist in beiden Varianten gleich. Der fact-gatherer fand dabei pro Lauf im Schnitt 21 Fakten, also Stellen im Code, auf denen der Contract aufbaut.

Messung an einer größeren Aufgabe, ein Owner-Feld durch HTTP API, MCP Tools, Database Schema und Angular Client, je drei Läufe, Graph Ledger gegen Markdown Ledger: Kosten pro Lauf 0,92 gegen 1,00 Dollar, minus 8 Prozent; Sonnet Token 312k gegen 430k, minus 28 Prozent; Opus Token 570k gegen 623k, minus 8 Prozent; Wall Time 167 gegen 142 Sekunden, plus 18 Prozent; darunter drei Tiles: gleiche Qualität auch hier; mit Graph Ledger hielten 3 von 3 Läufen das Inventory auf Haiku, mit Markdown Ledger 1 von 3; ein messbarer Effekt mit minus 8 Prozent Kosten und minus 28 Prozent Sonnet Token bei 25 Sekunden mehr Wall Time

Der Kostenvorteil wächst mit der Zahl der Konsumenten. Bei zwei Agents am selben Contract liegen beide Ledger fast gleichauf, bei vier kostet ein Lauf mit Graph Ledger 1,49 Dollar, mit Markdown Ledger 1,65 Dollar.

Liniendiagramm der Kosten pro Lauf nach Zahl der Konsumenten pro Contract. Gemessen: bei zwei Konsumenten 0,87 Dollar mit Markdown Ledger und 0,85 Dollar mit Graph Ledger, bei drei 1,00 und 0,92 Dollar, bei vier 1,65 und 1,49 Dollar. Gestrichelt die lineare Prognose: bei sechs 2,34 und 2,05 Dollar, bei acht 3,12 und 2,69 Dollar.
ConsumersMarkdown LedgerGraph Ledger
20,87 $0,85 $
31,00 $0,92 $
41,65 $1,49 $
6 (Prognose)2,34 $2,05 $
8 (Prognose)3,12 $2,69 $

Der Graph Ledger spart 2 % bei zwei Consumers, 8 % bei drei und 10 % bei vier. Die lineare Prognose kommt auf 13 % bei sechs und 14 % bei acht. Drei Aufgaben sind wenige Messpunkte, der gestrichelte Teil ist deshalb eine Prognose. In jedem Lauf aller drei Aufgaben hat jeder Layer die Änderung bekommen, und beide Builds waren grün. Bei der Aufgabe mit vier Consumers überlappen sich die Kosten der einzelnen Läufe, die 10 % dort sind ein Trend.

Kostenvorteil des Graph Ledger nach Zahl der Konsumenten, also der Agents, die denselben Contract nutzen: bei 2, API und Client, der Markdown Ledger, weil der Graph Ledger mit minus 2 Prozent Kosten im Rauschen liegt und 22 Prozent mehr Zeit braucht; bei 3, API, MCP, Schema und Client, der Graph Ledger mit minus 8 Prozent Kosten und minus 28 Prozent Sonnet Token; bei 4, zwei APIs und zwei Clients, der Graph Ledger mit minus 10 Prozent Kosten, minus 34 Prozent Opus Token und minus 18 Prozent Wall Time; bei 6 bis 8 prognostiziert 13 bis 14 Prozent Ersparnis; die Qualität war in allen 18 Läufen gleich

Bei zwei Konsumenten reicht deshalb der Markdown Ledger, ab drei lohnt sich der Graph Ledger.

Delegation Learning Loop

Eine Harness, die aus ihren eigenen Fehlern lernt, ist heute State of the Art. In der Session fängt der Mod einen Delegationsfehler beim Spawn ab und hält ihn für Sie an. Nach der Session geht der Fehler aus dem Log an claude-learn. Der Skill korrigiert den Trigger des Agent, die routing.json oder den Mod selbst, und die nächste Session routet denselben Prompt richtig.

Drei Karten mit je einem Fehler in der Session: Claude gibt den Client-Prompt an einen generischen Agent, ohne Mod macht Opus die Sonnet-Arbeit ohne Angular Tools, mit Mod wird der Spawn angehalten und zu angular-expert umgeroutet oder ausgeführt; Claude startet den Playwright Expert für eine Seitenprüfung, ohne Mod öffnen sich Browser und eine lange Test Suite läuft, mit Mod fragt er zuerst nach Run oder Block; ein Agent meldet done, ohne Mod scrollt die Antwort weg, mit Mod gibt es eine Ledger-Zeile und eine Card im /delegation Pane, und der Claim bleibt unverified, bis Sie Verify drücken

Der Mod fängt in der Session drei typische Fehler ab. Gibt Claude den Client-Prompt an einen generischen Agent, hält der Mod den Spawn an und bietet den Reroute zu angular-expert an. Startet Claude einen teuren Agent wie den Playwright Expert, den niemand verlangt hat, fragt der Mod zuerst nach. Meldet ein Agent „done“, landet der Claim im Ledger und bleibt offen, bis Sie ihn prüfen.

Der Learning Loop in vier Stationen: Fehler, das Inventory ging an dotnet-expert auf Sonnet, weil ein Repo-Name auf MCP Servers passte, und die Angular-Hälfte lief als General-purpose Agent auf Opus; Erfasst, ein gestellter Fehler wurde angehalten, zu angular-expert umgeroutet und als offene Zeile festgehalten; Gelernt, der User bat darum, aus dem Delegationsfehler zu lernen, und claude-learn sortiert jeden Fehler nach Ursache; Behoben, Version 0.3.0 prüft Inventories zuerst, ein globaler angular-expert auf Sonnet existiert, und vier Tests spielen den Fehler nach; die nächste Session routet denselben Prompt richtig

Nach der Session behebt claude-learn die Ursache. Im Beispiel landete ein Inventory bei dotnet-expert, weil ein Projektname auf das Keyword MCP Servers passte, und die Angular-Hälfte lief als General-purpose Agent auf Opus. Seit der Korrektur prüft der Mod Inventories zuerst, es gibt einen eigenen angular-expert auf Sonnet, und vier Tests spielen den Fehler nach, damit er nicht wiederkommt.

Ein Agent Call passiert den Mod; erkennt der Mod einen Fehler, schreibt er eine offene Zeile in delegation-errors.jsonl; nach 20 Minuten ohne Eingabe startet learn-queue den Skill claude-learn, der die offenen Zeilen nach Ursache sortiert: ein zu breiter Trigger wird in der Description oder in der routing.json enger gefasst, ein zu enger bekommt Trigger Phrases, ein fehlender Agent wird angelegt, ein Fehler des Orchestrator wird zur Lesson, wenn er wiederkehrt, und ein Fehler im Mod wird in register.ts mit einem Test behoben; die Zeile wird als fixed oder dismissed geschlossen, und die nächste Session routet mit den korrigierten Dateien

Jeder erkannte Fehler landet als offene Zeile im Log. Sobald 20 Minuten lang niemand etwas eingibt, startet learn-queue den Skill claude-learn. Er sortiert die Fehler nach ihrer Ursache: Ein zu breiter Trigger wird enger gefasst, ein zu enger bekommt zusätzliche Trigger Phrases, ein fehlender Agent wird angelegt, und ein Fehler im Mod wird mit einem Test behoben. Die nächste Session arbeitet schon mit den korrigierten Dateien.

Das /delegation Pane zeigt Modell, Kosten und offene Claims jedes Sub-Agent

Wer mit dem Orchestrator arbeitet, sieht den Main Thread. Die Sub-Agents arbeiten im Hintergrund: Welcher Agent welchen Prompt übernommen hat, auf welchem Modell, zu welchen Kosten und ob sein „done“ geprüft wurde, steckt im Transcript. Der Mod zeichnet ohnehin jeden Spawn, jeden Prompt, jeden Claim und jede Model Request auf. Das /delegation Pane stellt diese Aufzeichnung neben die Unterhaltung. Im Terminal ist es eine schlichte Textliste. Im Code Tab der Desktop App zeichnet das Pane einen Header mit den Tiles Cost, Tokens, Time und Unverified, eine Card pro Agent, gruppiert nach Running, Claimed und Verified, und eine Decisions Card mit den Reroutes.

Windows Terminal mit dem Dracula Skin: links die Session von Claude Code mit dem Prompt Add an optional supplier field to the stock item list, in the .NET API and in the Angular client, der fact-gatherer sammelt die Fakten zu den Stock Items, und /delegation öffnet das Pane; rechts das /delegation Pane mit dem fact-gatherer auf claude-haiku-5-5, running, mit Auftrag und Prompt; ein roter Pfeil führt vom Befehl zum Pane

Bevor sich Code ändert, liest der fact-gatherer, wo Stock Items in der API und im Angular Client vorkommen. Er arbeitet nur lesend und auf dem günstigsten Modell, die Experts starten erst, wenn der Contract aus seinen Fakten feststeht. Das Band über dem Prompt zeigt einen laufenden Agent und die Specialists, die der Mod für den Prompt gefunden hat. Der Pfeil führt vom Befehl zum Pane: eine Zeile pro Agent mit Modell, Status, Ihrem Auftrag und dem Prompt, den er bekommen hat.

In der Claude Desktop App zeichnet der Mod dasselbe Pane mit einer eigenen UI. Dort sind Elemente möglich, die das Terminal nicht darstellen kann, etwa SVG-Grafiken. So lassen sich in der Desktop App deutlich reichhaltigere Panes bauen als im Terminal.

Die Claude Desktop App im Code Tab mit der Session Supplier field for stock items: links der Prompt, /delegation und das Band mit den gefundenen Specialists angular-expert, dotnet-expert und angular-engineer; rechts das Delegation Pane mit dem Orchestrator, 1 Agent und 0 Decisions, den Tiles Cost, Tokens 60k, Time 0:09 und Unverified 1, unter Claimed die Card stock-facts mit Lupe, Haiku in Grün, fact-gatherer, 60k Token und 0:09, Auftrag, Prompt und einem Verify Button

Die Tiles im Header summieren Kosten, Token und Zeit aller bisherigen Sub-Agents, Unverified zählt die Claims, die noch niemand geprüft hat. Die Kosten sind eine Schätzung: Der Mod rechnet die Token jeder Model Request mit dem Preis des jeweiligen Modells ab. Die Lupe markiert den fact-gatherer, und das Modell ist farbig: Haiku grün, Sonnet blau, Opus bernsteinfarben. Jede Card zeigt eigene Token, Kosten und Zeit, dann Ihren Auftrag, den Prompt und, sobald der Agent antwortet, die erste Zeile seiner Antwort. Ein fertiger Agent bleibt unter Claimed, bis Sie seinen Claim an den Dateien prüfen und Verify drücken; dann wandert er zu Verified.

So ist dieser Artikel entstanden: Die Benchmarks hat Alexander Kastil ausgewählt und überwacht, der Text wurde mit AI-Unterstützung geschrieben, und anschließend hat Alexander Kastil den Fokus neu ausgerichtet und Fehler korrigiert.

  • Mods overview : was ein Mod ist, was er ändern kann und wo er läuft; Panes zeichnet er im Terminal und im Code Tab der Desktop App.
  • Create custom subagents : Agent-Dateien mit Modell, Tools und Description, die Preisstufe und Expertise jedes Specialist festlegen.
  • How we built our multi-agent research system : Anthropic über einen Lead Agent, der parallele Sub-Agents koordiniert, mit Prompts, Tool-Auswahl und Evaluation.
  • Building effective agents : Anthropic über Orchestrator-Workers und andere kombinierbare Patterns, und wann ein Workflow besser passt als ein autonomer Agent.
  • Hooks reference : Settings Hooks wie PostToolUse und UserPromptSubmit, auf die sich die Regeln zur Delegation vor den Mods stützten.
  • React to events : einen Tool Call bewachen oder umschreiben und einem Turn folgen, der Mechanismus hinter dem Anhalten und dem Reroute eines Agent Call.
  • Draw in the interface : Panes, das Band über dem Prompt, Buttons und State, wie sie das /delegation Pane und sein Verify Button nutzen.
  • Plugins overview : Plugins, Marketplaces und Install Scopes, über die ein Marketplace den Mod und seine Fixes an jedes Repository verteilt.