Zum Hauptinhalt springen

Prompt-Caching anbieterübergreifend

Experte

Prompt-Caching ist der größte einzelne Kostenhebel in einer produktiven LLM-Anwendung — routinemäßig eine Senkung um über 90 % auf der Input-Seite. Jeder große Anbieter hat es inzwischen. Das verleitet zur Annahme, es sei überall dieselbe Funktion — und das ist sie nicht.

Der Mechanismus ist identisch: Der Anbieter verwendet das bereits verarbeitete Präfix deines Prompts wieder, statt es erneut zu lesen. Unterschiedlich sind: wer entscheidet, wie lange der Cache lebt, wie lang ein Präfix sein muss, um sich zu qualifizieren, und — das ist der Punkt, der wirklich wehtut — ob du einen Aufschlag fürs Schreiben zahlst. Ein auf einem Anbieter abgestimmter Workload kann beim nächsten still aufhören zu cachen oder mehr kosten als gar kein Caching.

What you'll learn
  • Die beiden Steuerungsmodelle unterscheiden — explizite Breakpoints vs. automatische Präfix-Erkennung — und wissen, was jedes davon kostet
  • Die anbieterübergreifende Tabelle lesen: Mindest-Präfix, TTL, Lese-Rabatt, Schreibaufschlag und das usage-Feld, das einen Treffer beweist
  • Die portable Break-even-Regel anwenden: wie viele Wiederverwendungen innerhalb der TTL nötig sind, bis Caching sich rechnet
  • Die fünf Fallen vermeiden, die einen Cache still killen, wenn du einen Workload zwischen Anbietern portierst
  • Eine echte Trefferquote bei jedem Anbieter aus der Antwort-usage verifizieren, nicht aus der Doku

Wenn du ausschließlich mit Claude arbeitest, lies zuerst Prompt-Caching & Kostenoptimierung — dort wird der cache_control-Mechanismus in der Tiefe erklärt. Diese Seite ist die Portabilitätsschicht darüber.

Die beiden Steuerungsmodelle​

Alles in diesem Bereich ist eines von zwei Designs, und das Design bestimmt deinen Fehlermodus.

Explizit (Anthropic): Du hängst einen Marker an den letzten stabilen Block. Nichts wird gecacht, bis du danach fragst. Du bekommst exakte Kontrolle über die Grenze und kannst mehrere setzen. Du trägst aber auch den Bug: Ein Prompt ohne Breakpoint zahlt auf Dauer den vollen Preis, und nichts warnt dich.

Automatisch (OpenAI, Googles implizites Caching, DeepSeek): Der Anbieter hasht dein Präfix und verwendet wieder, was er kann. Nichts zu konfigurieren — und nichts zu reparieren, wenn es nicht trifft. Dein einziger Hebel ist das Layout des Prompts — stabile Inhalte zuerst — plus, bei OpenAI, ein Routing-Hinweis.

Der Hebel, den du in beiden Modellen behältst

Die Präfix-Reihenfolge ist die eine Steuerung, die überall funktioniert. Stabile Inhalte zuerst, volatile Inhalte zuletzt. In expliziten Systemen entscheidet sie, wo dein Breakpoint liegen kann; in automatischen Systemen ist sie das Einzige, was du kontrollierst.

Die anbieterübergreifende Tabelle​

