All posts
AI Agents21. Juli 2026· 14 min read

Claude Code Subagents: Was wir gelernt haben, seit 18 davon bei uns produktiv laufen

Jede Anleitung zu Subagents demonstriert mit demselben `code-reviewer`-Spielzeugbeispiel. Wir betreiben 18 Subagents in Produktion: das echte Directory-Listing, den 6/11/1-Modell-Split, wie sie Arbeit über Dateien übergeben, und die Fehlerfälle, die uns begegnet sind.

Mert BaturAuthor
Claude Code Subagents Prozessdiagramm: Hauptsession verteilt Arbeit an Worker-Agents, die Dateien schreiben
On this page

Claude Code Subagents: Was wir gelernt haben, seit 18 davon bei uns produktiv laufen

Achtzehn Claude Code Subagents veröffentlichen jeden Beitrag auf dieser Seite, auch diesen hier. Sechs laufen auf Opus, elf auf Sonnet, einer auf Haiku. Allein der researcher-Agent hat seit unserem Start 74 Memory-Dateien angesammelt. Keiner von ihnen spricht mit einem anderen. Das hat uns am meisten überrascht: Ein Subagent sieht niemals Ihre Konversation, und er sieht auch nie die Konversation eines anderen Subagents. Die gesamte Pipeline ist deshalb komplett auf Dateien auf der Festplatte aufgebaut. Hier kommen die Flotte, der Modell-Split, der Memory-Aufbau und alles, was auf dem Weg kaputtgegangen ist.

Kurz gesagt:

  • Ein Subagent läuft in einem eigenen Context Window mit eigenem System-Prompt, eigenen Tools und eigenen Berechtigungen.
  • Wir betreiben 18 Subagents: 6 auf Opus, 11 auf Sonnet, 1 auf Haiku.
  • Agents übergeben Arbeit über Dateien auf der Festplatte, nie über einen gemeinsamen Context.
  • Seit v2.1.198 ist der /agents-Erstellungsassistent verschwunden. Schreiben Sie die Datei selbst.

Was ist ein Claude Code Subagent?

Ein Claude Code Subagent ist ein spezialisierter Assistent, der in einem eigenen Context Window mit eigenem System-Prompt, eigenem Tool-Zugriff und eigenen Berechtigungen läuft. Er erledigt eine Nebenaufgabe, ohne Ihre Hauptkonversation zu überfluten, und gibt anschließend nur seine Zusammenfassung zurück. Die Definitionen liegen als Markdown-Dateien mit YAML-Frontmatter in .claude/agents/, dokumentiert in Anthropics Subagent-Referenz.

Claude delegiert automatisch an einen passenden Subagent. Es liest das description-Feld jedes Subagents, den es sehen kann, und übergibt die Arbeit, sobald eine Aufgabe passt, ohne vorher nachzufragen. Seit v2.1.198 laufen diese Subagents standardmäßig im Hintergrund, sodass die Delegation oft passiert, während Sie weitertippen. Sie können einen Subagent auch namentlich aufrufen, wenn Sie für eine bestimmte Aufgabe einen bestimmten Worker wollen.

Drei eingebaute Subagents liefert Claude Code direkt mit: Explore für die reine Lesesuche im Code, Plan für Planungsarbeit und general-purpose für alles andere.

Ein Namensdetail, über das ältere Anleitungen und ältere Konfigurationsdateien stolpern: Das Tool, das einen Subagent startet, heißt Agent, nicht Task. Es wurde in v2.1.63 umbenannt, und die Docs bestätigen, dass bestehende Task(...)-Referenzen weiterhin als Alias funktionieren. Wir verwenden in diesem Beitrag durchgängig Agent.

Der Rest dieses Beitrags ist keine Referenzdokumentation. Das leisten Anthropics eigene Docs bereits besser als wir könnten, auf rund 8.000 Wörtern mit Versionsanmerkungen bis hinunter zu v2.1.212. Was folgt, ist, wie achtzehn davon aussehen, wenn sie jeden Tag laufen.

