Prompt Caching

Intermediate

KV-Caches über API-Anfragen hinweg wiederverwenden, um Kosten und Latenz bei wiederholten Prompt-Präfixen drastisch zu reduzieren.

Zuletzt aktualisiert: 19. Feb. 2026

Was ist Prompt Caching?

Wenn du eine Anfrage an eine LLM-API sendest, muss das Modell jeden Input-Token durch seine Transformer-Schichten verarbeiten und Key-Value-Paare (KV) für den Attention-Mechanismus berechnen. Prompt Caching speichert diese berechneten KV-Paare serverseitig, sodass nachfolgende Anfragen mit demselben Prompt-Präfix diese aufwändige Berechnung komplett überspringen können. Statt Tausende von Tokens erneut zu verarbeiten, lädt das Modell den gecachten KV-Zustand und verarbeitet nur die neuen, einzigartigen Tokens.

Verbindung zum KV-Cache

Prompt Caching ist die API-Ebenen-Anwendung des KV-Cache-Konzepts aus dem vorherigen Artikel. Während KV-Cache innerhalb einer einzelnen Generierung arbeitet (Tokens werden während der Erzeugung gecacht), persistiert Prompt Caching den KV-Cache über separate API-Anfragen mit demselben Präfix.

Cache Hit vs. Cache Miss

Wenn eine Anfrage eintrifft, hasht der Anbieter das Prompt-Präfix und prüft, ob ein passender KV-Cache existiert. Der Unterschied in der Verarbeitung ist dramatisch:

Prompt-Struktur
Gecachtes Präfix
System: Du bist ein Experte für Rechtsberatung. Analysiere den Vertrag...
+
Neue Tokens
Nutzer: Fasse die wichtigsten Pflichten zusammen.

Cache Miss (Erste Anfrage)

 
Tokens
0
Zeit
0ms
Kosten
$0.0000

Cache Hit (Folgeanfrage)

 
Tokens
0
Zeit
0ms
Kosten
$0.0000
Präfix-Matching Explorer

Bearbeite den Prompt unten und beobachte, wie Änderungen das Caching beeinflussen. Cache-Matching funktioniert Zeichen für Zeichen von Anfang an — jede Änderung invalidiert alles danach.

Original-Prompt (gecacht)
You are a helpful AI assistant specializing in code review. Always provide constructive feedback. Focus on security, performance, and readability. Use markdown formatting in your responses. --- Review the following Python function: def calculate_total(items): total = 0 for item in items: total += item.price * item.quantity return total
Dein bearbeiteter Prompt
Cache-Grenze Vorschau
You are a helpful AI assistant specializing in code review. Always provide constructive feedback. Focus on security, performance, and readability. Use markdown formatting in your responses. --- Review the following Python function: def calculate_total(items): total = 0 for item in items: total += item.price * item.quantity return total
Gecachte Tokens
90
Neue Tokens
0
Ersparnis
100%
Gecachte TokensNeue Tokens

Wie Anbieter es implementieren

Jeder große LLM-Anbieter hat seinen eigenen Ansatz für Prompt Caching, mit unterschiedlichen Kompromissen bei Kontrolle, Preisgestaltung und minimaler Token-Anzahl.

🟣

Anthropic (Claude)

Explizites Opt-in über den cache_control-Parameter. Markiere bestimmte Inhaltsblöcke als cachebar. 90% Kostenreduktion bei gecachten Tokens, ~3× Latenzverbesserung. Minimum 1.024 Tokens zum Cachen. Cache-TTL ist 5 Minuten (wird bei Hit erneuert).

🟢

OpenAI (GPT-4o)

Automatisch — keine Codeänderungen nötig. Die API cached automatisch passende Präfixe ab 1.024+ Tokens. 50% Rabatt auf gecachte Input-Tokens. Caching passiert transparent im Hintergrund.

🔵

Google (Gemini)

Explizit über die Context Caching API. Erstelle benannte Cache-Objekte mit konfigurierbarer TTL. 75% Rabatt auf gecachte Tokens. Am besten für sehr große Kontexte (32k+ Tokens), die über viele Anfragen wiederverwendet werden.

Wann Prompt Caching nutzen

Ideal für

  • Lange System-Prompts, die über Konversationen wiederverwendet werden (z.B. AI-Assistenten mit detaillierten Anweisungen)
  • Few-Shot-Beispiele, die konstant bleiben, während sich Benutzeranfragen ändern
  • Große Dokumente (Verträge, Codebasen), die mit verschiedenen Fragen analysiert werden
  • Agentische Workflows, bei denen dieselben Tool-Definitionen und Kontext wiederholt gesendet werden

Nicht ideal für

  • Einzigartige, einmalige Prompts, die nie wiederholt werden
  • Sehr kurze Prompts (unter 1.024 Tokens) — unter der Caching-Schwelle
  • Prompts, bei denen sich das Präfix häufig zwischen Anfragen ändert

