YouMind
Anmelden

Lehren aus der Entwicklung von Claude Code: Prompt Caching ist alles

@trq212
ENGLISCH19. Feb. 2026
2.3M
5.6K
542
166
14.5K

TL;DR

Erfahren Sie, wie Claude Code die Leistung durch PrÀfix-Matching, stabile Tool-Sets und cache-sichere Komprimierung optimiert, um Latenzzeiten und Betriebskosten bei lang laufenden agentenbasierten Sitzungen zu reduzieren.

Es wird in der Technikbranche oft gesagt, dass „Cache alles bestimmt", und das gilt auch fĂŒr Agents.

Langlaufende, agentische Produkte wie Claude Code werden durch Prompt-Caching ermöglicht, das es uns erlaubt, Berechnungen aus vorherigen Roundtrips wiederzuverwenden und so Latenz und Kosten deutlich zu senken.

Was ist Prompt-Caching, wie funktioniert es und wie setzt man es technisch um? Mehr dazu in @RLanceMartin's Artikel ĂŒber Prompt-Caching und unseren neuen Auto-Caching-Funktionen.

Bei Claude Code bauen wir unsere gesamte Infrastruktur auf Prompt-Caching auf. Eine hohe Prompt-Cache-Trefferquote senkt die Kosten und hilft uns, großzĂŒgigere Limits fĂŒr unsere AbonnementplĂ€ne zu schaffen. Daher ĂŒberwachen wir unsere Prompt-Cache-Trefferquote und erklĂ€ren SEVs, wenn sie zu niedrig ist.

Dies sind die (oft unintuitiven) Lektionen, die wir aus der Optimierung von Prompt-Caching in großem Maßstab gelernt haben.

Gestalten Sie Ihren Prompt fĂŒr das Caching

Thariq - inline image

Prompt-Caching funktioniert durch PrĂ€fixabgleich – die API cached alles vom Anfang der Anfrage bis zu jedem cache_control-Breakpoint. Das bedeutet, die Reihenfolge, in der Sie die Dinge anordnen, ist enorm wichtig. Sie möchten, dass so viele Ihrer Anfragen wie möglich ein gemeinsames PrĂ€fix haben.

Der beste Weg, dies zu erreichen, ist: statischer Inhalt zuerst, dynamischer Inhalt zuletzt. FĂŒr Claude Code sieht das so aus:

  1. Statischer System-Prompt & Tools (global gecached)
  2. Claude.MD (innerhalb eines Projekts gecached)
  3. Sitzungskontext (innerhalb einer Sitzung gecached)
  4. Konversationsnachrichten

Auf diese Weise maximieren wir, wie viele Sitzungen Cache-Treffer teilen.

Aber das kann ĂŒberraschend fragil sein! Beispiele fĂŒr GrĂŒnde, warum wir diese Reihenfolge schon gebrochen haben, sind: das EinfĂŒgen eines detaillierten Zeitstempels in den statischen System-Prompt, das nicht-deterministische Durchmischen der Tool-Reihenfolge-Definitionen, das Aktualisieren von Tool-Parametern (z.B. welche Agents der AgentTool aufrufen kann) usw.

Verwenden Sie Nachrichten fĂŒr Aktualisierungen

Es kann Zeiten geben, in denen die Informationen, die Sie in Ihren Prompt eingefĂŒgt haben, veraltet sind, zum Beispiel wenn Sie die Zeit angeben oder der Nutzer eine Datei Ă€ndert. Es mag verlockend sein, den Prompt zu aktualisieren, aber das wĂŒrde zu einem Cache-Fehler fĂŒhren und könnte fĂŒr den Nutzer am Ende sehr teuer werden.