Unsere 18-Agenten-Flotte: Wie ein echtes Setup auf der Festplatte aussieht

Unser .claude/agents/-Verzeichnis enthält 18 Subagent-Definitionsdateien, jede eine Markdown-Datei mit YAML-Frontmatter. Zusammen betreiben sie die komplette Content-Pipeline dieser Seite: Recherche, Briefing, Schreiben, Validierung, Übersetzung in neun Sprachen, Bildgenerierung und Veröffentlichung. Sechs laufen auf Opus, elf auf Sonnet, einer auf Haiku.

Jede Subagent-Anleitung auf der ersten Google-Seite demonstriert mit demselben code-reviewer-Beispiel, das aus den Docs kopiert wurde. So sehen achtzehn davon aus, wenn sie tatsächlich Arbeit ausliefern.

text
.claude/agents/
├── abc-link-checker.md
├── brief-creator.md
├── content-gap-finder.md
├── content-refresher.md
├── content-writer.md
├── image-handler.md
├── language-translator.md
├── payload-publisher.md
├── pipeline-manager.md
├── rank-checker.md
├── rescue-diagnoser.md
├── rescue-prioritizer.md
├── researcher.md
├── sanity-publisher.md
├── seo-auditor.md
├── sitemap-checker.md
├── translation-coordinator.md
└── validator.md

Sie gliedern sich in vier Aufgabenbereiche. Die Content-Produktion läuft von researcher über brief-creator und content-writer zu validator. Die Distribution deckt translation-coordinator, language-translator, image-handler, payload-publisher und sanity-publisher ab. Die Wartung übernehmen content-refresher, rank-checker, rescue-diagnoser, rescue-prioritizer, seo-auditor, sitemap-checker und abc-link-checker. Die Koordination liegt bei pipeline-manager und content-gap-finder.

Zwei dieser Dateien, wortgetreu von der Festplatte kopiert, tragen das gesamte Kostenargument:

yaml
# .claude/agents/researcher.md
name: researcher
tools: Read, Write, Glob, Grep, WebSearch, WebFetch, Bash
model: opus
memory: project
skills:
  - seo
  - competitor-analysis
yaml
# .claude/agents/sitemap-checker.md
name: sitemap-checker
tools: Read, Write, Edit, Glob, Grep, WebFetch
model: haiku

Gleicher Mechanismus, aber etwa der zehnfache Preis pro Token. Der eine ist ein Opus-Agent mit Web-Zugriff und persistentem Memory, der entscheidet, welche These ein Beitrag vertreten soll. Der andere ist ein Haiku-Agent, der eine Sitemap abruft und eine JSON-Datei schreibt. Nichts am Subagent-Format zwingt Sie dazu, für die zweite Aufgabe Opus-Preise zu zahlen, und die meisten Flotten, die wir gesehen haben, tun genau das standardmäßig.

Das skills:-Feld bei researcher lädt beim Start zwei Skill-Definitionen direkt in den System-Prompt dieses Subagents, und genau so kennt er unsere SEO-Konventionen, ohne dass wir sie ihm bei jedem Lauf neu erklären müssten. Falls Sie noch keinen geschrieben haben: Wir haben wie man einen Claude Skill schreibt an anderer Stelle behandelt, und dieser Beitrag wiederholt das nicht.

Wenn Sie einen durchsuchbaren Katalog an Definitionen zum Abschreiben suchen: Die Community-Sammlung awesome-claude-code-subagents ist die, nach der Leute tatsächlich suchen. Lesen Sie sie wegen der Struktur, nicht wegen der Aktualität: Manche Einträge stammen noch aus der Zeit vor der Agent-Umbenennung.

Wie erstellen Sie einen Subagent? (Der /agents-Assistent ist verschwunden)

