Claude Code

agent_summary: 16 Prozent der Claude-Code-Token gehen an eine Statuszeile aus drei Wörtern

3 Min. Lesezeit KI-generiert

96 Prozent dieser Kosten entstehen auf Opus, bei rund 9.000 Eingabe-Token je Ausgabe-Token. In den Sitzungsprotokollen auf der Platte tauchen die Aufrufe gar nicht auf.

Featured image for "agent_summary: 16 Prozent der Claude-Code-Token gehen an eine Statuszeile aus drei Wörtern"

Wenn du Hintergrund-Agenten in Claude Code laufen lässt, schickt das Werkzeug alle 30 Sekunden pro Agent dessen vollständiges Transkript samt Tool-Schema an das Modell des Agenten – meist Opus – und bittet um eine Beschreibung der letzten Aktion in drei bis fünf Wörtern. Die Antwort landet in der Statuszeile im Agenten-Panel. Sie erreicht weder das Modell noch dein Gespräch.

Die Firma Flamerix AI hat das in der OpenTelemetry-Ausgabe von Claude Code nachgemessen. Gruppiert man claude_code.api_request nach query_source, kostet agent_summary mehr als das Hauptgespräch selbst: 16,4 Prozent der von Claude Code geschätzten Ausgaben einer Woche gegen 15,7 Prozent für die eigentliche Unterhaltung. Jeder fünfte API-Aufruf (19,7 Prozent) war eine Statuszeile. 96 Prozent davon liefen auf Opus, das Verhältnis lag bei etwa 9.000 Eingabe-Token je Ausgabe-Token.

Vier weitere Messungen, seit Mitte August

Flamerix ist nicht allein. Das Issue #86879 im Repository von Claude Code steht seit dem 15. August offen und sammelt vier unabhängige Messungen zwischen 18 und 26 Prozent. Der Melder hat eine vierstündige Sitzung mit 27 Subagenten und 1.496 Aufrufen aus Rohdaten rekonstruiert: 339 davon waren agent_summary, zusammen 22,2 Prozent der Roh-Token und 22,7 Prozent aller Anfragen – für insgesamt 21.966 Ausgabe-Token kosmetischen Statustext, rund 65 pro Aufruf.

Der Grund für die Höhe ist die Bauart. Die Kosten wachsen mit der Zahl paralleler Agenten und mit der Laufzeit, nicht mit der geleisteten Arbeit. Drei gleichzeitig laufende Subagenten zahlen sechs dieser Aufrufe pro Minute.

Ausschalten lässt sich das nicht

Der dokumentierte SDK-Schalter agentProgressSummaries steht laut Dokumentation auf false. Im ausgelieferten Bundle ist er aber nur ein Glied einer Oder-Verknüpfung, und jeder Pfad, der ihn setzt, setzt ihn auf true. Das Intervall kommt von einem Server-Flag, das auf 30 bis 240 Sekunden begrenzt ist; der Standard ist schon das Minimum, und kein Wert schaltet den Timer ab. DISABLE_NON_ESSENTIAL_MODEL_CALLS kommt in der Binärdatei nicht vor. Zwei Variablen helfen, nehmen aber Fork-Subagenten oder Hintergrundaufgaben mit.

Flamerix hat deshalb no-agent-summary.js veröffentlicht, einen Bun-Preload von etwa 70 Zeilen. Er umhüllt nur das globale setTimeout und gibt einen untätigen Handle zurück, wenn der Quelltext des Callbacks einen Anker des Summarizers enthält. Die Binärdatei bleibt unangetastet. Nach dem Eingriff lag der Anteil bei null, und der Rest der Sitzung war laut Messung byteidentisch – der Aufruf forkt den Kontext, verweigert alle Tools, läuft eine Runde und schreibt nichts ins Transkript.

Unsichtbar, weil die Protokolle sie nicht kennen

Dass das so lange niemandem auffiel, hat einen schlichten Grund: Diese Anfragen stehen nicht in den Sitzungsprotokollen auf der Platte. Wer seine Kosten mit einem Werkzeug prüft, das Transkripte liest, sieht sie nicht. Nur die Telemetrie zeigt sie.

Anthropic kennt das Problem. In 2.1.310 ist ein günstigerer short-Modus gelandet, der statt des ganzen Transkripts etwa 2.000 Token Notizen schickt und optional ein kleineres Modell nutzt. Standard ist er nicht, umstellen können ihn nur Server-Flags. Und im Changelog von 2.1.314, veröffentlicht heute Nacht, steht dazu nichts. Ein Schalter für etwas, das jeden fünften Aufruf verursacht, wäre eine Zeile.

Quellen

Claude CodeTokenTelemetrie