Prompt-Caching optimiert Ihre API-Nutzung, indem es das Fortsetzen von bestimmten Präfixen in Ihren Prompts ermöglicht. Dies reduziert die Verarbeitungszeit und Kosten für repetitive Aufgaben oder Prompts mit konsistenten Elementen erheblich.
This feature qualifies for Zero Data Retention (ZDR) with limited technical retention. See the Data retention section for details on what is retained and why.
Es gibt zwei Möglichkeiten, Prompt-Caching zu aktivieren:
cache_control-Feld auf der obersten Ebene Ihrer Anfrage hinzu. Das System wendet den Cache-Breakpoint automatisch auf den letzten cachefähigen Block an und verschiebt ihn vorwärts, wenn Gespräche wachsen. Am besten für mehrstufige Gespräche geeignet, bei denen der wachsende Nachrichtenverlauf automatisch gecacht werden soll.cache_control direkt auf einzelnen Inhaltsblöcken für eine feinkörnige Kontrolle darüber, was genau gecacht wird.Der einfachste Einstieg ist das automatische Caching:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"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."
}
]
}'Beim automatischen Caching speichert das System alle Inhalte bis einschließlich des letzten cachefähigen Blocks. Bei nachfolgenden Anfragen mit demselben Präfix wird der gecachte Inhalt automatisch wiederverwendet.
Wenn Sie eine Anfrage mit aktiviertem Prompt-Caching senden:
Dies ist besonders nützlich für:
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.
Wenn Sie feststellen, dass 5 Minuten zu kurz sind, bietet Anthropic auch eine Cache-Dauer von 1 Stunde gegen Aufpreis an.
Weitere Informationen finden Sie unter 1-Stunden-Cache-Dauer.
Prompt-Caching speichert das vollständige Präfix
Prompt-Caching referenziert den gesamten Prompt – tools, system und messages (in dieser Reihenfolge) bis einschließlich des mit cache_control gekennzeichneten Blocks.
Prompt-Caching führt eine neue Preisstruktur ein. Die folgende Tabelle zeigt den Preis pro Million Tokens für jedes unterstützte Modell:
| Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens |
|---|---|---|---|---|---|
| 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 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Opus 4 | $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 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
| Claude Sonnet 3.7 (deprecated) | $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 | $0.80 / MTok | $1 / MTok | $1.6 / MTok | $0.08 / MTok | $4 / MTok |
| Claude Opus 3 (deprecated) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
| Claude Haiku 3 | $0.25 / MTok | $0.30 / MTok | $0.50 / MTok | $0.03 / MTok | $1.25 / MTok |
Die obige Tabelle spiegelt die folgenden Preismultiplikatoren für Prompt-Caching wider:
Diese Multiplikatoren werden mit anderen Preismodifikatoren kombiniert, wie z. B. dem Batch-API-Rabatt, der Langkontext-Preisgestaltung und der Datenresidenz. Vollständige Details finden Sie unter Preisgestaltung.
Prompt-Caching (sowohl automatisch als auch explizit) wird derzeit unterstützt auf:
Automatisches Caching ist die einfachste Möglichkeit, Prompt-Caching zu aktivieren. Anstatt cache_control auf einzelne Inhaltsblöcke zu setzen, fügen Sie ein einzelnes cache_control-Feld auf der obersten Ebene Ihres Anfrage-Bodys hinzu. Das System wendet den Cache-Breakpoint automatisch auf den letzten cachefähigen Block an.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"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?"}
]
}'Beim automatischen Caching bewegt sich der Cache-Punkt automatisch vorwärts, wenn Gespräche wachsen. Jede neue Anfrage speichert alles bis zum letzten cachefähigen Block, und vorheriger Inhalt wird aus dem Cache gelesen.
| Anfrage | Inhalt | Cache-Verhalten |
|---|---|---|
| Anfrage 1 | System + Benutzer(1) + Asst(1) + Benutzer(2) ◀ Cache | Alles wird in den Cache geschrieben |
| Anfrage 2 | System + Benutzer(1) + Asst(1) + Benutzer(2) + Asst(2) + Benutzer(3) ◀ Cache | System bis Benutzer(2) aus Cache gelesen; Asst(2) + Benutzer(3) in Cache geschrieben |
| Anfrage 3 | System + Benutzer(1) + Asst(1) + Benutzer(2) + Asst(2) + Benutzer(3) + Asst(3) + Benutzer(4) ◀ Cache | System bis Benutzer(3) aus Cache gelesen; Asst(3) + Benutzer(4) in Cache geschrieben |
Der Cache-Breakpoint bewegt sich automatisch zum letzten cachefähigen Block in jeder Anfrage, sodass Sie keine cache_control-Markierungen aktualisieren müssen, wenn das Gespräch wächst.
Standardmäßig verwendet automatisches Caching eine 5-Minuten-TTL. Sie können eine 1-Stunden-TTL zum 2-fachen des Basis-Eingabe-Token-Preises angeben:
"cache_control": {"type": "ephemeral", "ttl": "1h"}Automatisches Caching ist kompatibel mit expliziten Cache-Breakpoints. Bei gemeinsamer Verwendung belegt der automatische Cache-Breakpoint einen der 4 verfügbaren Breakpoint-Slots.
Dies ermöglicht die Kombination beider Ansätze. Verwenden Sie beispielsweise explizite Breakpoints, um Ihren System-Prompt und Tools unabhängig zu cachen, während automatisches Caching das Gespräch verwaltet:
{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"cache_control": {"type": "ephemeral"},
"system": [
{
"type": "text",
"text": "You are a helpful assistant.",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [...]
}Automatisches Caching verwendet dieselbe zugrunde liegende Caching-Infrastruktur. Preisgestaltung, Mindest-Token-Schwellenwerte, Anforderungen an die Kontextreihenfolge und das 20-Block-Lookback-Fenster gelten genauso wie bei expliziten Breakpoints.
cache_control mit derselben TTL hat, ist automatisches Caching ein No-Op.cache_control mit einer anderen TTL hat, gibt die API einen 400-Fehler zurück.Automatisches Caching ist auf der Claude API und Azure AI Foundry (Vorschau) verfügbar. Die Unterstützung für Amazon Bedrock und Google Vertex AI folgt später.
Für mehr Kontrolle über das Caching können Sie cache_control direkt auf einzelne Inhaltsblöcke setzen. Dies ist nützlich, wenn Sie verschiedene Abschnitte cachen müssen, die sich mit unterschiedlichen Häufigkeiten ändern, oder wenn Sie eine feinkörnige Kontrolle darüber benötigen, was genau gecacht wird.
Platzieren Sie statischen Inhalt (Tool-Definitionen, Systemanweisungen, Kontext, Beispiele) am Anfang Ihres Prompts. Markieren Sie das Ende des wiederverwendbaren Inhalts für das Caching mit dem Parameter cache_control.
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.
Sie können nur einen Cache-Breakpoint am Ende Ihres statischen Inhalts verwenden, und das System findet automatisch die längste übereinstimmende Sequenz gecachter Blöcke. Das Verständnis dieser Funktionsweise hilft Ihnen, Ihre Caching-Strategie zu optimieren.
Drei Kernprinzipien:
Cache-Schlüssel sind kumulativ: Wenn Sie einen Block explizit mit cache_control cachen, wird der Cache-Hash-Schlüssel durch sequenzielles Hashing aller vorherigen Blöcke im Gespräch generiert. Das bedeutet, dass der Cache für jeden Block von allen vorherigen Inhalten abhängt.
Rückwärts-sequenzielle Prüfung: Das System prüft Cache-Treffer, indem es rückwärts von Ihrem expliziten Breakpoint arbeitet und jeden vorherigen Block in umgekehrter Reihenfolge prüft. Dies stellt sicher, dass Sie den längstmöglichen Cache-Treffer erhalten.
20-Block-Lookback-Fenster: Das System prüft nur bis zu 20 Blöcke vor jedem expliziten cache_control-Breakpoint. Nach der Prüfung von 20 Blöcken ohne Übereinstimmung stoppt es die Prüfung und geht zum nächsten expliziten Breakpoint (falls vorhanden) über.
Beispiel: Das Lookback-Fenster verstehen
Betrachten Sie ein Gespräch mit 30 Inhaltsblöcken, bei dem Sie cache_control nur auf Block 30 setzen:
Wenn Sie Block 31 ohne Änderungen an vorherigen Blöcken senden: Das System prüft Block 30 (Treffer!). Sie erhalten einen Cache-Treffer bei Block 30, und nur Block 31 muss verarbeitet werden.
Wenn Sie Block 25 ändern und Block 31 senden: Das System prüft rückwärts von Block 30 → 29 → 28... → 25 (kein Treffer) → 24 (Treffer!). Da Block 24 sich nicht geändert hat, erhalten Sie einen Cache-Treffer bei Block 24, und nur die Blöcke 25-30 müssen neu verarbeitet werden.
Wenn Sie Block 5 ändern und Block 31 senden: Das System prüft rückwärts von Block 30 → 29 → 28... → 11 (Prüfung Nr. 20). Nach 20 Prüfungen ohne Treffer stoppt es die Suche. Da Block 5 außerhalb des 20-Block-Fensters liegt, tritt kein Cache-Treffer auf und alle Blöcke müssen neu verarbeitet werden. Wenn Sie jedoch einen expliziten cache_control-Breakpoint auf Block 5 gesetzt hätten, würde das System von diesem Breakpoint aus weiterprüfen: Block 5 (kein Treffer) → Block 4 (Treffer!). Dies ermöglicht einen Cache-Treffer bei Block 4 und zeigt, warum Sie Breakpoints vor bearbeitbaren Inhalten setzen sollten.
Wichtige Erkenntnis: Setzen Sie immer einen expliziten Cache-Breakpoint am Ende Ihres Gesprächs, um Ihre Chancen auf Cache-Treffer zu maximieren. Setzen Sie außerdem Breakpoints direkt vor Inhaltsblöcken, die möglicherweise bearbeitbar sind, um sicherzustellen, dass diese Abschnitte unabhängig gecacht werden können.
Sie können bis zu 4 Cache-Breakpoints definieren, wenn Sie:
Wichtige Einschränkung: Wenn Ihr Prompt mehr als 20 Inhaltsblöcke vor Ihrem Cache-Breakpoint hat und Sie Inhalte ändern, die früher als diese 20 Blöcke liegen, erhalten Sie keinen Cache-Treffer, es sei denn, Sie fügen zusätzliche explizite Breakpoints näher an diesem Inhalt hinzu.
Cache-Breakpoints selbst verursachen keine zusätzlichen Kosten. Sie zahlen nur für:
Das Hinzufügen weiterer cache_control-Breakpoints erhöht Ihre Kosten nicht – Sie zahlen weiterhin denselben Betrag basierend darauf, welcher Inhalt tatsächlich gecacht und gelesen wird. Die Breakpoints geben Ihnen lediglich die Kontrolle darüber, welche Abschnitte unabhängig gecacht werden können.
Die minimale cachefähige Prompt-Länge beträgt:
Kürzere Prompts können nicht gecacht werden, auch wenn sie mit cache_control markiert sind. Alle Anfragen zum Cachen von weniger als dieser Anzahl von Tokens werden ohne Caching verarbeitet. Um zu sehen, ob ein Prompt gecacht wurde, lesen Sie die Antwort-Nutzungs-Felder.
Beachten Sie bei gleichzeitigen Anfragen, dass ein Cache-Eintrag erst nach Beginn der ersten Antwort verfügbar wird. Wenn Sie Cache-Treffer für parallele Anfragen benötigen, warten Sie auf die erste Antwort, bevor Sie nachfolgende Anfragen senden.
Derzeit ist "ephemeral" der einzige unterstützte Cache-Typ, der standardmäßig eine Lebensdauer von 5 Minuten hat.
Die meisten Blöcke in der Anfrage können gecacht werden. Dazu gehören:
tools-Arraysystem-Arraymessages.content-Array, sowohl für Benutzer- als auch für Assistenten-Turnsmessages.content-Array, in Benutzer-Turnsmessages.content-Array, in beiden Benutzer- und Assistenten-TurnsJedes dieser Elemente kann gecacht werden, entweder automatisch oder durch Markierung mit cache_control.
Während die meisten Anfrage-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 anderen Inhalten gecacht werden, wenn sie in vorherigen Assistenten-Turns erscheinen. Wenn sie auf diese Weise gecacht werden, zählen sie als Eingabe-Tokens, wenn sie aus dem Cache gelesen werden.
Sub-Inhaltsblöcke (wie Zitate) können nicht direkt gecacht werden. Cachen Sie stattdessen den übergeordneten Block.
Im Fall von Zitaten können die übergeordneten Dokument-Inhaltsblöcke, die als Quellmaterial für Zitate dienen, gecacht werden. Dies ermöglicht die effektive Verwendung von Prompt-Caching mit Zitaten durch das Cachen der Dokumente, auf die Zitate verweisen werden.
Leere Text-Blöcke können nicht gecacht werden.
Änderungen an gecachtem Inhalt können einen Teil oder den gesamten Cache ungültig machen.
Wie in Strukturierung Ihres Prompts beschrieben, folgt der Cache der Hierarchie: tools → system → messages. Änderungen auf jeder Ebene machen diese Ebene und alle nachfolgenden Ebenen ungültig.
Die folgende Tabelle zeigt, welche Teile des Caches durch verschiedene Arten von Änderungen ungültig gemacht werden. ✘ zeigt an, dass der Cache ungültig gemacht wird, während ✓ anzeigt, dass der Cache gültig bleibt.
| Was sich ändert | Tools-Cache | System-Cache | Nachrichten-Cache | Auswirkung |
|---|---|---|---|---|
| Tool-Definitionen | ✘ | ✘ | ✘ | Das Ändern von Tool-Definitionen (Namen, Beschreibungen, Parameter) macht den gesamten Cache ungültig |
| Web-Suche umschalten | ✓ | ✘ | ✘ | Das Aktivieren/Deaktivieren der Web-Suche ändert den System-Prompt |
| Zitate umschalten | ✓ | ✘ | ✘ | Das Aktivieren/Deaktivieren von Zitaten ändert den System-Prompt |
| Geschwindigkeitseinstellung | ✓ | ✘ | ✘ | Das Wechseln zwischen speed: "fast" und Standardgeschwindigkeit macht System- und Nachrichten-Caches ungültig |
| Tool-Auswahl | ✓ | ✓ | ✘ | Änderungen am tool_choice-Parameter betreffen nur Nachrichten-Blöcke |
| Bilder | ✓ | ✓ | ✘ | Das Hinzufügen/Entfernen von Bildern an beliebiger Stelle im Prompt betrifft Nachrichten-Blöcke |
| Thinking-Parameter | ✓ | ✓ | ✘ | Änderungen an den erweiterten Thinking-Einstellungen (aktivieren/deaktivieren, Budget) betreffen Nachrichten-Blöcke |
| Nicht-Tool-Ergebnisse, die an erweiterte Thinking-Anfragen übergeben werden | ✓ | ✓ | ✘ | Wenn Nicht-Tool-Ergebnisse in Anfragen übergeben werden, während erweitertes Thinking aktiviert ist, werden alle zuvor gecachten Thinking-Blöcke aus dem Kontext entfernt, und alle Nachrichten im Kontext, die diesen Thinking-Blöcken folgen, werden aus dem Cache entfernt. Weitere Details finden Sie unter Caching mit Thinking-Blöcken. |
Überwachen Sie die Cache-Performance mit diesen API-Antwortfeldern innerhalb von usage in der Antwort (oder message_start-Ereignis beim Streaming):
cache_creation_input_tokens: Anzahl der Tokens, die beim Erstellen eines neuen Eintrags in den Cache geschrieben wurden.cache_read_input_tokens: Anzahl der Tokens, die für diese Anfrage aus dem Cache abgerufen wurden.input_tokens: Anzahl der Eingabe-Tokens, die weder aus einem Cache gelesen noch zum Erstellen eines Caches verwendet wurden (d. h. Tokens nach dem letzten Cache-Breakpoint).Die Token-Aufschlüsselung verstehen
Das Feld input_tokens repräsentiert nur die Tokens, die nach dem letzten Cache-Breakpoint in Ihrer Anfrage kommen – nicht alle gesendeten Eingabe-Tokens.
So berechnen Sie die gesamten Eingabe-Tokens:
total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokensRäumliche Erklärung:
cache_read_input_tokens = Tokens vor dem Breakpoint, die bereits gecacht sind (Lesevorgänge)cache_creation_input_tokens = Tokens vor dem Breakpoint, die jetzt gecacht werden (Schreibvorgänge)input_tokens = Tokens nach Ihrem letzten Breakpoint (nicht für Cache geeignet)Beispiel: Wenn Sie eine Anfrage mit 100.000 Tokens gecachtem Inhalt (aus Cache gelesen), 0 Tokens neuem Inhalt, der gecacht wird, und 50 Tokens in Ihrer Benutzernachricht (nach dem Cache-Breakpoint) haben:
cache_read_input_tokens: 100.000cache_creation_input_tokens: 0input_tokens: 50Dies ist wichtig für das Verständnis sowohl der Kosten als auch der Rate-Limits, da input_tokens bei effektiver Verwendung von Caching typischerweise viel kleiner als Ihre gesamten Eingaben sein wird.
Bei der Verwendung von erweitertem Thinking mit Prompt-Caching haben Thinking-Blöcke ein besonderes Verhalten:
Automatisches Caching zusammen mit anderen Inhalten: Während Thinking-Blöcke nicht explizit mit cache_control markiert werden können, werden sie als Teil des Anfrageinhalts gecacht, wenn Sie nachfolgende API-Aufrufe mit Tool-Ergebnissen machen. Dies geschieht häufig bei der Tool-Verwendung, wenn Sie Thinking-Blöcke zurückgeben, um das Gespräch fortzusetzen.
Eingabe-Token-Zählung: Wenn Thinking-Blöcke aus dem Cache gelesen werden, zählen sie als Eingabe-Tokens in Ihren Nutzungsmetriken. Dies ist wichtig für die Kostenberechnung und das Token-Budgeting.
Cache-Ungültigkeitsmuster:
cache_control-Markierungen aufWeitere Details zur Cache-Ungültigmachung finden Sie unter Was den Cache ungültig macht.
Beispiel mit Tool-Verwendung:
Anfrage 1: Benutzer: "Wie ist das Wetter in Paris?"
Antwort: [thinking_block_1] + [tool_use block 1]
Anfrage 2:
Benutzer: ["Wie ist das Wetter in Paris?"],
Assistent: [thinking_block_1] + [tool_use block 1],
Benutzer: [tool_result_1, cache=True]
Antwort: [thinking_block_2] + [text block 2]
# Anfrage 2 cached ihren Anfrageinhalt (nicht die Antwort)
# Der Cache enthält: Benutzernachricht, thinking_block_1, tool_use block 1 und tool_result_1
Anfrage 3:
Benutzer: ["Wie ist das Wetter in Paris?"],
Assistent: [thinking_block_1] + [tool_use block 1],
Benutzer: [tool_result_1, cache=True],
Assistent: [thinking_block_2] + [text block 2],
Benutzer: [Text-Antwort, cache=True]
# Nicht-Tool-Ergebnis-Benutzerblock bewirkt, dass alle Thinking-Blöcke ignoriert werden
# Diese Anfrage wird verarbeitet, als ob Thinking-Blöcke nie vorhanden gewesen wärenWenn ein Nicht-Tool-Ergebnis-Benutzerblock enthalten ist, wird eine neue Assistenten-Schleife eingeleitet und alle vorherigen Thinking-Blöcke werden aus dem Kontext entfernt.
Weitere detaillierte Informationen finden Sie in der Dokumentation zu erweitertem Thinking.
Ab dem 5. Februar 2026 wird Prompt-Caching Workspace-Level-Isolation anstelle von Organisations-Level-Isolation verwenden. Caches werden pro Workspace isoliert, um die Datentrennung zwischen Workspaces innerhalb derselben Organisation sicherzustellen. Diese Änderung gilt für die Claude API und Azure AI Foundry (Vorschau); Amazon Bedrock und Google Vertex AI behalten die Organisations-Level-Cache-Isolation bei. Wenn Sie mehrere Workspaces verwenden, überprüfen Sie Ihre Caching-Strategie, um diese Änderung zu berücksichtigen.
Organisations-Isolation: Caches sind zwischen Organisationen isoliert. Verschiedene Organisationen teilen niemals Caches, auch wenn sie identische Prompts verwenden.
Exakte Übereinstimmung: Cache-Treffer erfordern 100% identische Prompt-Segmente, einschließlich aller Texte und Bilder bis einschließlich des mit Cache-Control markierten Blocks.
Ausgabe-Token-Generierung: Prompt-Caching hat keinen Einfluss auf die Ausgabe-Token-Generierung. Die Antwort, die Sie erhalten, ist identisch mit dem, was Sie ohne Prompt-Caching erhalten würden.
Um die Prompt-Caching-Performance zu optimieren:
Passen Sie Ihre Prompt-Caching-Strategie an Ihr Szenario an:
Bei unerwartetem Verhalten:
cache_control-Markierungen an denselben Stellen sindtool_choice und Bildverwendung zwischen Aufrufen konsistent bleibencache_control-Parameter früher im Prompt, um sicherzustellen, dass alle Inhalte gecacht werden könnentool_use-Inhaltsblöcken eine stabile Reihenfolge haben, da einige Sprachen (z. B. Swift, Go) die Schlüsselreihenfolge bei der JSON-Konvertierung zufällig anordnen und damit Caches ungültig machenÄnderungen an tool_choice oder das Vorhandensein/Fehlen von Bildern an beliebiger Stelle im Prompt machen den Cache ungültig und erfordern die Erstellung eines neuen Cache-Eintrags. Weitere Details zur Cache-Ungültigmachung finden Sie unter Was den Cache ungültig macht.
Wenn Sie feststellen, dass 5 Minuten zu kurz sind, bietet Anthropic auch eine Cache-Dauer von 1 Stunde gegen Aufpreis an.
Um den erweiterten Cache zu verwenden, fügen Sie ttl in die cache_control-Definition wie folgt ein:
"cache_control": {
"type": "ephemeral",
"ttl": "1h"
}Die Antwort enthält detaillierte Cache-Informationen wie folgt:
{
"usage": {
"input_tokens": 2048,
"cache_read_input_tokens": 1800,
"cache_creation_input_tokens": 248,
"output_tokens": 503,
"cache_creation": {
"ephemeral_5m_input_tokens": 456,
"ephemeral_1h_input_tokens": 100
}
}
}Beachten Sie, dass das aktuelle Feld cache_creation_input_tokens der Summe der Werte im cache_creation-Objekt entspricht.
Wenn Sie Prompts haben, die in einem regelmäßigen Rhythmus verwendet werden (d. h. System-Prompts, die häufiger als alle 5 Minuten verwendet werden), verwenden Sie weiterhin den 5-Minuten-Cache, da dieser ohne zusätzliche Kosten weiterhin aktualisiert wird.
Der 1-Stunden-Cache wird am besten in folgenden Szenarien verwendet:
Der 5-Minuten- und der 1-Stunden-Cache verhalten sich hinsichtlich der Latenz gleich. Sie werden im Allgemeinen eine verbesserte Time-to-First-Token für lange Dokumente sehen.
Sie können sowohl 1-Stunden- als auch 5-Minuten-Cache-Controls in derselben Anfrage verwenden, aber mit einer wichtigen Einschränkung: Cache-Einträge mit längerer TTL müssen vor kürzeren TTLs erscheinen (d. h. ein 1-Stunden-Cache-Eintrag muss vor allen 5-Minuten-Cache-Einträgen erscheinen).
Beim Mischen von TTLs bestimmen wir drei Abrechnungspositionen in Ihrem Prompt:
A: Die Token-Anzahl beim höchsten Cache-Treffer (oder 0, wenn keine Treffer).B: Die Token-Anzahl beim höchsten 1-Stunden-cache_control-Block nach A (oder gleich A, wenn keiner vorhanden).C: Die Token-Anzahl beim letzten cache_control-Block.Wenn B und/oder C größer als A sind, sind sie notwendigerweise Cache-Fehlschläge, da A der höchste Cache-Treffer ist.
Sie werden berechnet für:
A.(B - A).(C - B).Hier sind 3 Beispiele. Dies zeigt die Eingabe-Tokens von 3 Anfragen, von denen jede unterschiedliche Cache-Treffer und Cache-Fehlschläge hat. Jede hat eine unterschiedlich berechnete Preisgestaltung, die in den farbigen Feldern als Ergebnis dargestellt wird.
Um Ihnen den Einstieg in das Prompt-Caching zu erleichtern, haben wir ein Prompt-Caching-Cookbook mit detaillierten Beispielen und Best Practices vorbereitet.
Im Folgenden haben wir mehrere Code-Snippets eingefügt, die verschiedene Prompt-Caching-Muster zeigen. Diese Beispiele demonstrieren, wie Caching in verschiedenen Szenarien implementiert werden kann, und helfen Ihnen, die praktischen Anwendungen dieser Funktion zu verstehen:
Prompt-Caching speichert KV (Key-Value)-Cache-Darstellungen und kryptografische Hashes von gecachten Inhalten, speichert jedoch nicht den Rohtext von Prompts oder Antworten. Gecachte Einträge haben eine Mindestlebensdauer von 5 Minuten (Standard) oder 60 Minuten (erweitert). Cache-Einträge sind zwischen Organisationen isoliert. Da Anthropic keinen Rohtext von Prompts oder Antworten speichert, kann diese Funktion für Kunden geeignet sein, die ZDR-ähnliche Datenspeicherungsverpflichtungen benötigen.
Informationen zur ZDR-Berechtigung für alle Funktionen finden Sie unter API und Datenspeicherung.
Was this page helpful?