Sie erstellen einen Claude Code Subagent, indem Sie selbst eine Markdown-Datei in .claude/agents/ schreiben, oder indem Sie Claude bitten, sie für Sie zu schreiben. Seit v2.1.198 öffnet der /agents-Befehl nicht mehr den interaktiven Erstellungsassistenten. Er gibt jetzt nur noch einen Hinweis aus, der Sie auf das Verzeichnis verweist.

  1. Erstellen Sie die Datei. .claude/agents/{name}.md für einen Projekt-Subagent, der mit der Versionskontrolle ausgeliefert wird, oder ~/.claude/agents/{name}.md für einen, der Sie projektübergreifend begleitet.
  2. Schreiben Sie name und description. Die description entscheidet mehr als alles andere in der Datei, denn genau daran gleicht Claude ab, wenn es entscheidet, ob delegiert wird. Schreiben Sie sie als Routing-Regel, nicht als Jobtitel.
  3. Setzen Sie tools und model. tools ist eine Allowlist; lassen Sie sie weg, erbt der Subagent die Tools der Hauptkonversation. model überschreibt Ihr Session-Modell.
  4. Schreiben Sie den System-Prompt als Markdown-Body unterhalb der Frontmatter. Subagents erhalten nur diesen Prompt plus grundlegende Umgebungsdetails, nicht den vollständigen Claude-Code-System-Prompt.
  5. Rufen Sie ihn auf. Automatisch, indem Sie die description matchen lassen, oder explizit, indem Sie ihn namentlich anfragen.
markdown
---
name: changelog-writer
description: Writes release notes from merged pull requests. Use when the user asks for a changelog, release notes, or a summary of what shipped.
tools: Read, Grep, Glob, Bash
model: sonnet
---

You write release notes. Read the merged PRs since the last tag with `git log`,
group them into Added / Changed / Fixed, and write one line per change in past
tense. Never invent a change that is not in the log. Return only the markdown.

Mehrere aktuell gut rankende Anleitungen sagen Lesern noch immer, sie sollen /agents ausführen, um die Verwaltungsoberfläche zu öffnen. Diese Anweisung ist überholt. Noch eine Falle, zu der die Docs klar Stellung beziehen: Der File-Watcher erfasst nur Verzeichnisse, die beim Sessionstart bereits existierten, sodass die erste Agent-Datei in einem brandneuen agents/-Verzeichnis erst nach einem Neustart von Claude Code geladen wird.

VersionWas sich geändert hatWas das für Sie bedeutet
v2.1.63Task-Tool in Agent umbenanntTask(...) funktioniert weiterhin als Alias, ältere Agent-Dateien laufen also weiter
v2.1.172Ein Subagent kann eigene Subagents startenVerschachtelung funktioniert, mit einer festen Tiefe von fünf, die Sie nicht konfigurieren können
v2.1.198/agents öffnet nicht mehr den ErstellungsassistentenBitten Sie Claude, die Datei zu schreiben, oder bearbeiten Sie .claude/agents/ selbst
v2.1.198Subagents laufen standardmäßig im HintergrundClaude nutzt den Vordergrund nur, wenn es das Ergebnis braucht, um fortzufahren
v2.1.208Eine nicht auflösbare tools-Liste verweigert den StartSie erhalten einen Fehler mit den fehlerhaften Einträgen statt eines stillen leeren Ergebnisses
v2.1.212Obergrenze von 200 Subagents pro SessionErhöhen Sie sie mit CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION; abschalten lässt sie sich nicht

Subagent vs. Skill vs. Agent Team vs. Fork: Was brauchen Sie wirklich?

Wählen Sie einen Subagent, wenn eine Nebenaufgabe Ihre Hauptkonversation überfluten würde und Sie nur die Zusammenfassung zurückbrauchen. Wählen Sie einen Skill, wenn Sie Claude eine Prozedur beibringen wollen, die innerhalb Ihres bestehenden Contexts läuft. Wählen Sie ein Agent Team, wenn sich Worker untereinander abstimmen müssen. Wählen Sie einen Fork, wenn die Nebenaufgabe Ihre Konversationshistorie braucht.

