Prompt-Caching
Lesen Sie ein unverändertes Präfix erneut zu einem Bruchteil des Eingabepreises — was Sie zwischenspeichern sollten, was nicht und wie Sie prüfen, ob es funktioniert hat.
Prompt-Caching speichert ein Präfix Ihrer Anfrage, sodass spätere Aufrufe mit demselben Präfix zu einem reduzierten Eingabetarif abgerechnet werden. Für alles mit einem umfangreichen, unveränderlichen Vorspann — einem System-Prompt, Werkzeugschemas oder einem Dokument, zu dem Fragen gestellt werden — ist dies die Änderung mit dem größten Nutzen.
Was sich gut für den Cache eignet
| Gut geeignet | Warum |
|---|---|
| Systemprompts | Bei jedem Aufruf innerhalb einer Sitzung bytegenau identisch |
| Werkzeug- / Funktionsdefinitionen | Über einen gesamten Agentendurchlauf hinweg unverändert und oft umfangreich |
| Ein Dokument, zu dem wiederholt Fragen gestellt werden | Ein Upload, viele Fragen |
| Few-Shot-Beispiele | Unveränderlich und häufig lang |
| Schlecht geeignet | Warum |
|---|---|
| Die neueste Nachricht des Nutzers | Jedes Mal anders — nie ein Cache-Treffer |
| Alles mit einem Zeitstempel oder einer Anfrage-ID nahe dem Anfang | Ein einziges verändertes Byte am Anfang des Präfixes macht alles danach ungültig |
| Kurze Prompts | Unterhalb der Mindestlänge für das Caching, daher gibt es nichts zu gewinnen |
Ein Präfix markieren
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [{
"type": "text",
"text": "<long stable instructions...>",
"cache_control": {"type": "ephemeral"}
}],
"messages": [{"role": "user", "content": "Question that changes every call"}]
}
Alles bis einschließlich des markierten Blocks wird zum zwischengespeicherten Präfix. Die Reihenfolge ist wichtig: Stellen Sie unveränderliche Inhalte an den Anfang und veränderliche Inhalte ans Ende.
Prüfen, ob es funktioniert
Prüfen Sie die usage Objekt. Bei einem Cache-Treffer werden Tokens unter cache-read statt als gewöhnliche Eingabe ausgewiesen. Wenn cache-read bei wiederholten Aufrufen bei null bleibt, ist Ihr Präfix nicht tatsächlich identisch — häufige Ursachen sind ein Zeitstempel, eine Sitzungs-ID oder eine nicht deterministische Reihenfolge der JSON-Schlüssel im Vorspann.
json.dumps(obj) ohne sort_keys=True kann die Reihenfolge der Schlüssel zwischen Durchläufen ändern, wodurch sich die Bytes ändern und Ihnen unbemerkt sämtliche Cache-Treffer verloren gehen.Wo es am wichtigsten ist
Agentische Tools senden bei jedem einzelnen Gesprächsschritt denselben System-Prompt und dieselben Tool-Schemas erneut. In einer Sitzung mit 50 Gesprächsschritten wird dieser Vorspann ohne Caching 50 Mal berechnet, mit Caching ungefähr einmal.