Anthropic (Claude)OpenAIGoogle (Gemini)DeepSeek
SteuerungExplizit über cache_control, bis zu 4 BreakpointsAutomatisch, Präfix-AbgleichStandardmäßig implizit; explizite Cache-Objekte ebenfalls verfügbarAutomatisch, auf Festplatte
Mindest-Präfix512 Tokens bei Fable 5.1 / Mythos 5.1 / Opus 5.5 / Opus 5 / Fable 5 / Mythos 5; 1.024 bei Sonnet 5 und Opus 4.8; 2.048–4.096 bei älteren Modellen1.024 Tokens ab GPT-5.6; davor je nach Request-Einstellungen unterschiedlich4.096 Tokens bei Gemini 3.5–3.8 Flash und 3.1 Pro Preview; 2.048 bei Gemini 2.5 Flash / ProNicht als Token-Zahl veröffentlicht — Cache-Einheiten liegen an Request-Grenzen, erkannten gemeinsamen Präfixen und festen Token-Intervallen
TTL5 Minuten standardmäßig; 1 Stunde optional30 Minuten standardmäßig ab GPT-5.6 über prompt_cache_options.ttl; frühere Modelle nutzen prompt_cache_retention — im Speicher (typischerweise 5–10 Min.) oder 24 hKein fester veröffentlichter Standardwert für implizites CachingAutomatische Verdrängung „innerhalb von einigen Stunden bis einigen Tagen“, sobald ungenutzt
Cache-Lesen0,1× Basis-Input; 0,05× bei Opus 5.5; 0,025× bei Fable 5.1 / Mythos 5.10,1× Basis-InputAls separater Cached-Input-Preis veröffentlicht (0,1× des Standardpreises bei Gemini 3.8 Flash bis zum 31.12.2026)Separater Cache-Hit-Input-Preis, rund 1/30 des Miss-Preises bei deepseek-v4-pro
Schreibaufschlag1,25× Basis-Input für die 5-Minuten-Stufe; 2× für die 1-Stunden-Stufe1,25× Basis-Input ab GPT-5.6Keiner für implizites Caching; explizites Caching berechnet Speicherung mit 0,50 $ pro Million Tokens pro Stunde bei Gemini 3.8 Flash bis zum 31.12.2026Keiner veröffentlicht
Nachweis eines Trefferscache_read_input_tokens und cache_creation_input_tokens in usageAnzahl gecachter Tokens in usageusage.total_cached_tokensprompt_cache_hit_tokens und prompt_cache_miss_tokens
Abrechnungs-/Routing-HinweisPlatzierung des Breakpointsprompt_cache_key — separate Cache-Abrechnung ab GPT-5.6, davor Cache-Routing——

Bei selbst gehosteten offenen Modellen existiert dieselbe Idee eine Ebene tiefer als Prefix-Caching in der Serving-Engine: vLLM und SGLang verwenden KV-Cache-Blöcke für ein gemeinsames Präfix wieder. Es gibt keinen Preis pro Token, also auch keinen Break-even zu berechnen — die Kosten sind VRAM, und der Gewinn ist Prefill-Latenz, nicht die Rechnung. vLLM stellt das als enable_prefix_caching bereit; in der V1-Engine ist es standardmäßig aktiv, du wirst es auf einem aktuellen Build also eher aus- als einschalten. Siehe Modelle lokal mit Ollama betreiben und Ein privater lokaler KI-Stack.

Die Break-even-Regel​

Hier kommt der Teil, den die Anbieter-Dokus als Übungsaufgabe hinterlassen. Caching ist in expliziten Systemen nicht kostenlos, und seit GPT-5.6 ist es das bei OpenAI auch nicht mehr. Ein Schreibaufschlag bedeutet: Ein Präfix, das du nur einmal wiederverwendest, kann dich mehr kosten, als es nicht zu cachen.

Sei P das, was das Präfix zum Basis-Input-Preis kosten würde, w der Schreib-Multiplikator, r der Lese-Multiplikator und N die Anzahl der Aufrufe, die das Präfix innerhalb eines TTL-Fensters teilen.

Without caching: N · P
With caching: w · P + (N − 1) · r · P

Caching wins when: w + (N − 1) · r < N
Which solves to: N > (w − r) / (1 − r)

Setze die veröffentlichten Multiplikatoren ein:

StufewrBreak-even-NBenötigte Wiederverwendungen
Anthropic 5 Minuten, Opus 5.51.250.051.262 Aufrufe
Anthropic 5 Minuten, Standard-Lesestufe1.250.11.282 Aufrufe
Anthropic 1 Stunde20.12.113 Aufrufe
OpenAI GPT-5.6+1.250.11.282 Aufrufe
Automatisch, kein Schreibaufschlag10.101 Aufruf — nie ein Verlust