SubagentSkillAgent TeamFork
ContextEigenes Context WindowDer Context der HauptkonversationEigenes Context Window plus eine gemeinsame AufgabenlisteErbt die komplette Konversation
KommunikationMeldet nur an den Hauptagenten zurück, nie an einen anderen SubagentNicht zutreffend, er lädt sich in Ihre SessionMitglieder kommunizieren direkt untereinanderNicht zutreffend, er verzweigt Ihre Session
KostenprofilFrisches Context Window bei jedem StartAm günstigsten, kein neuer Context wird erzeugtDeutlich mehr TokensNutzt den Prompt-Cache des Elternprozesses weiter
StatusStabilStabilExperimentell, standardmäßig aus, hinter CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1Stabil
Wählen Sie es, wennEine Nebenaufgabe würde Ihre Hauptkonversation überflutenSie wollen eine wiederholbare Prozedur innerhalb des aktuellen ContextsMehrere Worker müssen sich abstimmen, nicht nur zurückmeldenSie brauchen eine Nebenaufgabe, die die Konversation bereits kennt

Subagents melden sich bei Ihnen und nie gegenseitig. Agent Teams kommunizieren direkt untereinander. Dieser eine Unterschied entscheidet, welches Primitiv Sie brauchen.

Unser Standard ist der Subagent, und wir haben noch nie ein Team gebraucht. Die Koordination in unserer Pipeline verläuft sequenziell statt konversationell, sodass eine gemeinsame Aufgabenliste nichts bringen und nur Tokens kosten würde. Teams sind zudem noch experimentell und standardmäßig deaktiviert, was für alles, was wir unbeaufsichtigt laufen lassen, ein klares Ausschlusskriterium ist. Skills liegen auf einer völlig anderen Ebene: Es sind Anweisungen, die in den jeweils laufenden Context geladen werden, auch in den eines Subagents, weshalb researcher zwei davon deklariert, statt an sie zu delegieren.

Modellauswahl: Welche Agents gehören auf Haiku, Sonnet und Opus

Setzen Sie model in der Frontmatter eines Subagents auf haiku, sonnet, opus oder eine konkrete Modell-ID, und dieser Subagent überschreibt Ihr Session-Modell. Unsere echte Verteilung über 18 Agents liegt bei sechs auf Opus, elf auf Sonnet, einem auf Haiku, zugeteilt danach, wie viel Urteilsvermögen der Output des jeweiligen Agents tatsächlich verlangt.

EbeneModell (Anzahl)AgentsDie Regel, die sie dorthin gebracht hat
Urteilsvermögenopus (6)researcher, brief-creator, content-writer, validator, rescue-diagnoser, abc-link-checkerDer Output ist eine Ermessensentscheidung, und eine falsche kostet einen kompletten Neuschrieb
Ausführungsonnet (11)content-refresher, content-gap-finder, payload-publisher, image-handler, language-translator, rescue-prioritizer, rank-checker, pipeline-manager, seo-auditor, sanity-publisher, translation-coordinatorDie Aufgabe ist klar spezifiziert, und die Form einer korrekten Antwort steht bereits fest
Mechanischhaiku (1)sitemap-checkerDer Output ist deterministisch, und der Input ist klein

Drei Regeln, die wir jedem mitgeben würden, der eine Flotte auf Modelle verteilt. Setzen Sie einen Agent auf Haiku, wenn sein Output deterministisch und sein Input klein ist: Abrufen, Parsen, Zählen, Umformatieren. Setzen Sie einen Agent auf Sonnet, wenn die Aufgabe lang und klar spezifiziert ist, aber schon jemand festgelegt hat, wie „korrekt" aussieht, was den Großteil der Ausführungsarbeit abdeckt, einschließlich aller neun Übersetzungs-Worker. Reservieren Sie Opus für Agents, deren Output nachgelagert von niemandem mehr infrage gestellt wird.

Diese letzte Regel ist der Grund, warum validator auf Opus läuft, obwohl er nur einen kurzen Report erzeugt. Niemand prüft den Prüfer.

