• Messages
  • Managed Agents
  • Admin

Search...
⌘K
Erste Schritte
Einführung in ClaudeSchnellstart
Entwickeln mit Claude
FunktionsübersichtVerwendung der Messages APIStoppgründe und FallbackAblehnungen und FallbackFallback-Guthaben
Modellfähigkeiten
Erweitertes DenkenAdaptives DenkenEffortAufgabenbudgets (Beta)Schnellmodus (Forschungsvorschau)Strukturierte AusgabenZitateStreaming von NachrichtenBatch-VerarbeitungSuchergebnisseStreaming von AblehnungenMehrsprachige UnterstützungEmbeddings
Tools
ÜbersichtFunktionsweise der Tool-NutzungTutorial: Einen Tool-nutzenden Agenten erstellenTools definierenTool-Aufrufe verarbeitenParallele Tool-NutzungTool Runner (SDK)Strikte Tool-NutzungTool-Nutzung mit Prompt-CachingServer-ToolsFehlerbehebungWebsuche-ToolWeb-Fetch-ToolCodeausführungs-ToolAdvisor-ToolMemory-ToolBash-ToolComputer-Use-ToolTexteditor-Tool
Tool-Infrastruktur
Tool-ReferenzTool-Kontext verwaltenTool-KombinationenTool-SucheProgrammatische Tool-AufrufeFeingranulares Tool-Streaming
Kontextverwaltung
KontextfensterKompaktierungKontextbearbeitungPrompt-CachingSystemnachrichten während der KonversationEinen Orchestrierungsmodus erstellenCache-Diagnose (Beta)Token-Zählung
Arbeiten mit Dateien
Files APIPDF-UnterstützungBilder und Vision
Skills
ÜbersichtSchnellstartBest PracticesSkills für UnternehmenSkills in der API
MCP
Remote-MCP-ServerMCP-Connector
Claude auf Cloud-Plattformen
Amazon BedrockAmazon Bedrock (Legacy)Claude Platform auf AWSMicrosoft FoundryVertex AI

Log in
Prompt-Caching
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/Kontextverwaltung

Prompt-Caching

Prompt-Caching optimiert deine API-Nutzung, indem es das Fortsetzen ab bestimmten Präfixen in deinen Prompts ermöglicht. Dies reduziert die Verarbeitungszeit und Kosten für sich wiederholende Aufgaben oder Prompts mit gleichbleibenden Elementen erheblich.



Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.

Es gibt zwei Möglichkeiten, Prompt-Caching zu aktivieren:

  • Automatisches Caching: Füge ein einzelnes cache_control-Feld auf der obersten Ebene deiner Anfrage hinzu. Das System wendet den Cache-Breakpoint automatisch auf den letzten cachebaren Block an und verschiebt ihn nach vorne, wenn Konversationen wachsen. Am besten geeignet für mehrstufige Konversationen, bei denen der wachsende Nachrichtenverlauf automatisch gecacht werden soll.
  • Explizite Cache-Breakpoints: Platziere cache_control direkt auf einzelnen Content-Blöcken für eine feingranulare Kontrolle darüber, was genau gecacht wird.

Der einfachste Einstieg ist das automatische Caching:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    cache_control={"type": "ephemeral"},
    system="You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.",
    messages=[
        {
            "role": "user",
            "content": "Analyze the major themes in 'Pride and Prejudice'.",
        }
    ],
)
print(response.usage.model_dump_json())

Beim automatischen Caching cacht das System alle Inhalte bis einschließlich des letzten cachebaren Blocks. Bei nachfolgenden Anfragen mit demselben Präfix wird der gecachte Inhalt automatisch wiederverwendet.


So funktioniert Prompt-Caching

Wenn du eine Anfrage mit aktiviertem Prompt-Caching sendest:

  1. Das System prüft, ob ein Prompt-Präfix bis zu einem angegebenen Cache-Breakpoint bereits aus einer kürzlichen Abfrage gecacht ist.
  2. Falls gefunden, wird die gecachte Version verwendet, was Verarbeitungszeit und Kosten reduziert.
  3. Andernfalls wird der vollständige Prompt verarbeitet und das Präfix gecacht, sobald die Antwort beginnt.

Dies ist besonders nützlich für:

  • Prompts mit vielen Beispielen
  • Große Mengen an Kontext oder Hintergrundinformationen
  • Sich wiederholende Aufgaben mit gleichbleibenden Anweisungen
  • Lange mehrstufige Konversationen

Standardmäßig hat der Cache eine Lebensdauer von 5 Minuten. Der Cache wird ohne zusätzliche Kosten jedes Mal aktualisiert, wenn der gecachte Inhalt verwendet wird.



Falls dir 5 Minuten zu kurz sind, bietet Anthropic auch eine 1-Stunden-Cache-Dauer gegen zusätzliche Kosten an.

Weitere Informationen findest du unter 1-Stunden-Cache-Dauer.



Prompt-Caching cacht das vollständige Präfix

Prompt-Caching bezieht sich auf den gesamten Prompt – tools, system und messages (in dieser Reihenfolge) bis einschließlich des mit cache_control gekennzeichneten Blocks.


Preise

Prompt-Caching führt eine neue Preisstruktur ein. Die folgende Tabelle zeigt den Preis pro Million Token für jedes unterstützte Modell:

ModellBasis-Input-Token5-Min.-Cache-Schreibvorgänge1-Std.-Cache-SchreibvorgängeCache-Treffer & -AktualisierungenOutput-Token
Claude Fable 5$10 / MTok$12.50 / MTok$20 / MTok$1 / MTok$50 / MTok
Claude Mythos 5 (begrenzte Verfügbarkeit)$10 / MTok$12.50 / MTok$20 / MTok$1 / MTok$50 / MTok
Claude Opus 4.8$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
Claude Opus 4.7$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
Claude Opus 4.6$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
Claude Opus 4.1 (veraltet)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
Claude Opus 4 (veraltet)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
Claude Sonnet 4.6$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
Claude Sonnet 4 (veraltet)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
Claude Haiku 3.5 (eingestellt, außer auf Bedrock und Vertex AI)$0.80 / MTok$1 / MTok$1.60 / MTok$0.08 / MTok$4 / MTok