Die Daumenregel ist also kurz: Zwei Treffer innerhalb der TTL und du bist im Plus; mach drei daraus, bevor du die 1-Stunden-Stufe kaufst. Darunter ist das Caching eines Präfixes ein kleiner, stiller Verlust.

Pro tip
  • N zählt Aufrufe innerhalb eines TTL-Fensters, nicht Aufrufe pro Tag. Ein Präfix, das 1.000-mal täglich in Schüben mit 20 Minuten Abstand wiederverwendet wird, zahlt das Schreiben in jedem Schub erneut.
  • Die 1-Stunden-Stufe ist kein reines Upgrade. Sie verdoppelt den Schreibaufschlag, um ein 12x längeres Fenster zu kaufen — das lohnt sich nur, wenn dein Traffic wirklich dünn ist.

Durchgerechnetes Beispiel: ein 50k-Token-Präfix, 1.000 Aufrufe pro Tag​

Auf Claude Opus 5.5 — Basis-Input 4 $/MTok, 5-Minuten-Schreiben 5 $/MTok, Lesen 0,20 $/MTok, alles aus Anthropics Preistabelle:

Guided walkthrough1 of 4
  1. 50.000 Tokens x 1.000 Aufrufe = 50 Mio. Input-Tokens. Bei 4 $/MTok sind das 200 $/Tag, jeden Tag, für Inhalte, die sich nie geändert haben.

Der Lehrpunkt ist Schritt 3 gegen Schritt 2: dasselbe Aufrufvolumen, dasselbe Präfix und ein Unterschied von 3,3x in der Rechnung, entschieden allein vom Ankunftsmuster gegen die TTL. Das Ankunftsmuster ist die Variable, die niemand in die Tabelle schreibt.

Fünf Fallen beim Portieren eines Workloads​

Watch out
  • TTL-Lücke: Ein Job, der alle 10 Minuten läuft, trifft bei OpenAIs 30-Minuten-Standard und verfehlt bei Anthropics 5-Minuten-Standard. Gleicher Code, gleicher Prompt, Trefferquote null.
  • Schwellenwert-Lücke: Ein System-Prompt mit 2.500 Tokens cacht bei Claude Opus 5.5 (Minimum 512 Tokens) und bei GPT-5.6 (1.024), aber nicht bei Gemini 3.8 Flash (4.096). Es schlägt still fehl — kein Fehler, nur eine Rechnung zum vollen Preis.
  • Invalidierungs-Lücke: Jeder Anbieter invalidiert bei einem geänderten Präfix, aber die nicht offensichtlichen Auslöser unterscheiden sich. Bei Anthropic invalidieren geänderte Tool-Definitionen, tool_choice oder (modellabhängig) Thinking- und Effort-Einstellungen. Bei OpenAI tun das Änderungen an Modell, Tool-Definitionen, Schemas, Reasoning-Effort, Verbosity oder Context-Compaction.
  • Schreibaufschlag-Lücke: Ein Präfix mit geringer Wiederverwendung von einem automatischen zu einem expliziten Anbieter zu portieren, kann es teurer machen als kein Caching. Rechne die Break-even-Regel von oben durch, bevor du einen Breakpoint setzt.
  • Observability-Lücke: Die Namen der usage-Felder folgen keiner gemeinsamen Konvention. Jedes Dashboard, das die Cache-Felder eines Anbieters parst, braucht einen Adapter pro Anbieter — sonst liest sich deine Trefferquote nach einer Migration als null.

Die eine Anthropic-spezifische Mechanik ohne Gegenstück irgendwo sonst: Der Cache wird über ein Rückblickfenster von 20 Blöcken pro Breakpoint nachgeschlagen. Eine stetig wachsende Konversation kann dieses Fenster überlaufen und aufhören zu treffen, obwohl das Präfix unverändert ist — siehe Die Ökonomie des Prompt-Cachings für die vollständigen Invalidierungsregeln.

Verifizieren, nicht annehmen​

Dokus beschreiben die Absicht; usage beschreibt, was dir berechnet wurde. Prüfe die echte Trefferquote bei jedem Anbieter, den du betreibst.