Überlegen Sie, ob Sie diese Informationen stattdessen in der nĂ€chsten Runde ĂŒber Nachrichten ĂŒbermitteln können. In Claude Code fĂŒgen wir im nĂ€chsten Nutzer-Beitrag oder Tool-Ergebnis einen <system-reminder>-Tag mit den aktualisierten Informationen fĂŒr das Modell hinzu (z.B. „es ist jetzt Mittwoch"), was hilft, den Cache zu erhalten.

Wechseln Sie nicht mitten in der Sitzung das Modell

Prompt-Caches sind modellspezifisch, und das kann die Mathematik des Prompt-Cachings ziemlich unintuitiv machen.

Wenn Sie 100k Token tief in einer Konversation mit Opus sind und eine Frage stellen möchten, die relativ einfach zu beantworten ist, wĂ€re es tatsĂ€chlich teurer, zu Haiku zu wechseln, als Opus antworten zu lassen, weil wir den Prompt-Cache fĂŒr Haiku neu aufbauen mĂŒssten.

Wenn Sie das Modell wechseln mĂŒssen, ist der beste Weg dies mit Sub-Agents zu tun, bei denen Opus eine „Übergabe"-Nachricht an ein anderes Modell fĂŒr die zu erledigende Aufgabe vorbereitet. Wir machen das oft mit den Explore-Agents in Claude Code, die Haiku verwenden.

FĂŒgen Sie niemals Tools mitten in der Sitzung hinzu oder entfernen Sie sie

Das Ändern des Tool-Sets mitten in einer Konversation ist eine der hĂ€ufigsten Arten, wie Leute das Prompt-Caching zerstören. Es erscheint intuitiv – Sie sollten dem Modell nur die Tools geben, von denen Sie denken, dass es sie gerade braucht. Aber da Tools Teil des gecachten PrĂ€fixes sind, macht das HinzufĂŒgen oder Entfernen eines Tools den Cache fĂŒr die gesamte Konversation ungĂŒltig.

Planungsmodus – Entwurf auf den Cache abgestimmt

Der Planungsmodus ist ein großartiges Beispiel fĂŒr die Gestaltung von Funktionen unter BerĂŒcksichtigung von Caching-EinschrĂ€nkungen. Der intuitive Ansatz wĂ€re: Wenn der Nutzer in den Planungsmodus wechselt, tauschen Sie das Tool-Set gegen ein Set aus, das nur Lese-Tools enthĂ€lt. Aber das wĂŒrde den Cache zerstören.

Stattdessen behalten wir alle Tools jederzeit in der Anfrage und verwenden EnterPlanMode und ExitPlanMode selbst als Tools. Wenn der Nutzer den Planungsmodus aktiviert, erhĂ€lt der Agent eine Systemnachricht, die erklĂ€rt, dass er sich im Planungsmodus befindet und welche Anweisungen gelten – erkunde die Codebasis, bearbeite keine Dateien, rufe ExitPlanMode auf, wenn der Plan fertig ist. Die Tool-Definitionen Ă€ndern sich nie.

Das hat einen zusÀtzlichen Vorteil: Da EnterPlanMode ein Tool ist, das das Modell selbst aufrufen kann, kann es autonom in den Planungsmodus wechseln, wenn es ein schwieriges Problem erkennt, ohne den Cache zu unterbrechen.

Tool-Suche – Verschieben statt Entfernen

Das gleiche Prinzip gilt fĂŒr unsere Tool-Suche-Funktion. Claude Code kann Dutzende von MCP-Tools geladen haben, und alle in jede Anfrage aufzunehmen, wĂ€re teuer. Aber sie mitten in der Konversation zu entfernen, wĂŒrde den Cache zerstören.

Unsere Lösung: defer_loading. Anstatt Tools zu entfernen, senden wir leichte Platzhalter – nur den Tool-Namen, mit defer_loading: true – die das Modell bei Bedarf ĂŒber ein ToolSearch-Tool „entdecken" kann. Die vollstĂ€ndigen Tool-Schemata werden nur geladen, wenn das Modell sie auswĂ€hlt. Dies hĂ€lt das gecachte PrĂ€fix stabil: dieselben Platzhalter sind immer in derselben Reihenfolge vorhanden.

GlĂŒcklicherweise können Sie das Tool-Suche-Tool ĂŒber unsere API verwenden, um dies zu vereinfachen.

Kontextverzweigung – Kompaktierung

Thariq - inline image

Kompaktierung tritt ein, wenn der Kontextfenster voll ist. Wir fassen die bisherige Konversation zusammen und setzen eine neue Sitzung mit dieser Zusammenfassung fort.

Überraschenderweise hat die Kompaktierung viele RandfĂ€lle mit Prompt-Caching, die unintuitiv sein können.

Insbesondere mĂŒssen wir bei der Kompaktierung die gesamte Konversation an das Modell senden, um eine Zusammenfassung zu erstellen. Wenn dies ein separater API-Aufruf mit einem anderen System-Prompt und ohne Tools ist (was die einfache Implementierung wĂ€re), stimmt das gecachte PrĂ€fix aus der Hauptkonversation ĂŒberhaupt nicht ĂŒberein. Sie zahlen den vollen Preis fĂŒr all diese Eingabe-Token, was die Kosten fĂŒr den Nutzer drastisch erhöht.

Die Lösung – Cache-sichere Verzweigung

Wenn wir eine Kompaktierung durchfĂŒhren, verwenden wir exakt denselben System-Prompt, Nutzerkontext, Systemkontext und dieselben Tool-Definitionen wie die Eltern-Konversation. Wir stellen die Konversationsnachrichten der Eltern voran und hĂ€ngen den Kompaktierungs-Prompt als neue Nutzernachricht am Ende an.

Aus Sicht der API sieht diese Anfrage fast identisch mit der letzten Anfrage der Eltern aus – gleiches PrĂ€fix, gleiche Tools, gleicher Verlauf –, sodass das gecachte PrĂ€fix wiederverwendet wird. Die einzigen neuen Token sind der Kompaktierungs-Prompt selbst.

Das bedeutet jedoch, dass wir einen „Kompaktierungspuffer" speichern mĂŒssen, damit wir genĂŒgend Platz im Kontextfenster haben, um die kompaktierte Nachricht und die Zusammenfassungs-Ausgabe-Token unterzubringen.

Kompaktierung ist knifflig, aber zum GlĂŒck mĂŒssen Sie diese Lektionen nicht selbst lernen – basierend auf unseren Erfahrungen mit Claude Code haben wir Kompaktierung direkt in die API integriert, sodass Sie diese Muster in Ihren eigenen Anwendungen anwenden können.

Gelernte Lektionen

  1. Prompt-Caching ist ein PrĂ€fixabgleich. Jede Änderung irgendwo im PrĂ€fix macht alles danach ungĂŒltig. Entwerfen Sie Ihr gesamtes System unter BerĂŒcksichtigung dieser EinschrĂ€nkung. Wenn Sie die Reihenfolge richtig hinbekommen, funktioniert das meiste Caching von selbst.
  2. Verwenden Sie Nachrichten anstelle von System-Prompt-Änderungen. Sie könnten versucht sein, den System-Prompt zu bearbeiten, um Dinge wie das Aktivieren des Planungsmodus oder das Ändern des Datums zu tun, aber es wĂ€re besser, diese im Laufe der Konversation in Nachrichten einzufĂŒgen.
  3. Wechseln Sie nicht mitten in der Konversation Tools oder Modelle. Verwenden Sie Tools, um ZustandsĂŒbergĂ€nge zu modellieren (wie den Planungsmodus), anstatt das Tool-Set zu Ă€ndern. Verschieben Sie das Laden von Tools anstelle sie zu entfernen.
  4. Überwachen Sie Ihre Cache-Trefferquote wie die Betriebszeit. Wir alerten auf Cache-BrĂŒche und behandeln sie als VorfĂ€lle. Ein paar Prozentpunkte an Cache-Fehlern können Kosten und Latenz drastisch beeinflussen.
  5. Verzweigungsoperationen mĂŒssen das PrĂ€fix der Eltern teilen. Wenn Sie eine Nebenberechnung (Kompaktierung, Zusammenfassung, Skill-AusfĂŒhrung) durchfĂŒhren mĂŒssen, verwenden Sie identische cache-sichere Parameter, damit Sie Cache-Treffer auf dem PrĂ€fix der Eltern erzielen.

Claude Code wurde von Anfang an auf Prompt-Caching aufgebaut. Das sollten Sie auch tun, wenn Sie einen Agenten bauen.

Mit einem Klick speichern

Virale Artikel mit YouMind per KI tief lesen

Speichere die Quelle, stelle gezielte Fragen, fasse die Argumentation zusammen und verwandle einen viralen Artikel in wiederverwendbare Notizen in einem einzigen KI-Arbeitsbereich.

YouMind entdecken
FĂŒr Creator

Verwandle dein Markdown in einen sauberen 𝕏-Artikel

Wenn du eigene Langtexte veröffentlichst, wird die 𝕏-Formatierung von Bildern, Tabellen und Codeblöcken mĂŒhsam. YouMind macht aus einem ganzen Markdown-Entwurf einen sauberen, sofort postbaren 𝕏-Artikel.

Markdown zu 𝕏 testen

Mehr Muster zum EntschlĂŒsseln

Aktuelle virale Artikel

Mehr virale Artikel entdecken