Die obige Tabelle spiegelt die folgenden Preismultiplikatoren für Prompt-Caching wider:

  • 5-Minuten-Cache-Write-Token kosten das 1,25-Fache des Basispreises für Input-Token
  • 1-Stunden-Cache-Write-Token kosten das 2-Fache des Basispreises für Input-Token
  • Cache-Read-Token kosten das 0,1-Fache des Basispreises für Input-Token

Diese Multiplikatoren kombinieren sich mit anderen Preismodifikatoren wie dem Batch-API-Rabatt und der Datenresidenz. Siehe Preise für vollständige Details.


Unterstützte Modelle

Prompt-Caching (sowohl automatisch als auch explizit) wird auf allen aktiven Claude-Modellen unterstützt.


Automatisches Caching

Automatisches Caching ist der einfachste Weg, Prompt-Caching zu aktivieren. Anstatt cache_control auf einzelnen Content-Blöcken zu platzieren, fügst du ein einzelnes cache_control-Feld auf der obersten Ebene deines Request-Bodys hinzu. Das System wendet den Cache-Breakpoint automatisch auf den letzten cachebaren Block an.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    cache_control={"type": "ephemeral"},
    system="You are a helpful assistant that remembers our conversation.",
    messages=[
        {"role": "user", "content": "My name is Alex. I work on machine learning."},
        {
            "role": "assistant",
            "content": "Nice to meet you, Alex! How can I help with your ML work today?",
        },
        {"role": "user", "content": "What did I say I work on?"},
    ],
)
print(response.usage.model_dump_json())

So funktioniert automatisches Caching in mehrstufigen Konversationen

Beim automatischen Caching bewegt sich der Cache-Punkt automatisch nach vorne, wenn Konversationen wachsen. Jede neue Anfrage cacht alles bis zum letzten cachebaren Block, und vorheriger Inhalt wird aus dem Cache gelesen.

AnfrageInhaltCache-Verhalten
Anfrage 1System
+ User(1) + Asst(1)
+ User(2) ◀ Cache
Alles wird in den Cache geschrieben
Anfrage 2System
+ User(1) + Asst(1)
+ User(2) + Asst(2)
+ User(3) ◀ Cache
System bis User(2) aus Cache gelesen;
Asst(2) + User(3) in Cache geschrieben
Anfrage 3System
+ User(1) + Asst(1)
+ User(2) + Asst(2)
+ User(3) + Asst(3)
+ User(4) ◀ Cache
System bis User(3) aus Cache gelesen;
Asst(3) + User(4) in Cache geschrieben

Der Cache-Breakpoint bewegt sich automatisch zum letzten cachebaren Block in jeder Anfrage, sodass du keine cache_control-Markierungen aktualisieren musst, wenn die Konversation wächst.

TTL-Unterstützung

Standardmäßig verwendet automatisches Caching eine 5-Minuten-TTL. Du kannst eine 1-Stunden-TTL zum 2-fachen Basispreis für Input-Token angeben:

{ "cache_control": { "type": "ephemeral", "ttl": "1h" } }

Kombination mit Block-Level-Caching

Automatisches Caching ist mit expliziten Cache-Breakpoints kompatibel. Bei gemeinsamer Verwendung belegt der automatische Cache-Breakpoint einen der 4 verfügbaren Breakpoint-Slots.

So kannst du beide Ansätze kombinieren. Verwende beispielsweise einen expliziten Breakpoint, um deinen System-Prompt zu cachen, während automatisches Caching die Konversation übernimmt:

{
  "model": "claude-opus-4-8",
  "max_tokens": 1024,
  "cache_control": { "type": "ephemeral" },
  "system": [
    {
      "type": "text",
      "text": "You are a helpful assistant.",
      "cache_control": { "type": "ephemeral" }
    }
  ],
  "messages": [{ "role": "user", "content": "What are the key terms?" }]
}

Was gleich bleibt

Automatisches Caching verwendet dieselbe zugrunde liegende Caching-Infrastruktur. Preise, Mindest-Token-Schwellenwerte, Anforderungen an die Kontextreihenfolge und das 20-Block-Lookback-Fenster gelten genauso wie bei expliziten Breakpoints.

Sonderfälle

  • Wenn der letzte Block bereits ein explizites cache_control mit derselben TTL hat, ist automatisches Caching ein No-Op.
  • Wenn der letzte Block ein explizites cache_control mit einer anderen TTL hat, gibt die API einen 400-Fehler zurück.
  • Wenn bereits 4 explizite Block-Level-Breakpoints existieren, gibt die API einen 400-Fehler zurück (keine Slots mehr für automatisches Caching übrig).
  • Wenn der letzte Block nicht als Ziel für einen automatischen Cache-Breakpoint geeignet ist, geht das System stillschweigend rückwärts, um den nächstgelegenen geeigneten Block zu finden. Wird keiner gefunden, wird das Caching übersprungen.


Automatisches Caching ist auf der Claude API, Claude Platform on AWS und Microsoft Foundry (Beta) verfügbar. Bedrock und Vertex AI unterstützen kein automatisches Caching.


Explizite Cache-Breakpoints

Für mehr Kontrolle über das Caching kannst du cache_control direkt auf einzelnen Content-Blöcken platzieren. Dies ist nützlich, wenn du verschiedene Abschnitte cachen musst, die sich unterschiedlich häufig ändern, oder wenn du eine feingranulare Kontrolle darüber benötigst, was genau gecacht wird.

Strukturierung deines Prompts

Platziere statische Inhalte (Tool-Definitionen, Systemanweisungen, Kontext, Beispiele) am Anfang deines Prompts. Markiere das Ende des wiederverwendbaren Inhalts für das Caching mit dem cache_control-Parameter.

Cache-Präfixe werden in folgender Reihenfolge erstellt: tools, system, dann messages. Diese Reihenfolge bildet eine Hierarchie, bei der jede Ebene auf den vorherigen aufbaut.

So funktioniert die automatische Präfix-Prüfung

Du kannst nur einen Cache-Breakpoint am Ende deines statischen Inhalts verwenden, und das System findet automatisch das längste Präfix, das eine frühere Anfrage bereits in den Cache geschrieben hat. Zu verstehen, wie das funktioniert, hilft dir, deine Caching-Strategie zu optimieren.

