Zum Hauptinhalt springen
Sende bei einer beliebigen Anfrage einen anderen reasoning_effort (Chat Completions) oder reasoning.effort (Responses), und Phaseo ändert Claudes Aufwand, ohne seinen Prompt-Cache neu zu starten. Sonst musst du an deinem Code nichts ändern, solange du Claudes Reasoning bei jeder Anfrage unverändert zurücksendest. Phaseo sendet Claude weiter den Aufwand der ersten Anfrage deiner Unterhaltung und fügt jede Änderung als Aufwandsmarkierung nach deiner neuen Nachricht ein. Alles vor der Markierung bleibt gleich, daher liest Claude es aus dem Cache. Verwirfst du das Reasoning, ändert Phaseo stattdessen den Aufwand auf oberster Ebene, und Claude verarbeitet alles ab seiner ersten Antwort erneut, statt es aus dem Cache zu lesen.

Wie Phaseo den Cache erhält

Claude liest eine gecachte Unterhaltung nur, wenn der Anfang der Anfrage Byte für Byte gleich ist, und der Aufwand auf oberster Ebene gehört zu diesem Anfang. Anthropics Aufwand pro Nachricht ändert die Stufe stattdessen innerhalb von messages, mit einer system-Nachricht, die leeren content und ein output_config.effort hat. Phaseo schreibt diese Markierungen für dich: Phaseo speichert zwischen Anfragen nichts. Jede Claude-Antwort endet mit einem Reasoning-Eintrag, der die Stufe festhält, mit der sie lief, und Phaseo baut jede frühere Markierung an derselben Stelle aus den Einträgen neu auf, die du zurücksendest: Nachrichten, die du zurücksendest, werden nie verändert. Die Markierungen gibt es nur in der Anfrage, die Phaseo an Claude sendet.

Reasoning unverändert zurücksenden

Sende jeden Reasoning-Eintrag bei jeder Anfrage genau so zurück, wie du ihn erhalten hast: Chat-reasoning_details, Responses-reasoning-Elemente und Anthropic-thinking-Blöcke, verschlüsselt oder nicht. Verwirf, bearbeite, sortiere oder fasse sie nicht zusammen. Ohne sie startet eine Aufwandsänderung Claudes Cache neu, und Claude verliert sein Reasoning zwischen den Schritten der Tool-Schleife.
Der Aufwandseintrag hat keinen Text. Bei Chat Completions ist es der letzte reasoning.encrypted-Eintrag in reasoning_details:
Bei Responses ist es das letzte reasoning-Element in output, mit einer id, die mit rs_effort_ beginnt:
Der Wert ist undurchsichtig, und Phaseo entfernt ihn, bevor die Unterhaltung einen Anbieter erreicht.

Aufwand in deinem Code ändern

Hänge Claudes ganze Antwort an deine Unterhaltung an und setze dann den gewünschten Aufwand für die nächste Anfrage. Das cache_control auf oberster Ebene schaltet Caching für Claude-Routen ein; siehe Prompt-Caching.

Chat Completions

Responses

Phaseo speichert keine Antworten. Sende daher die ganze Unterhaltung in input, einschließlich jedes output-Elements.

Anthropic Messages

Bei /v1/messages sendest du die Markierung selbst: eine system-Nachricht mit leerem content und output_config.effort. Lass das output_config.effort auf oberster Ebene bei jeder Anfrage gleich, und lass jede Markierung bei späteren Anfragen an ihrer Stelle. Phaseo fügt den Beta-Header mid-conversation-output-config-2026-07-01 hinzu, du musst ihn also nicht senden.
cURL
Wo die Markierung steht, entscheidet, wann die neue Stufe beginnt:
  • Direkt nach einer Benutzernachricht: Claudes Antwort auf diese Nachricht nutzt die neue Stufe.
  • An jeder anderen Stelle, etwa zwischen Claudes Antwort und deiner nächsten Nachricht wie oben: Die neue Stufe beginnt mit deiner nächsten Nachricht.
Eine Benutzernachricht, die nur Tool-Ergebnisse enthält, zählt nicht als neue Nachricht. Auf Routen ohne Aufwand pro Nachricht entfernt Phaseo die Markierungen und sendet die geltende Stufe als Aufwand auf oberster Ebene.

Wann die Änderung den Cache neu startet

Phaseo ändert den Aufwand auf oberster Ebene, wie bei anderen Anbietern, wenn:
  • Das Reasoning fehlt. Deine letzte Claude-Antwort hat keinen Aufwandseintrag, weil dein Client reasoning_details oder reasoning-Elemente verworfen hat.
  • Die Änderung zwischen Schritten der Tool-Schleife kommt. Deine letzte Nachricht enthält nur Tool-Ergebnisse, daher würde eine Markierung erst ab deiner nächsten Nachricht gelten. Phaseo ändert den Aufwand auf oberster Ebene, damit dieser Schritt mit der angeforderten Stufe läuft, und spätere Änderungen nutzen wieder Markierungen.
  • Die Anfrage keinen Aufwand setzt oder Reasoning ausschaltet. Sende reasoning_effort oder reasoning.effort bei jeder Anfrage. "none" und reasoning.enabled: false schalten Reasoning aus.
  • Die Route es nicht unterstützt. Siehe Unterstützte Modelle.
Eine Änderung auf oberster Ebene behält den Teil der Unterhaltung vor Claudes erster Antwort im Cache. Claude verarbeitet alles ab dieser Antwort erneut und rechnet es als neuen Input ab.

Unterstützte Modelle

Auf allen anderen Routen, auch bei Claude auf Azure, geht eine Aufwandsänderung an die oberste Ebene.

Prüfen, ob der Cache gehalten hat

Lies die Cache-Zähler der Anfrage nach einer Änderung: usage.prompt_tokens_details.cached_tokens bei Chat Completions, usage.input_tokens_details.cached_tokens bei Responses und usage.cache_read_input_tokens bei Anthropic Messages. Nutzungs- und Abrechnungsfelder listet alle Felder auf. Wir haben am 11. November 2026 dieselbe Chat-Completions-Unterhaltung mit fünf Anfragen auf anthropic/claude-haiku-5.5 gemessen, einmal mit zurückgesendeten Aufwandseinträgen und einmal ohne sie. Der Aufwand war high, high, low, low, high, und ein Dokument mit 3.400 Token kam in der zweiten Nachricht:
Zuletzt geändert am 12. November 2026