Wird geladen

Prompt-Caching ist eine leistungsstarke Optimierungsfunktion, die deine API-Anfragen sowohl schneller als auch günstiger macht, wenn du wiederholt denselben Inhalt an Claude sendest. Lass uns erkunden, wie du es effektiv in deinen Anwendungen implementieren kannst.

Wie Prompt-Caching funktioniert

Wenn du Prompt-Caching aktivierst, schreibt die erste Anfrage Inhalte in einen Cache mit einer standardmäßigen Lebensdauer von 5 Minuten, und jedes Mal, wenn der zwischengespeicherte Inhalt verwendet wird, wird dieses Zeitfenster ohne zusätzliche Kosten aktualisiert. Wenn du ein längeres Zeitfenster benötigst, kannst du dich für eine Cache-Dauer von 1 Stunde gegen einen Aufpreis entscheiden. Nachfolgende Anfragen lesen aus diesem Cache, anstatt denselben Inhalt erneut zu verarbeiten. Dies ist besonders wertvoll, wenn du Folgendes sendest:

  • Große System-Prompts (wie ein 6K-Token-Coding-Assistent-Prompt)
  • Komplexe Tool-Schemas (etwa 1,7K Token für mehrere Tools)
  • Wiederholte Nachrichteninhalte

Die zentrale Erkenntnis ist, dass Caching nur hilft, wenn du wiederholt identische Inhalte sendest – aber in vielen Anwendungen kommt das extrem häufig vor.

Einrichten des Tool-Schema-Cachings

Um deine Tool-Schemas zu cachen, musst du ein Cache-Control-Feld zum letzten Tool in deiner Liste hinzufügen. Hier ist die richtige Vorgehensweise, ohne deine ursprünglichen Tool-Definitionen zu verändern:

python
if tools:
    tools_clone = tools.copy()
    last_tool = tools_clone[-1].copy()
    last_tool["cache_control"] = {"type": "ephemeral"}
    tools_clone[-1] = last_tool
    params["tools"] = tools_clone

Dieser Ansatz erstellt Kopien sowohl der Tools-Liste als auch des letzten Tool-Schemas, bevor das Cache-Control-Feld hinzugefügt wird. Während du tools[-1]["cache_control"] direkt ändern könntest, verhindert der Kopieransatz Probleme, falls du deine Tools später neu anordnest.

System-Prompt-Caching

Für System-Prompts musst du sie als Textblock mit Cache-Control strukturieren:

python
if system:
    params["system"] = [
        {
            "type": "text",
            "text": system,
            "cache_control": {"type": "ephemeral"}
        }
    ]

Dies wandelt deinen System-Prompt von einem einfachen String in ein strukturiertes Format um, das Caching unterstützt.

Cache-Verhalten verstehen

Wenn du Anfragen mit aktiviertem Caching ausführst, siehst du unterschiedliche Nutzungsmuster in der Antwort:

  • Erste Anfrage: cache_creation_input_tokens=1772 – Claude schreibt in den Cache
  • Nachfolgende Anfragen: cache_read_input_tokens=1772 – Claude liest aus dem Cache
  • Geänderter Inhalt: Neue Cache-Erstellungs-Token erscheinen

Der Cache ist extrem empfindlich – selbst die Änderung eines einzelnen Zeichens in deinen Tools oder deinem System-Prompt macht den gesamten Cache für diese Komponente ungültig.

Cache-Reihenfolge und Breakpoints

Du kannst mehrere Cache-Breakpoints in einer einzigen Anfrage festlegen. Die Reihenfolge ist wichtig:

  1. Tools (falls angegeben)
  2. System-Prompt (falls angegeben)
  3. Nachrichten

Wenn du deinen System-Prompt änderst, aber dieselben Tools beibehältst, siehst du einen partiellen Cache-Read (für Tools) und einen Cache-Write (für den neuen System-Prompt). Dieses granulare Caching bedeutet, dass du nur für die Verarbeitung der Teile bezahlst, die sich tatsächlich geändert haben.

Praktische Überlegungen

Prompt-Caching ist am effektivsten, wenn du Folgendes hast:

  • Konsistente Tool-Schemas über Anfragen hinweg
  • Stabile System-Prompts
  • Anwendungen, die mehrere Anfragen mit ähnlichem Kontext stellen

Denke daran, dass der Standard-Cache 5 Minuten dauert (bei jeder Nutzung aktualisiert), mit einer 1-Stunden-Option gegen Aufpreis verfügbar, sodass er für Anwendungen mit relativ häufiger API-Nutzung konzipiert ist und nicht für die langfristige Speicherung.