Drei Grundprinzipien:

  1. Cache-Writes erfolgen nur an deinem Breakpoint. Das Markieren eines Blocks mit cache_control schreibt genau einen Cache-Eintrag: einen Hash des Präfixes, das an diesem Block endet. Das System schreibt keine Einträge für frühere Positionen. Da der Hash kumulativ ist und alles bis einschließlich des Breakpoints abdeckt, erzeugt das Ändern eines beliebigen Blocks an oder vor dem Breakpoint bei der nächsten Anfrage einen anderen Hash.

  2. Cache-Reads suchen rückwärts nach Einträgen, die frühere Anfragen geschrieben haben. Bei jeder Anfrage berechnet das System den Präfix-Hash an deinem Breakpoint und prüft auf einen passenden Cache-Eintrag. Existiert keiner, geht es Block für Block rückwärts und prüft, ob der Präfix-Hash an jeder früheren Position mit etwas übereinstimmt, das bereits im Cache ist. Es sucht nach früheren Writes, nicht nach stabilem Inhalt.

  3. Das Lookback-Fenster umfasst 20 Blöcke. Das System prüft höchstens 20 Positionen pro Breakpoint, wobei der Breakpoint selbst als erste zählt. Findet das System in diesem Fenster keinen passenden Eintrag, stoppt die Prüfung (oder wird beim nächsten expliziten Breakpoint fortgesetzt, falls vorhanden).

Beispiel: Lookback in einer wachsenden Konversation

Du hängst bei jedem Turn neue Blöcke an und setzt cache_control auf den letzten Block jeder Anfrage:

  • Turn 1: 10 Blöcke, Breakpoint auf Block 10. Es existieren keine früheren Cache-Einträge. Das System schreibt einen Eintrag bei Block 10.
  • Turn 2: 15 Blöcke, Breakpoint auf Block 15. Block 15 hat keinen Eintrag, also geht das System zurück zu Block 10 und findet den Eintrag von Turn 1. Cache-Hit bei Block 10; das System verarbeitet nur die Blöcke 11 bis 15 neu und schreibt einen neuen Eintrag bei Block 15.
  • Turn 3: 35 Blöcke, Breakpoint auf Block 35. Das System prüft 20 Positionen (Blöcke 35 bis 16) und findet nichts. Der Eintrag von Turn 2 bei Block 15 liegt eine Position außerhalb des Fensters, also gibt es keinen Cache-Hit. Das Hinzufügen eines zweiten Breakpoints bei Block 15 startet dort ein zweites Lookback-Fenster, das den Eintrag von Turn 2 findet.

Häufiger Fehler: Breakpoint auf Inhalt, der sich bei jeder Anfrage ändert

Dein Prompt hat einen großen statischen Systemkontext (Blöcke 1 bis 5), gefolgt von einem anfragespezifischen Block mit einem Zeitstempel und der Benutzernachricht (Block 6). Du setzt cache_control auf Block 6:

  • Anfrage 1: Cache-Write bei Block 6. Der Hash enthält den Zeitstempel.
  • Anfrage 2: Der Zeitstempel unterscheidet sich, also unterscheidet sich der Präfix-Hash bei Block 6. Der Lookback geht durch die Blöcke 5, 4, 3, 2 und 1, aber das System hat an keiner dieser Positionen jemals einen Eintrag geschrieben. Kein Cache-Hit. Du zahlst bei jeder Anfrage für einen neuen Cache-Write und bekommst nie einen Read.

Der Lookback findet keinen stabilen Inhalt hinter deinem Breakpoint und cacht ihn. Er findet Einträge, die frühere Anfragen bereits geschrieben haben, und Writes erfolgen nur an Breakpoints. Verschiebe cache_control auf Block 5, den letzten Block, der über Anfragen hinweg gleich bleibt, und jede nachfolgende Anfrage liest das gecachte Präfix. Automatisches Caching tappt in dieselbe Falle: Es platziert den Breakpoint auf dem letzten cachebaren Block, der in dieser Struktur derjenige ist, der sich bei jeder Anfrage ändert – verwende also stattdessen einen expliziten Breakpoint auf Block 5.

Wichtigste Erkenntnis: Platziere cache_control auf dem letzten Block, dessen Präfix über die Anfragen hinweg identisch ist, die sich einen Cache teilen sollen. In einer wachsenden Konversation funktioniert der letzte Block, solange jeder Turn weniger als 20 Blöcke hinzufügt: Früherer Inhalt ändert sich nie, sodass der Lookback der nächsten Anfrage den vorherigen Write findet. Bei einem Prompt mit einem variierenden Suffix (Zeitstempel, anfragespezifischer Kontext, die eingehende Nachricht) platziere den Breakpoint am Ende des statischen Präfixes, nicht auf dem variierenden Block.

Wann mehrere Breakpoints verwendet werden sollten

Du kannst bis zu 4 Cache-Breakpoints definieren, wenn du:

  • Verschiedene Abschnitte cachen möchtest, die sich unterschiedlich häufig ändern (zum Beispiel ändern sich Tools selten, aber der Kontext wird täglich aktualisiert)
  • Mehr Kontrolle darüber haben möchtest, was genau gecacht wird
  • Einen Cache-Hit sicherstellen möchtest, wenn eine wachsende Konversation deinen Breakpoint 20 oder mehr Blöcke über den letzten Cache-Write hinaus verschiebt


Wichtige Einschränkung: Der Lookback kann nur Einträge finden, die frühere Anfragen bereits geschrieben haben. Wenn eine wachsende Konversation deinen Breakpoint 20 oder mehr Blöcke über den letzten Write hinaus verschiebt, verfehlt ihn das Lookback-Fenster. Füge von Anfang an einen zweiten Breakpoint näher an dieser Position hinzu, damit sich dort ein Write ansammelt, bevor du ihn brauchst.

Kosten von Cache-Breakpoints verstehen

Cache-Breakpoints selbst verursachen keine Kosten. Dir wird nur Folgendes berechnet:

  • Cache-Writes: Wenn neuer Inhalt in den Cache geschrieben wird (25 % mehr als Basis-Input-Token für 5-Minuten-TTL)
  • Cache-Reads: Wenn gecachter Inhalt verwendet wird (10 % des Basispreises für Input-Token)
  • Reguläre Input-Token: Für jeglichen nicht gecachten Inhalt

Das Hinzufügen weiterer cache_control-Breakpoints erhöht deine Kosten nicht – du zahlst weiterhin denselben Betrag basierend darauf, welcher Inhalt tatsächlich gecacht und gelesen wird. Die Breakpoints geben dir lediglich Kontrolle darüber, welche Abschnitte unabhängig voneinander gecacht werden können.


