In meinem ersten Monat, in dem ich Agenten in nennenswertem Umfang betrieb, verbrannte ich 1.400 Dollar – und das meiste davon war pure Verschwendung. Nicht das Modell, das hart über schwierige Probleme nachdenkt – das ist gut investiertes Geld. Es war das wiederholte Senden desselben 40K-Token-System-Prompts ohne Cache bei jeder einzelnen Anfrage, das Ausführen von allem auf maximaler Effort-Stufe und die Verwendung von Opus zum Grep von Dateien. Reiner Abfluss.
Das Ziel ist nicht, den Agenten billiger zu machen, indem man ihn dümmer macht. Jeder kann auf ein kleineres Modell wechseln und das Kostenkontrolle nennen. Das Ziel ist, die Verschwendung zu eliminieren und die Intelligenz dort zu behalten, wo sie zählt. Hier geht das Geld tatsächlich hin und wie ich jedes Leck stopfe.
Prompt-Caching ist der größte Hebel
Wenn Sie einen Agenten mit einem großen, stabilen System-Prompt und Toolset betreiben und Ihre cache_read_input_tokens bei null liegen, verbrennen Sie Geld. Caching ist ein Präfix-Abgleich – die API cached den gerenderten Prompt bis zu einem Breakpoint, und Cache-Lesevorgänge kosten ungefähr ein Zehntel des vollen Eingabepreises.
Der Haken: Jede Byteänderung im Präfix macht alles danach ungültig. Der klassische Killer ist ein Zeitstempel im System-Prompt.
system = f"You are an agent. Current time: {datetime.now()}" # cache dead on arrival
Dieses datetime.now() macht jede Anfrage zu einem einzigartigen Präfix. Nichts wird je gecached. Verschieben Sie volatile Elemente – Zeitstempel, Anfrage-IDs, die eigentliche Frage – ans Ende, nach Ihrem letzten Cache-Breakpoint. Halten Sie den System-Prompt und die Tool-Liste eingefroren und byte-identisch.
Woran Sie erkennen, dass es funktioniert: Prüfen Sie usage.cache_read_input_tokens über wiederholte Anfragen hinweg. Ist es eine große Zahl, cachen Sie. Ist sie null, vergleichen Sie zwei gerenderte Prompts und finden Sie das Byte, das sich ändert. Es ist immer etwas Dummes – ein unsortierter JSON-Dump, eine UUID, ein Datum. Bei einer langen Agenten-Session ist das der Unterschied zwischen einem $4-Run und einem $0,40-Run, und es ändert nichts an der Ausgabequalität. Kostenloses Geld.
Effort pro Route anpassen, nicht alles maximieren
Der effort-Parameter steuert, wie hart das Modell denkt. Der Reflex ist, ihn überall auf max zu drehen, damit der Agent so klug wie möglich ist. Falscher Reflex. Bei den aktuellen Opus-Modellen ist high für die meisten Aufgaben der Sweet Spot, und max verbrennt oft nur zusätzliche Token beim Überdenken mit abnehmenden Erträgen.
Wichtiger noch: Nicht jeder Schritt in einer Agenten-Schleife braucht die gleiche Denkleistung. Ein Klassifizierungsschritt, eine "Welche Datei soll ich mir ansehen"-Entscheidung, ein Ja/Nein-Gate – die laufen problemlos bei low oder medium. Reservieren Sie high und xhigh für das eigentliche schwere Schlussfolgern und die langfristige Planung.
# cheap gate
client.messages.create(model="claude-opus-4-8", output_config={"effort": "low"}, ...)
# the real work
client.messages.create(model="claude-opus-4-8", output_config={"effort": "high"}, ...)
Ich habe einen Effort-Sweep über mein eigenes Eval-Set laufen lassen – medium, high, xhigh – und festgestellt, dass high bei xhigh bei der Qualität für die meisten meiner Routen mithalten kann, bei merklich geringerem Token-Verbrauch. Sie werden Ihre eigenen Zahlen erst kennen, wenn Sie messen. Verwenden Sie nicht aus Angst max als Standard.
Subagenten für billige Aufgaben
Hier ist ein Trick, der sowohl ein Kosten- als auch ein Caching-Spiel ist. Wenn Sie eine günstige Unteraufgabe erledigen müssen – ein Verzeichnis erkunden, eine Datei zusammenfassen, nach etwas suchen – tun Sie das nicht inline in Ihrer teuren Hauptschleife. Erzeugen Sie einen Subagenten auf einem günstigeren Modell.
Warum das auch ein Caching-Gewinn ist: Das Wechseln von Modellen mitten in einem Gespräch macht Ihren Cache ungültig, weil Caches modellspezifisch sind. Wenn Sie Ihre Hauptschleife von Opus auf Haiku für ein Grep und zurück wechseln, haben Sie Ihren Präfix-Cache zweimal zerstört. Ein Subagent hält die Hauptschleife auf einem Modell und einem Cache, während die günstige Arbeit abseits auf Haiku erledigt wird. Claude Code macht genau das – seine Explore-Subagenten laufen auf Haiku, genau aus diesem Grund.
Kontext-Bearbeitung und Komprimierung für lange Runs
Lange Agenten-Sessions sammeln veraltete Tool-Ergebnisse und alte Denk-Blöcke an. Bei jedem Turn senden Sie alles davon erneut zum vollen Eingabepreis. Zwei Tools beheben das.
Kontext-Bearbeitung löscht alte Tool-Ergebnisse aus dem Transkript, bevor das Modell sie sieht. Komprimierung fasst zusammen die Geschichte serverseitig, wenn Sie sich dem Fenster nähern. Sie sind verschieden – Bearbeitung beschneidet, Komprimierung kondensiert – und lange Agenten verwenden oft beides. Die Einsparungen summieren sich: Eine 40-Turn-Session, die 200K Token toten Tool-Outputs jeden Turn erneut senden würde, sendet stattdessen eine kompakte Zusammenfassung.
Ein Gotcha, das jeden bei der Komprimierung trifft: Hängen Sie den vollen response.content jeden Turn zurück an, nicht nur den extrahierten Text. Der Komprimierungs-Zustand lebt in diesen Content-Blöcken. Reduzieren Sie auf Text, verlieren Sie ihn still, und Ihre Kosten steigen wieder, während Sie sich fragen, warum.
Die richtige Zahl beobachten
Letzte Sache. Wenn Sie Kosten debuggen, starren Sie nicht allein auf input_tokens. Die echte Gesamtsumme ist input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Ich habe Menschen in Panik gesehen, weil ein lang laufender Agent nur 4K input_tokens zeigt und annehmen, dass etwas kaputt ist – nein, der Rest wurde aus dem Cache bedient. Diese 4K sind der nicht gecachte Rest. Summieren Sie alle drei oder Sie lesen den Messfühler falsch.
Nichts davon macht Ihren Agenten dümmer. Caching ist kostenlos. Effort-Tuning hält die Denkleistung dort, wo sie zählt. Subagenten legen billige Arbeit auf billige Modelle. Der dumme Schachzug ist der klug klingende: Überall auf ein schwächeres Modell wechseln und der Qualität zusehen, wie sie einbricht, um ein paar Dollar zu sparen. Beseitigen Sie zuerst die Verschwendung. Die Verschwendung ist enorm, und sie versteckt sich in einem Zeitstempel, den Sie vergessen haben.