Kosten & Performance

Die Einsparungen durch Prompt Caching sind erheblich, besonders für Anwendungen mit langen, wiederholten Prompt-Präfixen. Hier sind die Zahlen der großen Anbieter:

90%

Kostenreduktion bei gecachten Tokens (Anthropic)

~3×

schnellere Time-to-First-Token (Anthropic)

5 min

Standard-Cache-Lebensdauer (wird bei jedem Hit erneuert)

Anbieter wählen
10,000
100100K
80%
0%100%
100
110K
Kosten pro Anfrage
Ohne Caching$0.0300
Mit Caching$0.008400
72%pro Tag gespart
Tägliche Ersparnis
$2.16
pro Tag gespart
Monatliche Ersparnis
$64.80
pro Monat gespart (30 Tage)

Preisvergleich (Input-Tokens)

AnbieterBasispreisGecachter PreisErsparnis
Anthropic (Claude)$3.00 / MTok$0.30 / MTok90%
OpenAI (GPT-4o)$2.50 / MTok$1.25 / MTok50%
Google (Gemini)$1.25 / MTok$0.3125 / MTok75%

Preise für Flaggschiff-Modelle, Stand Anfang 2025. Cache-Write-Tokens können 25% mehr als der Basispreis kosten (Anthropic). Immer aktuelle Preisdokumentation prüfen.

Standard-Cache-Lebensdauer (wird bei jedem Hit erneuert)

Cache-Lebenszyklus

Beobachte, wie die 5-Minuten-TTL bei jedem Cache-Hit erneuert wird. Eine Pause bei Anfragen lässt den Cache ablaufen — die nächste Anfrage erstellt einen neuen Cache.

Zeit (Min.):0.0/ 15
Cache aktiv
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Cache-Lebenszyklus
t=0mCache erstellt
Cache erstelltCache Hit (TTL erneuert)Cache abgelaufen (Miss)Cache aktiv

Code-Beispiel: Anthropic API

Anthropics Implementierung gibt dir explizite Kontrolle darüber, was gecacht wird. Füge cache_control zu jedem Inhaltsblock in deinem System-Prompt oder Nachrichten hinzu:

anthropic_prompt_caching.py
import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "You are an expert legal assistant. Here is the "
                    "complete contract document you must analyze...\n\n"
                    "[... 15,000 tokens of contract text ...]",
            "cache_control": {"type": "ephemeral"}  # ← Cache this!
        }
    ],
    messages=[
        {"role": "user", "content": "Summarize the key obligations."}
    ]
)

# Check cache performance in the response
usage = response.usage
print(f"Input tokens:        {usage.input_tokens}")
print(f"Cache creation:      {usage.cache_creation_input_tokens}")
print(f"Cache read (hits):   {usage.cache_read_input_tokens}")
# First request:  cache_creation = 15000, cache_read = 0
# Second request: cache_creation = 0,     cache_read = 15000  ← 90% cheaper!

Implementierungstipps

📌

Statischen Inhalt zuerst

Cache-Matching funktioniert auf Präfixen. Platziere deinen System-Prompt und Few-Shot-Beispiele vor dynamischem Inhalt, damit das Präfix über Anfragen hinweg stabil bleibt.

🔢

Minimale Token-Anzahl beachten

Anthropic erfordert mindestens 1.024 Tokens in einem cachebaren Block (2.048 für Claude Haiku). Inhalte unter dieser Schwelle werden nicht gecacht.

⏱️

TTL verstehen

Anthropics Cache lebt 5 Minuten, wird bei jedem Hit erneuert. Bei seltenen Anfragen kann der Cache zwischen Aufrufen ablaufen. OpenAIs automatisches Caching hat eine ähnliche zeitbasierte Verfallszeit.

📏

Cache-Hit-Raten überwachen

Prüfe die Usage-Felder in API-Antworten (cache_creation_input_tokens vs cache_read_input_tokens), um zu verifizieren, dass Caching funktioniert. Niedrige Hit-Raten bedeuten, dass sich dein Präfix zu oft ändert.

Wichtige Erkenntnisse

Prompt Caching verwendet berechnete KV-Paare über API-Anfragen hinweg wieder und überspringt redundante Berechnungen für wiederholte Prompt-Präfixe.

Anthropic bietet die besten Einsparungen (90% Kosten, ~3× Geschwindigkeit) mit explizitem cache_control. OpenAI macht es automatisch mit 50% Ersparnis.

Am besten für lange System-Prompts, Few-Shot-Beispiele und große Dokumente, die mehrfach abgefragt werden.

Strukturiere Prompts mit statischem Inhalt zuerst (Präfix) und dynamischem Inhalt zuletzt, um Cache-Hit-Raten zu maximieren.