Caching-Strategien und Überlegungen

Cache-Einschränkungen

Auf der Claude API, Claude Platform on AWS, Vertex AI und Microsoft Foundry (Beta) beträgt die minimale cachebare Prompt-Länge:

  • 512 Token für Claude Fable 5 und Claude Mythos 5
  • 2.048 Token für Claude Mythos Preview und Claude Opus 4.7
  • 4.096 Token für Claude Opus 4.6 und Claude Opus 4.5
  • 1.024 Token für Claude Opus 4.8, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Opus 4.1 (veraltet), Claude Opus 4 (veraltet) und Claude Sonnet 4 (veraltet)
  • 4.096 Token für Claude Haiku 4.5
  • 2.048 Token für Claude Haiku 3.5 (eingestellt, außer auf Vertex AI)

Die Modellverfügbarkeit variiert je nach Plattform, ebenso wie das Minimum für neu veröffentlichte Modelle: Auf Amazon Bedrock beträgt die minimale cachebare Prompt-Länge für Claude Fable 5 und Claude Mythos 5 1.024 Token.

Kürzere Prompts können nicht gecacht werden, selbst wenn sie mit cache_control markiert sind. Alle Anfragen, weniger als diese Anzahl von Token zu cachen, werden ohne Caching verarbeitet, und es wird kein Fehler zurückgegeben. Um zu überprüfen, ob ein Prompt gecacht wurde, prüfe die Usage-Felder in der Antwort: Wenn sowohl cache_creation_input_tokens als auch cache_read_input_tokens 0 sind, wurde der Prompt nicht gecacht (wahrscheinlich weil er die Mindestlängenanforderung nicht erfüllt hat).

Wenn dein Prompt knapp unter dem Minimum für dein Modell und deine Plattform liegt, lohnt es sich oft, den gecachten Inhalt zu erweitern, um den Schwellenwert zu erreichen. Cache-Reads kosten deutlich weniger als nicht gecachte Input-Token, sodass das Erreichen des Minimums die Kosten für häufig wiederverwendete Prompts senken kann.



Bedrock ist eine von AWS betriebene Plattform. Für Bedrock findest du in der Bedrock-Dokumentation zum Prompt-Caching die modellspezifischen Mindestwerte, das Fehlerverhalten und die Namen der Usage-Felder, die dort gelten.

Beachte bei gleichzeitigen Anfragen, dass ein Cache-Eintrag erst verfügbar wird, nachdem die erste Antwort begonnen hat. Wenn du Cache-Hits für parallele Anfragen benötigst, warte auf die erste Antwort, bevor du nachfolgende Anfragen sendest.

Derzeit ist „ephemeral" der einzige unterstützte Cache-Typ, der standardmäßig eine Lebensdauer von 5 Minuten hat.

Was gecacht werden kann

Die meisten Blöcke in der Anfrage können gecacht werden. Dazu gehören:

  • Tools: Tool-Definitionen im tools-Array
  • Systemnachrichten: Content-Blöcke im system-Array
  • Textnachrichten: Content-Blöcke im messages.content-Array, sowohl für User- als auch Assistant-Turns
  • Bilder & Dokumente: Content-Blöcke im messages.content-Array, in User-Turns
  • Tool-Nutzung und Tool-Ergebnisse: Content-Blöcke im messages.content-Array, sowohl in User- als auch Assistant-Turns

Jedes dieser Elemente kann gecacht werden, entweder automatisch oder durch Markierung mit cache_control.

Was nicht gecacht werden kann

Während die meisten Request-Blöcke gecacht werden können, gibt es einige Ausnahmen:

  • Thinking-Blöcke können nicht direkt mit cache_control gecacht werden. Thinking-Blöcke KÖNNEN jedoch zusammen mit anderem Inhalt gecacht werden, wenn sie in vorherigen Assistant-Turns erscheinen. Wenn sie auf diese Weise gecacht werden, ZÄHLEN sie als Input-Token, wenn sie aus dem Cache gelesen werden.

  • Sub-Content-Blöcke (wie Zitate) selbst können nicht direkt gecacht werden. Cache stattdessen den übergeordneten Block.

    Im Fall von Zitaten können die übergeordneten Dokument-Content-Blöcke, die als Quellmaterial für Zitate dienen, gecacht werden. Dies ermöglicht es dir, Prompt-Caching effektiv mit Zitaten zu verwenden, indem du die Dokumente cachst, auf die Zitate verweisen werden.

  • Leere Textblöcke können nicht gecacht werden.

Was den Cache invalidiert

Änderungen an gecachtem Inhalt können einen Teil oder den gesamten Cache invalidieren.

Wie in Strukturierung deines Prompts beschrieben, folgt der Cache der Hierarchie: tools → system → messages. Änderungen auf jeder Ebene invalidieren diese Ebene und alle nachfolgenden Ebenen.

Die folgende Tabelle zeigt, welche Teile des Caches durch verschiedene Arten von Änderungen invalidiert werden. ✘ zeigt an, dass der Cache invalidiert wird, während ✓ anzeigt, dass der Cache gültig bleibt.

Was sich ändertTools-CacheSystem-CacheMessages-CacheAuswirkung
Tool-Definitionen✘✘✘Das Ändern von Tool-Definitionen (Namen, Beschreibungen, Parameter) invalidiert den gesamten Cache
Websuche-Umschaltung✓✘✘Das Aktivieren/Deaktivieren der Websuche ändert den System-Prompt
Zitate-Umschaltung✓✘✘Das Aktivieren/Deaktivieren von Zitaten ändert den System-Prompt
Speed-Einstellung✓✘✘Das Wechseln zwischen speed: "fast" und Standardgeschwindigkeit invalidiert System- und Message-Caches
Tool-Auswahl✓✓✘Änderungen am tool_choice-Parameter betreffen nur Message-Blöcke
Bilder✓✓✘Das Hinzufügen/Entfernen von Bildern irgendwo im Prompt betrifft Message-Blöcke
Thinking-Parameter✓✓✘Änderungen an den Einstellungen für erweitertes Denken (aktivieren/deaktivieren, Budget) betreffen Message-Blöcke
Nicht-Tool-Ergebnisse, die an Anfragen mit erweitertem Denken übergeben werden✓✓ModellabhängigBei Opus 4.5+ und Sonnet 4.6+ werden Thinking-Blöcke standardmäßig beibehalten, sodass der Cache gültig bleibt (✓). Bei früheren Opus/Sonnet-Modellen und allen Haiku-Modellen werden alle zuvor gecachten Thinking-Blöcke aus dem Kontext entfernt, und alle Nachrichten, die auf diese Thinking-Blöcke folgen, werden aus dem Cache entfernt (✘). Weitere Details findest du unter Caching mit Thinking-Blöcken.


