Bei der Nutzung der Claude API für Aufrufe mit langem Kontext stehen viele Entwickler vor demselben Rätsel: Obwohl das Caching im Feld cache_control explizit deklariert wurde, bleiben cache_creation_input_tokens und cache_read_input_tokens in der Antwort bei 0, und auf der Rechnung ist kein Cache-Rabatt zu sehen. Dieser Artikel analysiert systematisch die 5 Hauptgründe für das Scheitern von Claude Prompt Caching und erläutert insbesondere die oft übersehene „Mindest-Token-Schwelle für Caching“ sowie den Mechanismus des „stillen Scheiterns“.
Kernnutzen: Nach dem Lesen dieses Artikels kennen Sie die Mindest-Caching-Schwellenwerte der verschiedenen Anthropic-Modelle, verstehen, warum kurze Eingabeaufforderungen mit cache_control keine Fehlermeldung auslösen, aber dennoch nicht zwischengespeichert werden, und lernen, wie Sie mit 4 Zeilen Code prüfen, ob das Caching tatsächlich gegriffen hat.

Kernpunkte des Claude Prompt Caching
Claude Prompt Caching ist der von Anthropic bereitgestellte Mechanismus zur Zwischenspeicherung von Eingabeaufforderungen: Wiederkehrende System-Prompts, lange Dokumente oder Tool-Definitionen werden in einem temporären Cache gespeichert. Bei einem Treffer erfolgt die Abrechnung zum Lesepreis, der etwa 90 % günstiger ist als der normale Eingabepreis. Die entscheidenden Merkmale sind „Präfix-Übereinstimmung + explizite Deklaration + stilles Scheitern“. Diese drei Punkte bestimmen, wie Sie bei der Fehlersuche vorgehen sollten.
| Punkt | Erklärung | Relevanz für die Fehlersuche |
|---|---|---|
| Explizite Deklaration | Ein cache_control-Block muss in system, messages oder tools eingefügt werden |
Fehlende oder falsch platzierte Blöcke verhindern das Caching |
| Präfix-Übereinstimmung | Erfordert Byte-genaue Übereinstimmung aller Inhalte vor dem Cache-Block | Selbst ein zusätzliches Leerzeichen führt zum Fehlschlag |
| Stilles Scheitern | Anfragen, die die Bedingungen nicht erfüllen, werden normal beantwortet, ohne Fehlermeldung | Das usage-Feld muss aktiv geprüft werden |
| TTL-Limit | Standardmäßig 5 Minuten, maximal 1 Stunde | Lange Intervalle zwischen Aufrufen führen zum Ablauf |
Das „stille Scheitern“ ist der Teil dieses Mechanismus, bei dem die meisten Entwickler stolpern. Die Dokumentation von Anthropic stellt klar: Wenn Ihre Anfrage die Caching-Bedingungen nicht erfüllt (z. B. zu kurz, geändertes Präfix), gibt die API weiterhin eine normale Antwort zurück, erstellt jedoch keinen Cache, liest keinen Cache und wirft keinen Fehler. Das bedeutet, dass Sie in Ihrem Code keine Ausnahme sehen werden und den Status nur durch eine aktive Prüfung des usage-Objekts in der Antwort verifizieren können.
Wenn Sie die Claude-Modelle der Sonnet-, Opus- oder Haiku-Reihe über die APIYI-Plattform (apiyi.com) aufrufen, ist die Caching-Logik identisch mit der offiziellen Anthropic-Schnittstelle. Es wird empfohlen, vor der Produktivsetzung das usage-Feld einmal auszugeben, um sicherzustellen, dass das Caching tatsächlich wirksam ist.
Claude Prompt Caching: Schnellübersicht der Token-Mindestgrenzen pro Modell
Der am häufigsten übersehene Grund für Cache-Misses ist, dass die Länge der Eingabeaufforderung die von Anthropic für das jeweilige Modell festgelegte „Mindestanzahl an cachebaren Token“ nicht erreicht. Unterhalb dieser Länge wird die Anfrage trotz cache_control wie eine normale Anfrage behandelt. Die Schwellenwerte unterscheiden sich je nach Modell erheblich. Die folgende Tabelle enthält die offiziellen Daten vom Mai 2026 – am besten direkt speichern.