Eine Versionsanmerkung, die die Rechnung verändert: Seit v2.1.198 läuft der eingebaute Explore-Subagent nicht mehr immer auf Haiku, sondern erbt das Session-Modell. Ein Subagent namens Explore auf User- oder Projektebene überschreibt den eingebauten und behält sein eigenes model-Feld, definieren Sie also einen mit model: haiku, wenn Sie die Exploration auf einem günstigen Modell halten wollen.

File-Contracts: Wie unsere Agents Arbeit übergeben, ohne Context zu teilen

Ein Subagent sieht weder Ihre Konversationshistorie noch die eines anderen Subagents. In-Memory-Übergaben zwischen Agents sind deshalb strukturell unmöglich. Die Lösung: Jede Übergabe wird zu einem Artefakt auf der Festplatte, sodass der nächste Agent eine Datei liest, statt einen Context zu erben, den er nie haben kann.

text
techsy.community/posts/claude-code-subagents/
├── research.md      # researcher       → SERP analysis, keyword data, gaps
├── brief.md         # brief-creator    → section-by-section spec
├── en.md            # content-writer   → the post you are reading
├── de.md            # language-translator (one subagent per language)
├── hero.webp        # image-handler
├── validation.md    # validator
└── meta.json        # pipeline stage, updated by a PostToolUse hook

Fünf Artefakte, jedes von einem anderen Agent geschrieben, jedes vom nächsten gelesen, jedes davon von einem Menschen lesbar und in Git versioniert. Die Pipeline übersteht Context-Limits, weil kein Agent je den Context eines anderen Agents braucht. Er braucht nur die Datei des vorherigen Agents.

Am deutlichsten zeigt sich der Nutzen bei der Übersetzung. translation-coordinator liest en.md und startet dann pro Sprache einen language-translator-Subagent, neun oder zehn davon gleichzeitig. In unserem Repo hängt die Parallelität davon ab, alle Start-Aufrufe in einer einzigen Message abzusetzen: Das ist beobachtetes Verhalten auf unserem Setup und keine dokumentierte Vorgabe der Docs, aber es war konsistent genug, dass der Coordinator absichtlich so geschrieben ist. Jeder Übersetzer schreibt seine eigene {lang}.md, und keiner sieht die Arbeit der anderen, was in Ordnung ist, denn der Contract ist die Datei, und die Datei ist bereits vollständig.

Hier hören Subagents auch auf, und etwas anderes beginnt. Subagents arbeiten innerhalb einer einzigen Session. Wenn Sie wirklich unabhängige Workspaces mit eigener Historie wollen, lassen Sie stattdessen mehrere Claude-Code-Sessions parallel laufen, oder Sie greifen zu isolation: worktree, um einem Subagent eine eigene Kopie des Repositories zu geben.

Wie erinnern sich Subagents zwischen Sessions an Dinge?

Nur, wenn Sie das memory-Feld setzen, das drei Scopes kennt: user schreibt nach ~/.claude/agent-memory/<name>/, project schreibt nach .claude/agent-memory/<name>/, und local schreibt nach .claude/agent-memory-local/<name>/. Ohne dieses Feld startet jeder Aufruf bei null. Zwölf unserer achtzehn Agents deklarieren memory: project.

Nach rund vierzig Beiträgen sind diese Verzeichnisse beträchtlich gewachsen. researcher enthält 74 Memory-Dateien, validator 66, brief-creator 65. Das sind keine Logs. Das sind angesammelte Urteile: welche H1-Muster unterdurchschnittlich performt haben, welche Kundenaussagen wir nicht machen dürfen, welche SERP-Formen eine Tabelle statt Fließtext belohnen.

Hier ist die Beschränkung, die alles davon prägt. Ein Memory-fähiger Subagent bekommt nur die ersten 200 Zeilen oder 25 KB von MEMORY.md in seinen System-Prompt injiziert, je nachdem, was zuerst erreicht wird. Genau diese eine Grenze ist der Grund, warum jeder unserer Agents einen Index statt eines Journals führt.