Bei Claude Opus 4.8 kannst du mitten in einer Konversation eine neue Systemanweisung hinzufügen, ohne die System- oder Message-Caches zu invalidieren. Hänge eine {"role": "system"}-Nachricht an messages an, anstatt das übergeordnete system-Feld zu bearbeiten, damit das gecachte Präfix unverändert bleibt. Siehe Systemnachrichten mitten in der Konversation.

Cache-Performance verfolgen

Überwache die Cache-Performance mithilfe dieser API-Antwortfelder innerhalb von usage in der Antwort (oder im message_start-Event bei Streaming):

  • cache_creation_input_tokens: Anzahl der Token, die beim Erstellen eines neuen Eintrags in den Cache geschrieben wurden.
  • cache_read_input_tokens: Anzahl der Token, die für diese Anfrage aus dem Cache abgerufen wurden.
  • input_tokens: Anzahl der Input-Token, die weder aus dem Cache gelesen noch zum Erstellen eines Caches verwendet wurden (das heißt, Token nach dem letzten Cache-Breakpoint).


Die Token-Aufschlüsselung verstehen

Das Feld input_tokens repräsentiert nur die Token, die nach dem letzten Cache-Breakpoint in deiner Anfrage kommen – nicht alle Input-Token, die du gesendet hast.

Um die gesamten Input-Token zu berechnen:

total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

Räumliche Erklärung:

  • cache_read_input_tokens = Token vor dem Breakpoint, die bereits gecacht sind (Reads)
  • cache_creation_input_tokens = Token vor dem Breakpoint, die jetzt gecacht werden (Writes)
  • input_tokens = Token nach deinem letzten Breakpoint (nicht für Cache geeignet)

Beispiel: Wenn du eine Anfrage mit 100.000 Token gecachtem Inhalt (aus Cache gelesen), 0 Token neuem Inhalt, der gecacht wird, und 50 Token in deiner Benutzernachricht (nach dem Cache-Breakpoint) hast:

  • cache_read_input_tokens: 100.000
  • cache_creation_input_tokens: 0
  • input_tokens: 50
  • Gesamte verarbeitete Input-Token: 100.050 Token

Dies ist wichtig für das Verständnis sowohl der Kosten als auch der Ratenlimits, da input_tokens typischerweise viel kleiner als dein gesamter Input sein wird, wenn du Caching effektiv nutzt.

Caching mit Thinking-Blöcken

Bei der Verwendung von erweitertem Denken mit Prompt-Caching haben Thinking-Blöcke ein besonderes Verhalten:

Automatisches Caching zusammen mit anderem Inhalt: Während Thinking-Blöcke nicht explizit mit cache_control markiert werden können, werden sie als Teil des Anfrageinhalts gecacht, wenn du nachfolgende API-Aufrufe mit Tool-Ergebnissen machst. Dies geschieht häufig bei der Tool-Nutzung, wenn du Thinking-Blöcke zurückgibst, um die Konversation fortzusetzen.

Input-Token-Zählung: Wenn Thinking-Blöcke aus dem Cache gelesen werden, zählen sie als Input-Token in deinen Nutzungsmetriken. Dies ist wichtig für die Kostenberechnung und Token-Budgetierung.

Cache-Invalidierungsmuster:

  • Der Cache bleibt gültig, wenn nur Tool-Ergebnisse als Benutzernachrichten bereitgestellt werden
  • Bei Opus 4.5+ und Sonnet 4.6+ werden Thinking-Blöcke standardmäßig beibehalten, auch wenn Nicht-Tool-Ergebnis-Benutzerinhalt hinzugefügt wird, sodass der Cache gültig bleibt
  • Bei früheren Opus/Sonnet-Modellen und allen Haiku-Modellen wird der Cache invalidiert, wenn Nicht-Tool-Ergebnis-Benutzerinhalt hinzugefügt wird, wodurch alle vorherigen Thinking-Blöcke aus dem Kontext entfernt werden
  • Dieses Caching-Verhalten tritt auch ohne explizite cache_control-Markierungen auf

Weitere Details zur Cache-Invalidierung findest du unter Was den Cache invalidiert.

Beispiel mit Tool-Nutzung:

Request 1: User: "What's the weather in Paris?"
Response: [thinking_block_1] + [tool_use block 1]

Request 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]
Response: [thinking_block_2] + [text block 2]
# Request 2 caches its request content (not the response)
# The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1

Request 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]
# On earlier Opus/Sonnet and all Haiku models, non-tool-result user block causes prior thinking blocks to be stripped; on Opus 4.5+/Sonnet 4.6+ they are kept

Bei früheren Opus/Sonnet-Modellen und allen Haiku-Modellen werden an diesem Punkt alle vorherigen Thinking-Blöcke aus dem Kontext entfernt. Bei Opus 4.5+ und Sonnet 4.6+ werden frühere Thinking-Blöcke standardmäßig beibehalten und bleiben Teil des gecachten Präfixes.

Ausführlichere Informationen findest du in der Dokumentation zum erweiterten Denken.

Cache-Speicherung und -Freigabe