| Modell | Mindest-Token für Cache | Anmerkung |
|---|---|---|
| Claude Opus 4.7 / 4.6 / 4.5 | 4096 | Aktuelles Flaggschiff, höchste Hürde |
| Claude Sonnet 4.6 | 2048 | Aktuelles Hauptmodell, Hürde verdoppelt |
| Claude Sonnet 4.5 / Sonnet 4 / Sonnet 3.7 | 1024 | Klassische Sonnet-Serie |
| Claude Opus 4.1 / Opus 4 | 1024 | Ältere Opus-Generation |
| Claude Haiku 4.5 | 4096 | Haiku liegt hier höher als Sonnet |
| Claude Haiku 3.5 | 2048 | Langzeitstabiles, schnelles Modell |
Viele sind überrascht, dass „kleine Modelle“ wie Haiku 4.5 die gleiche hohe Hürde wie Opus 4.7 haben. Der Grund: Die neue Haiku-Generation nutzt ein längeres Aufmerksamkeitsfenster. Der technische Nutzen des Cachings zeigt sich erst bei längeren Präfixen, weshalb Anthropic die Hürde strategisch angehoben hat.
In der Praxis scheitern Entwickler oft daran, dass sie ihre Eingabeaufforderungen nach dem alten 1024-Token-Standard von Sonnet 3.7 entwerfen. Beim Wechsel auf Sonnet 4.6 schlägt das Caching fehl, was oft fälschlicherweise für einen Code-Fehler gehalten wird. Wenn Sie über APIYI (apiyi.com) mehrere Claude-Modelle ansteuern, sollten Sie diese Tabelle unbedingt in Ihre Parameterprüfung einbauen und die Hürde dynamisch je nach model-Feld validieren.
5 Gründe für Claude Prompt Caching Misses
Sobald Sie die „Mindest-Token-Hürde“ und das „stille Scheitern“ verstanden haben, können Sie Probleme systematisch eingrenzen. Hier sind die 5 häufigsten Ursachen, sortiert nach ihrer Häufigkeit.