markdown
# Researcher Memory

## Reusable post patterns
- [Challenger H1 pattern](feedback_challenger_h1_pattern.md): when a question-shaped H1 earns the click
- [Sponsored post research](feedback_sponsored_post_research.md): H1 must be category-shaped, never a review
- [Claude Skills tutorial](project_claude_skills_tutorial.md): docs own the top two slots, target the long tail

Eine Zeile pro Eintrag, das Detail ausgelagert in die verlinkte Themendatei, die der Agent bei Bedarf mit seinem Read-Tool liest. MEMORY.md bleibt ein Index, der ins Injection-Budget passt, während der Korpus dahinter unbegrenzt wächst.

Wir nutzen für fast alles project statt user, weil Projekt-Memory im Repo liegt und mit der Versionskontrolle mitreist. Wenn ein Teammitglied pullt, zieht es das angesammelte Urteilsvermögen des Agents gleich mit dem Code. local gibt es für die Fälle, in denen Sie die Notizen wollen, aber nicht den Commit.

Was kaputtging: Fehlerfälle, doppelte Namen und ein Legacy-Alias in unserem eigenen Repo

Vier Fehlerfälle erklären fast alles, was uns begegnet ist. Ein Subagent, der sich weigert zu starten. Ein Subagent, der still und heimlich nicht der ist, den Sie bearbeitet haben. Ein Subagent, den Claude überhaupt nicht findet. Und eine harte Session-Obergrenze, wie viele Sie starten können. Für alle vier gibt es kurze, eindeutige Fixes.

SymptomUrsacheFix
Startet nicht, Fehler nennt Ihre Tool-EinträgeNichts in tools lässt sich auflösen. Vor v2.1.208 startete er ohne Tools und lieferte ein verwirrendes leeres ErgebnisKorrigieren Sie die Einträge; der Fehler nennt sie Ihnen
Von zwei gleichnamigen Agents lädt immer nur einerDoppelter name im selben Verzeichnisbaum, aufgelöst über die Lesereihenfolge des Dateisystems statt über eine dokumentierte PrioritätHalten Sie name baumweit eindeutig; /doctor meldet Duplikate seit v2.1.205
Neuer Agent wird überhaupt nicht gefundenDer Watcher erfasst nur Verzeichnisse, die beim Sessionstart schon existiertenClaude Code neu starten
Agent-Tool schlägt fehl mit Subagent spawn limit reachedDie in v2.1.212 eingeführte 200-Subagent-Session-ObergrenzeCLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION erhöhen

Der Fall mit dem doppelten Namen ist fieser, als er klingt. Sie bearbeiten eine Datei, das Verhalten ändert sich nicht, und nirgendwo taucht ein Fehler auf, weil eine andere Datei mit demselben name die Lesereihenfolge für sich entschieden hat.

Hooks haben uns mehr geholfen als erwartet, und zwar bei den Fehlern, die gar keine Fehler sind, sondern Schritte, die ein Mensch einfach vergisst. Unserer ist bewusst simpel gehalten:

json
"SubagentStop": [
  {
    "matcher": "content-writer",
    "hooks": [
      {
        "type": "command",
        "command": "echo 'Content writer finished. Run /validate to check quality and SEO compliance.'"
      }
    ]
  }
]

Jetzt der ehrliche Teil. Während wir diesen Beitrag geschrieben haben, haben wir unsere eigene Flotte gegrept und Folgendes noch in translation-coordinator.md gefunden:

yaml
# .claude/agents/translation-coordinator.md
name: translation-coordinator
tools: Read, Write, Glob, Grep, Task
model: sonnet

Task, nicht Agent. Dieses Feld ist seit v2.1.63 veraltet und ist trotzdem noch nie fehlgeschlagen, weil Anthropic den Alias beibehalten hat. Wir haben es noch nicht bereinigt. Wenn Ihre eigenen Agent-Dateien noch Task sagen, sind sie nicht kaputt, sondern nur alt, und der Alias erledigt gerade für eine Menge Repos still seine Arbeit im Hintergrund.