Ab dem 5. Februar 2026 verwendet Prompt-Caching eine Isolation auf Workspace-Ebene anstelle einer Isolation auf Organisationsebene. Caches sind pro Workspace isoliert, was die Datentrennung zwischen Workspaces innerhalb derselben Organisation sicherstellt. Dies gilt für die Claude API, Claude Platform on AWS und Microsoft Foundry (Beta); Bedrock und Vertex AI behalten die Cache-Isolation auf Organisationsebene bei. Wenn du mehrere Workspaces verwendest, überprüfe deine Caching-Strategie, um diesen Unterschied zu berücksichtigen.

  • Organisations- und Workspace-Isolation: Caches sind zwischen Organisationen isoliert. Verschiedene Organisationen teilen niemals Caches, selbst wenn sie identische Prompts verwenden. Ab dem 5. Februar 2026 sind Caches auch pro Workspace innerhalb einer Organisation auf der Claude API, Claude Platform on AWS und Microsoft Foundry (Beta) isoliert; Bedrock und Vertex AI verwenden weiterhin nur die Isolation auf Organisationsebene.

  • Exakte Übereinstimmung: Cache-Hits erfordern 100 % identische Prompt-Segmente, einschließlich aller Texte und Bilder bis einschließlich des mit cache_control markierten Blocks.

  • Output-Token-Generierung: Prompt-Caching hat keinen Einfluss auf die Output-Token-Generierung. Die Antwort, die du erhältst, ist identisch mit dem, was du erhalten würdest, wenn Prompt-Caching nicht verwendet würde.

Best Practices für effektives Caching

Um die Prompt-Caching-Performance zu optimieren:

  • Beginne mit automatischem Caching für mehrstufige Konversationen. Es übernimmt die Breakpoint-Verwaltung automatisch.
  • Verwende explizite Block-Level-Breakpoints, wenn du verschiedene Abschnitte mit unterschiedlichen Änderungshäufigkeiten cachen musst.
  • Cache stabile, wiederverwendbare Inhalte wie Systemanweisungen, Hintergrundinformationen, große Kontexte oder häufige Tool-Definitionen.
  • Platziere gecachte Inhalte am Anfang des Prompts für beste Performance.
  • Verwende Cache-Breakpoints strategisch, um verschiedene cachebare Präfix-Abschnitte zu trennen.
  • Platziere den Breakpoint auf dem letzten Block, der über Anfragen hinweg identisch bleibt. Bei einem Prompt mit einem statischen Präfix und einem variierenden Suffix (Zeitstempel, anfragespezifischer Kontext, die eingehende Nachricht) ist das das Ende des Präfixes, nicht der variierende Block.
  • Analysiere regelmäßig die Cache-Hit-Raten und passe deine Strategie bei Bedarf an.

Optimierung für verschiedene Anwendungsfälle

Passe deine Prompt-Caching-Strategie an dein Szenario an:

  • Konversationsagenten: Reduziere Kosten und Latenz für längere Konversationen, insbesondere solche mit langen Anweisungen oder hochgeladenen Dokumenten.
  • Coding-Assistenten: Verbessere Autovervollständigung und Codebase-Q&A, indem du relevante Abschnitte oder eine zusammengefasste Version der Codebase im Prompt behältst.
  • Verarbeitung großer Dokumente: Integriere vollständiges Langform-Material einschließlich Bildern in deinen Prompt, ohne die Antwortlatenz zu erhöhen.
  • Detaillierte Anweisungssätze: Teile umfangreiche Listen von Anweisungen, Verfahren und Beispielen, um Claudes Antworten zu verfeinern. Entwickler fügen oft ein oder zwei Beispiele in den Prompt ein, aber mit Prompt-Caching kannst du noch bessere Performance erzielen, indem du 20+ vielfältige Beispiele hochwertiger Antworten einbindest.
  • Agentische Tool-Nutzung: Verbessere die Performance für Szenarien mit mehreren Tool-Aufrufen und iterativen Code-Änderungen, bei denen jeder Schritt typischerweise einen neuen API-Aufruf erfordert.
  • Mit Büchern, Papers, Dokumentation, Podcast-Transkripten und anderen Langform-Inhalten sprechen: Erwecke jede Wissensbasis zum Leben, indem du das/die gesamte(n) Dokument(e) in den Prompt einbettest und Benutzer Fragen dazu stellen lässt.

Fehlerbehebung bei häufigen Problemen

Bei unerwartetem Verhalten:



Cache-Diagnose (Beta) lässt die API aufeinanderfolgende Anfragen vergleichen und genau melden, wo das Prompt-Präfix abgewichen ist, was viele der Schritte in dieser Liste automatisch abdeckt.

  • Stelle sicher, dass gecachte Abschnitte über Aufrufe hinweg identisch sind. Bei expliziten Breakpoints überprüfe, dass cache_control-Markierungen an denselben Stellen sind
  • Prüfe, ob Aufrufe innerhalb der Cache-Lebensdauer erfolgen (standardmäßig 5 Minuten)
  • Überprüfe, ob tool_choice und Bildnutzung zwischen Aufrufen konsistent bleiben
  • Validiere, dass du mindestens die Mindestanzahl an Token für dein Modell und deine Plattform cachst (siehe Cache-Einschränkungen)
  • Bestätige, dass dein Breakpoint auf einem Block liegt, der über Anfragen hinweg identisch bleibt. Cache-Writes erfolgen nur am Breakpoint, und wenn sich dieser Block ändert (Zeitstempel, anfragespezifischer Kontext, die eingehende Nachricht), stimmt der Präfix-Hash nie überein. Der Lookback findet keinen stabilen Inhalt hinter dem Breakpoint; er findet nur Einträge, die frühere Anfragen an ihren eigenen Breakpoints geschrieben haben
  • Überprüfe, ob die Keys in deinen tool_use-Content-Blöcken eine stabile Reihenfolge haben, da einige Sprachen (zum Beispiel Swift, Go) die Key-Reihenfolge bei der JSON-Konvertierung randomisieren und so Caches brechen
  • Verwende Cache-Diagnose, um die API aufeinanderfolgende Anfragen vergleichen und melden zu lassen, welcher Teil des Prompts abgewichen ist


Änderungen an tool_choice oder das Vorhandensein/Fehlen von Bildern irgendwo im Prompt invalidieren den Cache, sodass ein neuer Cache-Eintrag erstellt werden muss. Weitere Details zur Cache-Invalidierung findest du unter Was den Cache invalidiert.


1-Stunden-Cache-Dauer

Falls dir 5 Minuten zu kurz sind, bietet Anthropic auch eine 1-Stunden-Cache-Dauer gegen zusätzliche Kosten an.



Die 1-Stunden-Cache-Dauer ist auf der Claude API, Claude Platform on AWS, Amazon Bedrock, Amazon Bedrock (Legacy), Vertex AI und Microsoft Foundry (Beta) verfügbar.

Um den erweiterten Cache zu verwenden, füge ttl in die cache_control-Definition wie folgt ein:

"cache_control": {
  "type": "ephemeral",
  "ttl": "1h"
}

Die Antwort enthält detaillierte Cache-Informationen wie die folgenden:

Output
{
  "usage": {
    "input_tokens": 2048,
    "cache_read_input_tokens": 1800,
    "cache_creation_input_tokens": 248,
    "output_tokens": 503,

    "cache_creation": {
      "ephemeral_5m_input_tokens": 148,
      "ephemeral_1h_input_tokens": 100
    }
  }
}

Beachte, dass das aktuelle Feld cache_creation_input_tokens der Summe der Werte im cache_creation-Objekt entspricht.

Wann der 1-Stunden-Cache verwendet werden sollte

Wenn du Prompts hast, die in regelmäßigen Abständen verwendet werden (das heißt, System-Prompts, die häufiger als alle 5 Minuten verwendet werden), verwende weiterhin den 5-Minuten-Cache, da dieser weiterhin ohne zusätzliche Kosten aktualisiert wird.

Der 1-Stunden-Cache eignet sich am besten für folgende Szenarien:

  • Wenn du Prompts hast, die wahrscheinlich seltener als alle 5 Minuten, aber häufiger als jede Stunde verwendet werden. Zum Beispiel, wenn ein agentischer Side-Agent länger als 5 Minuten braucht, oder wenn du eine lange Chat-Konversation mit einem Benutzer speicherst und generell erwartest, dass dieser Benutzer möglicherweise nicht in den nächsten 5 Minuten antwortet.
  • Wenn Latenz wichtig ist und deine Folge-Prompts möglicherweise nach mehr als 5 Minuten gesendet werden.
  • Wenn du deine Ratenlimit-Auslastung verbessern möchtest, da Cache-Hits nicht von deinem Ratenlimit abgezogen werden.


Der 5-Minuten- und der 1-Stunden-Cache verhalten sich in Bezug auf Latenz gleich. Du wirst generell eine verbesserte Time-to-First-Token für lange Dokumente sehen.

Mischen verschiedener TTLs

Du kannst sowohl 1-Stunden- als auch 5-Minuten-Cache-Controls in derselben Anfrage verwenden, jedoch mit einer wichtigen Einschränkung: Cache-Einträge mit längerer TTL müssen vor kürzeren TTLs erscheinen (das heißt, ein 1-Stunden-Cache-Eintrag muss vor allen 5-Minuten-Cache-Einträgen erscheinen).

Beim Mischen von TTLs bestimmt die API drei Abrechnungspositionen in deinem Prompt:

  1. Position A: Die Token-Anzahl beim höchsten Cache-Hit (oder 0, wenn keine Hits).
  2. Position B: Die Token-Anzahl beim höchsten 1-Stunden-cache_control-Block nach A (oder gleich A, wenn keiner existiert).
  3. Position C: Die Token-Anzahl beim letzten cache_control-Block.


Wenn B und/oder C größer als A sind, sind sie zwangsläufig Cache-Misses, da A der höchste Cache-Hit ist.

Dir wird Folgendes berechnet:

  1. Cache-Read-Token für A.
  2. 1-Stunden-Cache-Write-Token für (B - A).
  3. 5-Minuten-Cache-Write-Token für (C - B).

Hier sind 3 Beispiele. Dies zeigt die Input-Token von 3 Anfragen, von denen jede unterschiedliche Cache-Hits und Cache-Misses hat. Jede hat eine unterschiedlich berechnete Preisgestaltung, die in den farbigen Kästchen dargestellt ist. Diagramm zum Mischen von TTLs


Vorwärmen des Caches

Cache-Vorwärmen (Pre-Warming) ermöglicht es dir, deinen System-Prompt oder deine Tool-Definitionen in den Prompt-Cache zu laden, bevor ein Benutzer eine echte Anfrage auslöst. Dies eliminiert die Cache-Miss-Latenzstrafe bei der ersten Benutzerinteraktion und reduziert die Time-to-First-Token (TTFT) für latenzempfindliche Anwendungen.

So funktioniert es

Setze max_tokens: 0 in deiner Anfrage. Die API liest deinen Prompt in das Modell ein und schreibt den Cache an jedem cache_control-Breakpoint, kehrt dann sofort zurück, ohne Output zu generieren. Die Antwort hat ein leeres content-Array, stop_reason: "max_tokens" und einen vollständig ausgefüllten usage-Block.

Platziere den cache_control-Breakpoint auf dem letzten Block, der mit der Folgeanfrage geteilt wird (typischerweise dein System-Prompt oder deine Tool-Definitionen), nicht auf der Platzhalter-Benutzernachricht. Andernfalls ist der Cache-Eintrag an den Platzhalter gebunden und die Folgeanfrage trifft ihn nicht. Das bedeutet, einen expliziten Cache-Breakpoint anstelle von automatischem Caching zu verwenden, da automatisches Caching den Breakpoint auf dem letzten Block platziert, der hier der Platzhalter ist. Die Platzhalter-Benutzernachricht kann ein beliebiger String mit Nicht-Whitespace-Inhalt sein (die Beispiele hier verwenden "warmup"); ihr Inhalt wird in das Modell eingelesen, aber nie beantwortet.



Eine Pre-Warm-Anfrage verursacht eine Cache-Write-Gebühr, wenn das Präfix noch nicht gecacht ist, genau wie jede andere Anfrage. Prüfe usage.cache_creation_input_tokens in der Antwort, um zu bestätigen, dass ein Write erfolgt ist. Null Output-Token werden berechnet.

client = anthropic.Anthropic()

# Führe dies aus, bevor Nutzer eintreffen, um den gemeinsamen System-Prompt-Cache vorzuwärmen.
prewarm = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=0,
    system=[
        {
            "type": "text",
            "text": "You are an expert software engineer with deep knowledge of distributed systems...",
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[{"role": "user", "content": "warmup"}],
)
print(prewarm.stop_reason)  # "max_tokens"
print(prewarm.content)  # []
print(prewarm.usage)

Die API gibt ein leeres content-Array zurück:

Output
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [],
  "model": "claude-opus-4-8",
  "stop_reason": "max_tokens",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 8,
    "cache_creation_input_tokens": 5120,
    "cache_read_input_tokens": 0,
    "cache_creation": {
      "ephemeral_5m_input_tokens": 5120,
      "ephemeral_1h_input_tokens": 0
    },
    "iterations": [
      {
        "input_tokens": 8,
        "output_tokens": 0,
        "cache_read_input_tokens": 0,
        "cache_creation_input_tokens": 5120,
        "cache_creation": {
          "ephemeral_5m_input_tokens": 5120,
          "ephemeral_1h_input_tokens": 0
        },
        "type": "message"
      }
    ],
    "output_tokens": 0,
    "service_tier": "standard",
    "inference_geo": "global"
  }
}