Die Cache-Trefferquote eines Workloads auditieren

Audit prompt caching for this codebase.

1. List every place we call an LLM API, with the provider and model.
2. For each call site, identify the prefix that is stable across calls
 and anything volatile that appears BEFORE it (timestamps, user IDs,
 reordered tool lists, freshly serialized JSON with unstable key order).
3. Report the token length of each stable prefix and compare it to that
 provider's minimum cacheable length. Flag any prefix below it.
4. Estimate the typical gap between consecutive calls sharing each prefix
 and compare it to that provider's cache TTL. Flag any gap that exceeds it.
5. Show me where we read the cache fields back from the response usage.
 If we never read them, say so plainly — that is the finding.

Do not change any code. Give me a table of call site, provider, prefix
tokens, minimum, typical gap, TTL, and the fields we read.

Zwei Fehlersignaturen sind es wert, benannt zu werden, weil sie auf einem Dashboard identisch aussehen und entgegengesetzte Lösungen haben:

  • Gecachte Tokens immer null bei wiederholten Requests, die ein Präfix teilen sollten → ein volatiler Wert sitzt vor deinem stabilen Inhalt, oder das Präfix liegt unter dem Minimum. Vergleiche die gerenderten Prompt-Bytes zwischen zwei Aufrufen.
  • Gecachte Tokens ungleich null, aber die Rechnung bewegt sich kaum → das Präfix cacht, ist aber kurz im Vergleich zu deinem volatilen Suffix. Caching funktioniert; es ist nur nicht dort, wo dein Geld hingeht. Sieh dir stattdessen die Output-Tokens und warum Agenten Tokens verbrennen an.
Die Begriffe festmachen
Drücke Enter oder die Leertaste, um die Karte umzudrehen. Nutze die Pfeiltasten links und rechts, um zwischen den Karten zu wechseln.Begriff angezeigt.
1 / 6

Selbsttest

0/4
  1. Ein Präfix wird innerhalb des Fensters genau zweimal wiederverwendet. Welche Stufe ist die falsche Wahl?
  2. Ein System-Prompt mit 2.500 Tokens cachte bei Claude problemlos und hörte nach einer Portierung zu Gemini 3.8 Flash auf zu cachen. Wahrscheinlichste Ursache?
  3. Gleicher Prompt, dieselben 1.000 Aufrufe pro Tag. Warum sollte sich die Rechnung verdreifachen?
  4. Die gecachten Tokens sind ungleich null, aber die Rechnung hat sich kaum bewegt. Was sagt dir das?
Key takeaways
  • Zwei Designs, zwei Fehlermodi: Explizites Caching scheitert daran, nie markiert zu werden; automatisches Caching scheitert still, und du kannst keinen Treffer erzwingen.
  • Caching ist nicht automatisch kostenlos. Mit einem Schreibaufschlag brauchst du N > (w - r) / (1 - r) Wiederverwendungen innerhalb einer TTL — zwei Aufrufe für die 5-Minuten-Stufen, drei für Anthropics 1-Stunden-Stufe.
  • Das Ankunftsmuster gegen die TTL entscheidet die Rechnung, nicht das Aufrufvolumen: dieselben 1.000 täglichen Aufrufe kosten bei Opus 5.5 gleichmäßig verteilt etwa 10 $ und in Schüben etwa 34 $.
  • Die Mindest-Präfixlänge reicht anbieterübergreifend von 512 bis 4.096 Tokens — ein Prompt, der bei Claude cacht, kann bei Gemini Flash still aufhören zu cachen.
  • Beweise die Trefferquote bei jedem Anbieter aus der Antwort-usage; die Feldnamen folgen keiner gemeinsamen Konvention, ein Dashboard braucht also einen Adapter pro Anbieter.
  • Stabile Inhalte zuerst, volatile Inhalte zuletzt. Das ist der eine Hebel, der bei jedem Anbieter funktioniert, einschließlich selbst gehostetem Prefix-Caching.

Quellen & weiterführende Literatur​

Weiter​