Eine Korrektur in die andere Richtung: Anleitungen, die vor v2.1.172 geschrieben wurden, sagen Lesern, ein Subagent könne keine Subagents starten. Er kann es, seit genau diesem Release. Die Tiefe ist fest auf fünf Ebenen unterhalb der Hauptkonversation begrenzt und nicht konfigurierbar, sodass ein Subagent auf Tiefe fünf schlicht kein Agent-Tool erhält.

Was Subagents kosten, und wann Sie besser keinen einsetzen

Jeder Subagent-Start erzeugt ein frisches Context Window, Delegation ist also nie kostenlos. Anthropics Engineering-Team berichtet, dass Agents etwa 4x mehr Tokens verbrauchen als Chat-Interaktionen und Multi-Agent-Systeme etwa 15x mehr, und dass Token-Verbrauch allein 80 % der gemessenen Performance-Varianz erklärt.

Wir haben keine eigenen Token-Messungen beizusteuern, behandeln Sie also jeden konkreten Multiplikator, den Sie zu diesem Thema lesen, einschließlich der 4x-bis-7x-Zahlen, die in anderen Blogbeiträgen kursieren, als die Zahl des jeweiligen Autors und nicht als Benchmark. Anthropics Aufschrieb zum Multi-Agent-Research-System ist hier die einzige Quelle mit echten Daten dahinter, und dieselbe Studie fand, dass ein Opus-Leitagent mit Sonnet-Subagents einen einzelnen Opus-Agent in ihrer internen Evaluation um 90,2 % geschlagen hat. Dieses Ergebnis, nicht die Token-Zahl, ist das Argument für die Modell-Staffelung.

Verzichten Sie auf den Subagent, wenn der Output sowieso in Ihre Hauptkonversation gehört, denn dann fügen Sie ihn nur wieder ein und zahlen doppelt. Verzichten Sie darauf bei kleinen Änderungen, bei denen der Delegations-Umweg mehr kostet als die Arbeit selbst. Und verzichten Sie darauf, wenn die Aufgabe wirklich Ihre Konversationshistorie braucht: Nutzen Sie stattdessen einen Fork, der die komplette Konversation erbt und den Prompt-Cache des Elternprozesses weiterverwendet, was ihn für kontextlastige Nebenaufgaben günstiger macht als einen frischen Subagent. Anthropics eigene Kostenhinweise und ihre Einordnung, wann was zu nutzen ist kommen beide zum selben Schluss.

Die 200er-Obergrenze pro Session sollten Sie kennen, bevor Sie einen Fan-out entwerfen. Sie ist eine echte Grenze gegen außer Kontrolle geratene Delegation, und sie zu erhöhen ist eine bewusste Handlung, kein Standardverhalten.

Über den Autor

Mert Batur baut bei Techsy, wo das Team KI-Agenten, Automatisierungssysteme und Voice/SDR-Pipelines für B2B-Kunden liefert. Er schreibt über den LLM-Tooling-Stack und die Claude Skills, die das Techsy-Team tatsächlich produktiv einsetzt.

Techsy — University of Birmingham · LinkedIn

Häufig gestellte Fragen

Was sind Claude Code Subagents?

Claude Code Subagents sind spezialisierte Assistenten, die jeweils in ihrem eigenen Context Window laufen, mit eigenem System-Prompt, eingeschränktem Tool-Zugriff und eigenen Berechtigungen. Sie definieren einen als Markdown-Datei mit YAML-Frontmatter in .claude/agents/. Der Subagent erledigt eine Nebenaufgabe und gibt nur seine Zusammenfassung an Ihre Hauptkonversation zurück.

Nutzt Claude Code Subagents automatisch?

Ja. Claude liest das description-Feld jedes verfügbaren Subagents und delegiert, sobald eine Aufgabe passt, ohne vorher nachzufragen. Seit v2.1.198 laufen Subagents standardmäßig im Hintergrund, sodass die delegierte Arbeit oft passiert, während Sie in der Hauptkonversation weitertippen.