Typisches Nutzungsmuster

Sende eine Pre-Warm-Anfrage, wenn deine Anwendung startet (oder in einem geplanten Intervall), und sende dann echte Benutzeranfragen, nachdem das Pre-Warming abgeschlossen ist:

Python
client = anthropic.Anthropic()

SYSTEM_PROMPT = [
    {
        "type": "text",
        "text": "You are an expert software engineer with deep knowledge of distributed systems...",
        "cache_control": {"type": "ephemeral"},
    }
]


def prewarm_cache() -> None:
    """Call this at application startup or on a scheduled interval."""
    client.messages.create(
        model="claude-opus-4-8",
        max_tokens=0,
        system=SYSTEM_PROMPT,
        messages=[{"role": "user", "content": "warmup"}],
    )


def respond(user_message: str) -> anthropic.types.Message:
    """The real user request; benefits from a warm cache."""
    return client.messages.create(
        model="claude-opus-4-8",
        max_tokens=1024,
        system=SYSTEM_PROMPT,
        messages=[{"role": "user", "content": user_message}],
    )


# Wärme den Cache auf, bevor Nutzer-Traffic eintrifft.
prewarm_cache()

# Später, wenn der Nutzer eine Nachricht sendet, ist das System-Prompt-Präfix bereits gecacht.
response = respond("How do I implement a binary search tree?")
print(response.content[0].text)

Beachte, dass die Cache-TTL weiterhin gilt. Für den standardmäßigen 5-Minuten-Cache sende mindestens alle 5 Minuten eine neue Pre-Warm-Anfrage, um den Cache warm zu halten. Für längere Lücken zwischen Benutzeranfragen verwende stattdessen die 1-Stunden-Cache-Dauer.

Einschränkungen

Eine max_tokens: 0-Anfrage wird mit einem invalid_request_error abgelehnt, wenn eine der folgenden Optionen gesetzt ist, da jede davon eine Ausgabe impliziert, die ein Null-Token-Budget nicht erzeugen kann:

  • stream: true
  • Erweitertes Denken (thinking.type: "enabled")
  • Strukturierte Ausgaben (output_config.format)
  • tool_choice mit {"type": "tool", ...} oder {"type": "any"}

max_tokens: 0 wird auch innerhalb einer Message Batches-Anfrage abgelehnt. Das Vorwärmen zielt auf die Zeit bis zum ersten Token ab, was für die Batch-Verarbeitung nicht relevant ist, und ein während der Batch-Verarbeitung geschriebener Cache-Eintrag würde wahrscheinlich ablaufen, bevor die Folgeanfrage ausgeführt wird.

Ersetzen des max_tokens=1-Workarounds

Bevor max_tokens: 0 verfügbar war, verwendeten einige Anwendungen max_tokens: 1-Aufwärmaufrufe, um denselben Effekt zu erzielen. Der max_tokens: 0-Ansatz wird bevorzugt: Es wird keine Ausgabe erzeugt, sodass es keine Ein-Token-Antwort zu verwerfen gibt, keine Ausgabe-Token berechnet werden und die Absicht der Anfrage eindeutig ist.


Beispiele für Prompt-Caching

Um dir den Einstieg in das Prompt-Caching zu erleichtern, bietet das Prompt-Caching-Cookbook detaillierte Beispiele und Best Practices.

Die folgenden Code-Snippets zeigen verschiedene Prompt-Caching-Muster. Diese Beispiele demonstrieren, wie du Caching in verschiedenen Szenarien implementierst, und helfen dir, die praktischen Anwendungen dieser Funktion zu verstehen:

Datenspeicherung

Prompt-Caching (sowohl automatisch als auch explizit) ist ZDR-fähig. Anthropic speichert weder den Rohtext deiner Prompts noch die Antworten von Claude.

KV-Cache-Repräsentationen (Key-Value) und kryptografische Hashes von gecachten Inhalten werden nur im Arbeitsspeicher gehalten und nicht dauerhaft gespeichert. Gecachte Einträge haben eine Mindestlebensdauer von 5 Minuten (Standard) oder 1 Stunde (erweitert), danach werden sie zeitnah, wenn auch nicht sofort, gelöscht. Cache-Einträge sind zwischen Organisationen isoliert und – bei der Claude API, Claude Platform on AWS und Microsoft Foundry (Beta) – auch zwischen Workspaces innerhalb einer Organisation.

Informationen zur ZDR-Fähigkeit aller Funktionen findest du unter API und Datenspeicherung.


FAQ

Was this page helpful?

  • So funktioniert Prompt-Caching
  • Preise
  • Unterstützte Modelle
  • Automatisches Caching
  • So funktioniert automatisches Caching in mehrstufigen Konversationen
  • TTL-Unterstützung
  • Kombination mit Block-Level-Caching
  • Was gleich bleibt
  • Sonderfälle
  • Explizite Cache-Breakpoints
  • Strukturierung deines Prompts
  • Kosten von Cache-Breakpoints verstehen
  • Caching-Strategien und Überlegungen
  • Cache-Einschränkungen
  • Was gecacht werden kann
  • Was nicht gecacht werden kann
  • Was den Cache invalidiert
  • Cache-Performance verfolgen
  • Caching mit Thinking-Blöcken
  • Cache-Speicherung und -Freigabe
  • Best Practices für effektives Caching
  • Optimierung für verschiedene Anwendungsfälle
  • Fehlerbehebung bei häufigen Problemen
  • 1-Stunden-Cache-Dauer
  • Wann der 1-Stunden-Cache verwendet werden sollte
  • Mischen verschiedener TTLs
  • Vorwärmen des Caches
  • So funktioniert es
  • Typisches Nutzungsmuster
  • Einschränkungen
  • Ersetzen des max_tokens=1-Workarounds
  • Beispiele für Prompt-Caching
  • Datenspeicherung
  • FAQ