Grund 1: Eingabeaufforderung unter der Mindestgrenze
Dies ist der häufigste Fehler. Wenn Sie für Sonnet 4.6 Caching deklarieren, aber die tatsächliche System-Eingabeaufforderung nur 1500 Token umfasst, wird kein Cache erstellt. Nutzen Sie einen lokalen Tokenizer, um die Summe aus System-Prompt, Tool-Definitionen und bereits gecachten Nachrichten zu schätzen.
Grund 2: Byte-Ebene Änderungen im Präfix
Prompt Caching erfordert eine exakte Übereinstimmung. Jede noch so kleine Änderung an System-Prompt, Tools oder Nachrichtenverlauf führt zum Cache-Miss. Achten Sie auf dynamische Inhalte wie Zeitstempel oder unsortierte Python-Dictionaries, die die Serialisierung beeinflussen. Ein Diff-Vergleich der Payloads hilft hier enorm. Wenn Sie APIYI (apiyi.com) als Proxy nutzen, können Sie die Anfragen dort hashen, um Abweichungen sofort zu erkennen.
Grund 3: TTL abgelaufen
Die Standard-TTL beträgt 5 Minuten. Danach wird der Cache-Eintrag freigegeben. Ein 1-Stunden-TTL kostet das Doppelte des Standard-Eingabepreises. Prüfen Sie, ob cache_creation_input_tokens ungleich Null ist, obwohl Sie einen Cache-Treffer erwarten – das ist ein klares Zeichen für einen abgelaufenen TTL.
Grund 4: Falsche Platzierung von cache_control
cache_control muss innerhalb eines Inhaltsblocks (in system, messages oder tools) platziert werden und den Typ ephemeral haben. Häufige Fehler sind die Platzierung auf der obersten Ebene oder das Aufteilen auf mehrere Blöcke, ohne die Mindestgrenze von 2048 Token zu erreichen.
Grund 5: Keine Cache-Freigabe über Workspaces oder Modelle hinweg
Seit dem 5. Februar 2026 sind Caches an den Workspace gebunden. Unterschiedliche API-Schlüssel oder Workspaces können nicht auf denselben Cache zugreifen. Auch ein Modellwechsel (z. B. von Sonnet 4.6 auf 4.5) macht den Cache ungültig. Nutzen Sie für Multi-Modell-Anwendungen eine zentrale Plattform wie APIYI (apiyi.com), um den gleichen Upstream-Workspace zu verwenden und Cache-Fragmentierung zu vermeiden.
Claude Prompt Caching: Validierung der Trefferquote und Logik
Der erste Schritt bei der Fehlersuche, wenn das Caching nicht greift, ist immer das „Ausgeben des usage-Feldes“. Anthropic fügt jedem messages.create-Response-Objekt ein usage-Feld hinzu. Dieses enthält vier entscheidende Parameter, die als einzige verlässliche Quelle für den Status des Caches dienen.
Minimalistischer Validierungscode
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIYI_KEY",
base_url="https://api.apiyi.com"
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[{
"type": "text",
"text": LONG_SYSTEM_PROMPT, # Muss ≥ 2048 Token sein
"cache_control": {"type": "ephemeral"}
}],
messages=[{"role": "user", "content": "your question"}]
)
u = response.usage
print(f"Cache schreiben: {u.cache_creation_input_tokens}")
print(f"Cache lesen: {u.cache_read_input_tokens}")
print(f"Ungecachter Input: {u.input_tokens}")
Nutzen Sie diesen Code als Vorlage für die Fehlersuche. Wenn Sie vermuten, dass das Caching nicht funktioniert, führen Sie diesen Test sofort aus, um das Problem einzugrenzen.
Vollständige gekapselte Version anzeigen
import anthropic
import logging
MIN_TOKENS = {
"claude-opus-4-7": 4096,
"claude-opus-4-6": 4096,
"claude-opus-4-5": 4096,
"claude-sonnet-4-6": 2048,
"claude-sonnet-4-5": 1024,
"claude-haiku-4-5": 4096,
"claude-haiku-3-5": 2048,
}
def call_with_cache_check(model: str, system_text: str, user_msg: str):
client = anthropic.Anthropic(
api_key="YOUR_APIYI_KEY",
base_url="https://api.apiyi.com"
)
response = client.messages.create(
model=model,
max_tokens=1024,
system=[{
"type": "text",
"text": system_text,
"cache_control": {"type": "ephemeral"}
}],
messages=[{"role": "user", "content": user_msg}]
)
u = response.usage
if u.cache_creation_input_tokens == 0 and u.cache_read_input_tokens == 0:
logging.warning(
f"Caching nicht aktiv, liegt vermutlich unter der {MIN_TOKENS.get(model)} Token-Schwelle"
)
return response
Tabelle zur Beurteilung des Cache-Status
cache_creation_input_tokens |
cache_read_input_tokens |
Schlussfolgerung |
|---|---|---|
| > 0 | = 0 | Erster Schreibvorgang (normal) |
| = 0 | > 0 | Cache-Treffer (ideal) |
| > 0 | > 0 | Teilweiser Treffer, neue Daten wurden geschrieben |
| = 0 | = 0 | Nicht gecacht, bitte die 5 Hauptursachen prüfen |
Die letzte Zeile zeigt ein Problem an. Wenn Sie diese Werte sehen, gehen Sie direkt zur Ursache 1 über und prüfen Sie die fünf Punkte nacheinander. Wenn Ihr Team hohe Anforderungen an die Stabilität der Schnittstelle hat, können Sie diese Logik als Middleware in die APIYI-Aufrufkette (apiyi.com) integrieren, um bei Fehlern sofort alarmiert zu werden.
4 praktische Tipps, um die Mindest-Token-Schwelle zu erreichen
Wenn Sie festgestellt haben, dass das Caching aufgrund zu geringer Länge nicht greift, ist das Ziel, das Präfix auf die erforderliche Schwelle zu bringen. Hier sind vier Tipps, sortiert nach Empfehlung; die ersten drei haben nahezu keine negativen Auswirkungen.