Wo liegen die Subagent-Dateien?

Projekt-Subagents liegen in .claude/agents/, User-Subagents in ~/.claude/agents/. Beide Orte werden rekursiv durchsucht, Unterordner sind also kein Problem. Die Identität ergibt sich ausschließlich aus dem name-Frontmatter-Feld, nie aus dem Pfad. Von einem Administrator verwaltete Subagents haben Vorrang vor Projekt- und User-Definitionen mit demselben Namen.

Wie rufe ich einen Subagent explizit auf?

Fragen Sie in Ihrem Prompt namentlich danach, zum Beispiel „nutze den validator-Subagent für diesen Entwurf". Der explizite Aufruf umgeht den Description-Abgleich, der die automatische Delegation steuert, was hilft, wenn zwei Ihrer Subagents überlappende Descriptions haben und Claude ständig den falschen greift.

Kann ein Subagent eigene Subagents starten?

Ja, seit Claude Code v2.1.172. Anleitungen, die vor diesem Release geschrieben wurden, behaupten, Verschachtelung sei unmöglich, und sie sind veraltet. Die Tiefe zählt Ebenen unterhalb der Hauptkonversation und ist fest auf fünf begrenzt: Ein Subagent auf Tiefe fünf erhält kein Agent-Tool. Das Limit ist nicht konfigurierbar.

Erinnern sich Subagents zwischen Sessions an etwas?

Nur, wenn Sie das memory-Feld setzen. Es akzeptiert user für ~/.claude/agent-memory/<name>/, project für .claude/agent-memory/<name>/ oder local für .claude/agent-memory-local/<name>/. Ohne dieses Feld startet jeder Aufruf bei null. Zwölf unserer achtzehn Agents nutzen memory: project, sodass ihre Notizen mit der Versionskontrolle mitreisen.

Kann ein Subagent ein anderes Modell nutzen als meine Session?

Ja. Setzen Sie model in der Frontmatter auf haiku, sonnet, opus oder eine konkrete Modell-ID, und das überschreibt für diesen Subagent Ihr Session-Modell. Unsere Flotte teilt sich in sechs auf Opus, elf auf Sonnet und einen auf Haiku, zugeteilt danach, wie viel Urteilsvermögen der Output jedes Agents verlangt.

Warum taucht mein neuer Subagent nicht auf?

Drei übliche Ursachen. Das agents-Verzeichnis existierte noch nicht, als die Session startete, sodass der Watcher es nie erfasst hat: Claude Code neu starten. Oder zwei Dateien teilen sich denselben name, und nur eine lädt. Oder nichts in Ihrer tools-Liste lässt sich auflösen, was seit v2.1.208 den Start mit einem Namensfehler verweigert.

Ist Task noch ein gültiger Tool-Name?

Ja, als Alias. Das Task-Tool wurde in v2.1.63 in Agent umbenannt, und bestehende Task(...)-Referenzen funktionieren in Settings und Agent-Definitionen weiterhin. Schreiben Sie in neuen Dateien Agent. Unsere eigene translation-coordinator.md deklariert noch immer Task, was wir beim Schreiben dieses Beitrags entdeckt und noch nicht bereinigt haben.

Drei Dinge, die Sie mitnehmen sollten

Wenn Sie gerade Ihre erste Flotte aufbauen, fangen Sie hier an. Das description-Feld entscheidet über alles, denn genau das liest Claude, wenn es einen Worker auswählt, schreiben Sie es also als Routing-Regel und nicht als Jobtitel. Entwerfen Sie die Übergabe als Datei, bevor Sie den Agent entwerfen, denn kein Subagent wird je den Context eines anderen sehen. Und setzen Sie jeden Agent auf das günstigste Modell, das eine korrekte Antwort liefern kann, und stufen Sie ihn erst hoch, wenn Sie ihn bei einem Fehler ertappen.

Entdecken Sie die komplette Library für die Specs hinter dieser Pipeline.

Related posts