| Technik | Anwendungsfall | Zusätzliche Token | Hinweise |
|---|---|---|---|
| Umfassende Wissensdatenbank | System-Prompt zu kurz | +2000–4000 | Muss inhaltlich relevant sein |
| Zentralisierte Tool-Definitionen | Multi-Tool-Anwendungen | +500–2000 | tools-Feld ist ebenfalls cachebar |
| Häufige Few-Shot-Beispiele | Aufgabenbasierte Prompts | +1000–3000 | Beispiele sollten verallgemeinerbar sein |
| Auffüllen mit irrelevantem Text | Notlösung | beliebig | Nicht empfohlen, beeinträchtigt Qualität |
Die erste Methode, die „umfassende Wissensdatenbank“, ist am stabilsten. Wenn Ihre Anwendung bereits über eine interne Wissensbasis verfügt (z. B. Produkt-FAQs, Styleguides, SOPs), können Sie diese einmalig oben in den system-Block einfügen und mit cache_control versehen.
Die zweite Methode, „Tool-Definitionen“, wird oft übersehen. Das tools-Feld von Anthropic unterstützt ebenfalls cache_control, was besonders bei Agenten-Anwendungen effektiv ist.
Die dritte Methode, „Few-Shot-Beispiele“, eignet sich für komplexe Aufgaben. 3-5 Standardbeispiele am Ende des System-Prompts verbessern nicht nur die Stabilität der Ausgabe, sondern heben die Token-Anzahl oft über die Schwelle.
Die vierte Methode („Auffüllen“) ist eine reine Notlösung und nicht für den täglichen Gebrauch gedacht, da das Modell den Text weiterhin liest. Wenn Sie die Länge nicht anders erreichen können, sollten Sie über die APIYI-Plattform (apiyi.com) zu einem Modell mit niedrigerer Schwelle wie Sonnet 4.5 oder 3.7 wechseln.
Häufig gestellte Fragen
F1: Ich habe cache_control hinzugefügt, aber es wird nicht zwischengespeichert. Hat die API einen Bug?
Höchstwahrscheinlich liegt kein Bug vor, sondern ein Mechanismus für stille Fehler (Silent Failure) wurde ausgelöst. Prüfen Sie als ersten Schritt die Mindest-Token-Schwelle für das entsprechende model-Feld und geben Sie anschließend das usage-Objekt aus. In 99 % der Fälle liegt es an einer zu geringen Länge oder einer Änderung des Präfixes.
F2: Sind die Kosten für cache_creation_input_tokens hoch?
Die Schreibkosten für eine TTL von 5 Minuten betragen das 1,25-fache des Basis-Eingabepreises, bei einer TTL von 1 Stunde das 2-fache. Der Lesepreis liegt bei 0,1-fach. Im Allgemeinen amortisiert sich ein 5-Minuten-Cache bereits nach einem Lesezugriff und ein 1-Stunden-Cache nach zwei Zugriffen. Je häufiger die Wiederverwendung, desto größer der Nutzen.
F3: In der alten Dokumentation stand, dass das Minimum für Sonnet 1024 ist, warum jetzt 2048?
Dies ist eine neue Schwelle, die mit Sonnet 4.6 eingeführt wurde. Für Sonnet 4.5 und ältere Versionen gilt weiterhin 1024. Es empfiehlt sich, im Code eine Zuordnungstabelle „Modell → Schwelle“ zu pflegen und diese dynamisch basierend auf dem aufgerufenen Modell zu prüfen. Bei einem Modellaufruf über APIYI (apiyi.com) ist die Benennung des model-Feldes identisch mit der von Anthropic, sodass Sie dieselbe Mapping-Logik direkt wiederverwenden können.
F4: Wie verwende ich mehrere cache_control-Blöcke sicher?
Jeder cache_control-Block erfordert, dass das kumulierte Präfix die Schwelle erreicht, andernfalls wird der Haltepunkt ungültig. Anfängern empfehlen wir, nur einen Haltepunkt zu setzen und den gesamten System-Block zwischenzuspeichern. Wenn Sie eine Schichtung benötigen, können Sie „selten geänderte Wissensdatenbanken“ auf die erste Ebene und „gelegentlich geänderte Tool-Definitionen“ auf die zweite Ebene legen.
F5: Kann ich Prompt Caching über einen inländischen API-Proxy-Dienst testen?
Ja. Die Claude-Schnittstellen auf aggregierten API-Proxy-Diensten wie APIYI (apiyi.com) sind vollständig mit Anthropic kompatibel, einschließlich der Felder cache_control, ttl und usage. Entwickler können das Debugging und die Skalierung auf der Plattform durchführen, wobei die Caching-Logik und die Abrechnungsregeln konsistent bleiben.
Fazit
Das Prompt Caching bei Claude wirkt auf den ersten Blick so einfach wie das Hinzufügen eines cache_control-Feldes, doch in der Praxis stößt man häufig auf die drei Fallstricke: „stille Fehler“, „Mindest-Token-Schwelle“ und „strenge Präfix-Übereinstimmung“. Die in diesem Artikel aufgeführte Checkliste mit 5 Punkten und die Treffer-Tabelle helfen Entwicklern, 90 % der Probleme bei der Cache-Nicht-Treffer-Quote innerhalb von 5 Minuten zu lokalisieren.
Unsere Empfehlung für die Implementierung: Integrieren Sie die Validierungslogik als Standard-Middleware, definieren Sie die Modellschwellen als Konstanten im Code und erstellen Sie separate Skripte für das Cache-Prewarming. Wenn Ihre Anwendung häufig zwischen verschiedenen Modellen wechselt, können Sie die Claude-Aufrufe über die Plattform APIYI (apiyi.com) zentral verwalten. So nutzen Sie dieselbe Caching-Strategie und Überwachungslogik und vermeiden versteckte Kosten durch Cache-Fragmentierung oder inkonsistente Schwellenwerte in verschiedenen Umgebungen.
Autor: APIYI Technical Team
Kontakt: Erhalten Sie vollständige Unterstützung für die Claude-Modellreihe und Prompt Caching über APIYI (apiyi.com)
Aktualisiert am: 12.05.2026
