DEV Community

Cover image for Migration zu Claude Fable 5.1 von Fable 5 oder Opus 5: Alle Breaking Changes
Emre Demir
Emre Demir

Posted on Originally published at apidog.com

Migration zu Claude Fable 5.1 von Fable 5 oder Opus 5: Alle Breaking Changes

Claude Fable 5.1 migrieren: Breaking Changes und Checkliste

Der Umstieg auf Claude Fable 5.1 ist größtenteils ein Austausch der Modell-ID. API-Oberfläche, Limits, tokenbasierte Preisgestaltung, Tokenizer, stets aktive adaptive Denkweise und Verweigerungsbehandlung entsprechen Fable 5. Drei Änderungen können jedoch zu neuen Fehlern führen. Besonders die Prüfung bearbeiteter Verläufe kann ein Agenten-Harness, das jahrelang stabil lief, unbemerkt beeinträchtigen. Beim Wechsel von Opus 5 kommen vier weitere Punkte hinzu.

Apidog heute testen

Dieser Leitfaden enthält die genaue Fehlermeldung und die Lösung für jeden Punkt – in der Reihenfolge, in der sie typischerweise auftreten. Die Empfehlungen basieren auf dem Migrationsleitfaden und Was ist neu in Claude Fable 5.1. Alle Snippets können in Apidog eingefügt und vor dem Produktivbetrieb gegen den echten Endpunkt ausgeführt werden. Für einen allgemeinen Überblick siehe was Claude Fable 5.1 ist.

Schritt 0: Prüfen, ob eine Migration nötig ist

Anthropic empfiehlt, zunächst Opus 5 zu testen und Fable 5.1 nur dann einzusetzen, wenn Sie anspruchsvolle Schlussfolgerungen, langfristige Agentenarbeiten oder bessere Ergebnisse als mit Opus 5 bei höherem Aufwand benötigen.

Wenn Opus 5 Ihre Bewertungen besteht, verdoppelt eine Migration möglicherweise nur die Tokenkosten – ohne messbaren Gewinn. Bei Fable 5 bleibt der Preis gleich, während Cache-Lesevorgänge günstiger sind. Die Vergleiche Fable 5.1 vs. Fable 5 und Fable 5.1 vs. Opus 5 helfen bei der Entscheidung.

Prüfen Sie vorab:

  • Datenaufbewahrung: Fable 5.1 erfordert eine Aufbewahrung von 30 Tagen und ist ohne ausdrückliche Autorisierung durch Anthropic nicht mit Zero Data Retention (ZDR) verfügbar. Eine ZDR-Organisation erhält bei jeder Anfrage einen 400 invalid_request_error ohne weitere Details. Opus 5 unterstützt ZDR.
  • Prioritätsstufe: Wird von Fable 5.1 nicht unterstützt, von Fable 5 jedoch schon.
  • Ratenbegrenzungen: Fable 5.1 und Fable 5 teilen sich denselben Pool „Fable 5.x“. Ein schrittweiser Übergang nutzt daher dieselbe Kapazität.

Schritt 1: Modellnamen aktualisieren

model = "claude-fable-5"    # Vorher
model = "claude-opus-5"     # Oder vorher
model = "claude-fable-5-1"  # Nachher
Enter fullscreen mode Exit fullscreen mode

Auf Amazon Bedrock lautet die Modell-ID:

anthropic.claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

Google Cloud, Microsoft Foundry und Claude Platform auf AWS verwenden:

claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

Wenn Sie Claude Managed Agents verwenden, ist dies die einzige erforderliche Änderung.

Breaking Change 1: Erzwingende Werkzeugnutzung liefert 400

Fable 5 akzeptierte die tool_choice-Werte auto, none, any und tool. Fable 5.1 lehnt any und tool in der Messages API, Batches API und am Token-Zählungsendpunkt ab:

tool_choice: Typ "tool" und "any" werden für dieses Modell nicht unterstützt.

Laut Anthropic ist das Denken immer aktiv. Ein erzwungener Werkzeugaufruf würde diesen Prozess überspringen und dazu führen, dass das Modell seine Ausarbeitung in die Werkzeugargumente schreibt.

Vorher mit Fable 5

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    tools=[record_summary_tool],
    tool_choice={"type": "tool", "name": "record_summary"},
    messages=[{"role": "user", "content": "Zusammenfassen: Das Meeting wurde auf Donnerstag verschoben."}],
)
Enter fullscreen mode Exit fullscreen mode

Nachher mit Fable 5.1

Lassen Sie tool_choice auf auto, nennen Sie das Werkzeug explizit in der Anweisung und aktivieren Sie strict: true, damit die Argumente weiterhin dem Schema entsprechen.

record_summary_tool["strict"] = True
record_summary_tool["input_schema"]["additionalProperties"] = False

response = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    tools=[record_summary_tool],
    tool_choice={"type": "auto"},
    messages=[{"role": "user", "content": "Zusammenfassen: Das Meeting wurde auf Donnerstag verschoben. Rufen Sie das record_summary-Werkzeug mit Ihrem Ergebnis auf."}],
)
Enter fullscreen mode Exit fullscreen mode

Migrieren Sie nach Absicht:

  • Wenn Sie ein Werkzeug nur erzwungen haben, um JSON zu erhalten, verwenden Sie strukturierte Ausgaben über output_config.format.
  • Wenn der Werkzeugaufruf in diesem Zug zwingend erforderlich ist, hängen Sie nach dem letzten Benutzerzug eine role: "system"-Nachricht an, die das Werkzeug nennt und den Aufruf verlangt. Bewahren Sie diese Nachricht anschließend im Verlauf auf.
  • Wenn Sie any für „genau ein Werkzeug“ verwenden, funktioniert disable_parallel_tool_use: true weiterhin mit auto. Die Ausführung ist dann auf höchstens einen Aufruf begrenzt.
  • Entfernen Sie Wiederholungsschleifen, die bei einem fehlenden Werkzeugaufruf erneut versuchen. Laut Anthropic befolgt Fable 5.1 explizite Werkzeuganweisungen zuverlässig.
  • In CMEK-Organisationen sind strict: true und strukturierte Ausgaben bei Fable-Modellen nicht verfügbar. Verlassen Sie sich dort allein auf die Anweisung.

Weitere Details: strikte Werkzeugnutzung.

Breaking Change 2: Ältere Modelle können Fable-5.1-Thinking-Blocks nicht lesen

Jeder Thinking-Block enthält das Modell, das ihn erzeugt hat. Fable 5.1 kann Blöcke von Opus 5, Fable 5, Mythos 5 und früheren Modellen lesen. Dadurch bleibt die Argumentation beim Übergang zu Fable 5.1 erhalten.

Mit Ausnahme von Mythos 5.1 kann jedoch kein anderes Modell einen Fable-5.1-Block lesen.

Das kann passieren, wenn eine Konversation durch einen Router-Switch, einen clientseitigen Wiederholungsversuch oder einen Klassifikator-Fallback auf ein älteres Modell gelangt. Die API verwirft inkompatible Blöcke, bevor das Zielmodell sie sieht.

Die Anfrage bleibt erfolgreich:

  • verworfene Tokens werden nicht berechnet,
  • das Zielmodell plant ohne die ursprüngliche Argumentation neu,
  • der erste Zug nach dem Wechsel kann mehr kosten und länger dauern.

Was Sie tun sollten

Es ist keine Codeänderung erforderlich. Geben Sie Thinking-Blocks unverändert zurück. Entfernen Sie sie nicht selbst, da dies Signature-400-Fehler auslösen kann.

Für Transparenz können Sie den Beta-Header thinking-binding-controls-2026-08-01 senden. Die Antwort enthält dann ein input_transformations-Array mit den verworfenen Blöcken und dem Grund:

{
  "reason": "model_binding_mismatch"
}
Enter fullscreen mode Exit fullscreen mode

Breaking Change 3: Bearbeitete frühere Züge invalidieren Thinking-Blocks

Ein Fable-5.1-Thinking-Block ist an den exakten system-Prompt, das tools-Array und den Nachrichtenverlauf gebunden, die ihm vorausgingen. Wird einer dieser Bestandteile geändert und der Block anschließend erneut gesendet, kann die API die Anfrage ablehnen:

messages.5.content.0: Ungültige `signature` im `thinking`-Block.
Der Block ist an eine andere Konversation gebunden.
Entfernen Sie den Block oder setzen Sie
`thinking.block_binding.prefix_mismatch_behavior` auf "drop_block".
Diese Einstellung erfordert den Wert
`thinking-binding-controls-2026-08-01` im `anthropic-beta`-Header.
Enter fullscreen mode Exit fullscreen mode

Wer ist betroffen?

  • Konten, die am oder nach dem 31. August 2026 erstellt wurden, erzwingen die Prüfung.
  • Ältere Konten protokollieren die Abweichung, reagieren aber erst darauf, wenn thinking.block_binding.prefix_mismatch_behavior gesetzt wird.
  • Anthropic plant, die Prüfung künftig für jedes Konto durchzusetzen.
  • Wenn Sie ein Tool anbieten, das andere mit ihrem eigenen API-Schlüssel ausführen, testen Sie es mit aktiviertem Feld. Neue Konten Ihrer Benutzer können früher betroffen sein.
  • Claude Code, claude.ai, Managed Agents und das Agent SDK halten das Präfix automatisch intakt.
  • Mythos 5.1 führt diese Prüfung nicht durch.

Was invalidiert spätere Blocks?

  • Einen früheren Zug bearbeiten, neu anordnen oder entfernen
  • Alte Werkzeugergebnisse löschen
  • Pro Anfrage eingefügten Text bei der nächsten Anfrage wieder entfernen
  • system oder tools zwischen Anfragen neu aufbauen
  • Eine Bild-URL verwenden, die später andere Bytes liefert

Was hält Blocks gültig?

  • Einen Verlauf ausschließlich erweitern
  • Eine führende Reihe von Thinking-Blocks entfernen, beginnend mit dem ältesten
  • Parameter außerhalb von system, tools und messages ändern
  • cache_control-Marker verschieben
  • Serverseitige Komprimierung oder Kontextbearbeitung verwenden

Weitere Hintergründe: preserved thinking und der Leitfaden zum beibehaltenen Denken.

Notfalllösung: inkompatible Blocks verwerfen

Senden Sie den Beta-Header und setzen Sie prefix_mismatch_behavior auf "drop_block":

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    thinking={
        "type": "adaptive",
        "block_binding": {
            "prefix_mismatch_behavior": "drop_block"
        }
    },
    betas=["thinking-binding-controls-2026-08-01"],
    messages=history,
)

for t in response.input_transformations or []:
    print(t.path, t.reason)  # prefix_binding_mismatch oder model_binding_mismatch
Enter fullscreen mode Exit fullscreen mode

Die API verwirft den ersten nicht übereinstimmenden Block und alle folgenden Thinking-Blocks. Danach wird die Anfrage fortgesetzt und jedes Verwerfen gemeldet.

Die Einstellung gilt nur für diese Anfrage. Senden Sie sie daher bei jedem relevanten Aufruf erneut.

Verwenden Sie in CI "error" explizit, damit eine unerwartete Verlaufsbearbeitung den Lauf fehlschlagen lässt.

Korrekturtabelle

Bisher Stattdessen
system während der Sitzung bearbeiten Beim Sitzungsstart einfrieren; Änderungen als role: "system"-Nachricht anhängen
tools während der Sitzung bearbeiten Den vollständigen Satz vorab deklarieren; tool_addition- und tool_removal-Blöcke in einer Systemnachricht senden (mid-conversation-tool-changes-2026-07-01)
Eine Erinnerung pro Zug einfügen und später löschen Zug-spezifische Systemnachricht mit clear_at: "next_user_message" verwenden (mid-conversation-system-clear-at-2026-08-21) und im Verlauf belassen
Alte Werkzeugergebnisse clientseitig löschen Serverseitige Kontextbearbeitung verwenden
Clientseitig komprimieren und die letzten Züge wortwörtlich wiedergeben Serverseitige Komprimierung oder eine Zusammenfassungsnachricht plus neuen Benutzerzug verwenden
Über mehrere Züge auf eine Bild-URL verweisen Bild einmal in die Files API hochladen und anschließend die file_id senden

Von Opus 5 kommend: vier zusätzliche Änderungen

1. Denken kann nicht deaktiviert werden

Opus 5 akzeptierte bei high oder niedriger:

{
  "thinking": {
    "type": "disabled"
  }
}
Enter fullscreen mode Exit fullscreen mode

Fable 5.1 liefert damit bei jedem Aufwand einen 400-Fehler. Entfernen Sie das Feld, steuern Sie die Ausgabe über einen niedrigeren Aufwand und prüfen Sie max_tokens für Routen, die zuvor ohne Denken liefen.

2. Zwischen-Werkzeug-Erzählung erscheint in Thinking-Blocks

Bei Opus 5 wurde Text zwischen Werkzeugaufrufen als text-Block zurückgegeben. Fable 5.1 liefert ihn als Fortschritts-Update in Thinking-Blocks. Mit dem Standardwert display: "omitted" bleiben diese für Benutzer leer.

Wenn Ihre Oberfläche diese Erzählung anzeigt, aktivieren Sie sie:

{
  "thinking": {
    "type": "adaptive",
    "display": "updates"
  }
}
Enter fullscreen mode Exit fullscreen mode

Verwenden Sie zusätzlich den Header thinking-display-updates-2026-08-18.

3. Der Klassifikator-Satz ist breiter

Opus 5 verwendet nur Cyber-Klassifikatoren. Fable 5.1 deckt zusätzlich ab:

  • cyber
  • bio
  • frontier_llm
  • reasoning_extraction
  • general_harms

Behandeln Sie stop_reason: "refusal", bevor Sie den Inhalt lesen. Aktivieren Sie außerdem fallbacks: "default" mit dem Header server-side-fallback-2026-07-01.

Zulässige Fallback-Ziele sind Opus 4.8 und Opus 5. Eine abgelehnte Anfrage kann dadurch auf das Modell zurückfallen, von dem Sie migriert haben.

4. Preis und Datenaufbewahrung ändern sich

Die Preise steigen von 5 $ und 25 $ auf 10 $ und 50 $. Cache-Lesevorgänge kosten 0,25 $ statt 0,50 $. ZDR ist nicht verfügbar.

Die Details und Beispielberechnungen finden Sie in der Preisübersicht.

Wenn Sie von Opus 4.8 oder früher migrieren, führen Sie zuerst die Migration von Opus 4.8 zu Opus 5 durch und anschließend diese Schritte.

Verhaltensänderungen testen

Diese Änderungen liefern keine Fehler, können aber die Laufzeit und Ergebnisse beeinflussen:

  • In langen Schleifen führt Fable 5.1 möglicherweise nur einen Werkzeugaufruf pro Zug aus, während Fable 5 mehrere Aufrufe gebündelt hat. Messen Sie den Anteil der Mehrfachaufrufe und ergänzen Sie bei Bedarf eine Batching-Anweisung.
  • Fable 5.1 schreibt weniger Fortschrittsmeldungen. Setzen Sie display: "updates" und entfernen Sie Prompt-Zeilen, die das Zurückhalten von Ergebnissen verlangen.
  • Bei niedrigem Aufwand ruft das Modell Suchwerkzeuge seltener auf. Erhöhen Sie den Aufwand für Züge, die aktuelle Daten benötigen.

Empfohlene Anpassungen

  • Aufwand pro Nachricht: Verwenden Sie mid-conversation-output-config-2026-07-01. Ändern Sie den Aufwand mit einer leeren role: "system"-Nachricht, die output_config enthält, statt den Top-Level-Wert zu ändern. So bleibt der Cache erhalten.
  • Mit high beginnen: Die größten Gewinne gegenüber Fable 5 treten bei xhigh und max auf. Laut Anthropic entspricht medium ungefähr Fable 5 – bei niedrig-01-12`) und Kontextbearbeitung gelten nicht als Verlaufsbearbeitungen.

Migrations-Checkliste

  • [ ] Eine Datenaufbewahrung von 30 Tagen bestätigen und sicherstellen, dass keine Prioritätsstufe benötigt wird.
  • [ ] Die Modell-ID auf claude-fable-5-1 aktualisieren.
  • [ ] Jede tool_choice vom Typ any oder tool durch auto plus Anweisung und strict: true oder strukturierte Ausgaben ersetzen.
  • [ ] Bei einer Migration von Opus 5 thinking: {"type": "disabled"} entfernen und max_tokens überprüfen.
  • [ ] Thinking-Blocks bei jedem Zug unverändert zurückgeben, auch leere Blocks.
  • [ ] Bei selbst erzeugten messages eine Sitzung mit prefix_mismatch_behavior: "drop_block" testen, input_transformations protokollieren und jeden prefix_binding_mismatch beheben.
  • [ ] system und tools zu Sitzungsbeginn einfrieren.
  • [ ] Zug-spezifische Erinnerungen in Systemnachrichten verschieben, die nicht gelöscht werden.
  • [ ] Ein Produktionsverhalten für prefix_mismatch_behavior festlegen und überwachen.
  • [ ] stop_reason: "refusal" behandeln und fallbacks: "default" hinzufügen.
  • [ ] Für sichtbare Zwischen-Werkzeug-Erzählungen display: "updates" aktivieren.
  • [ ] Den Aufwands-Sweep ab high wiederholen und neue Basiskosten ermitteln.
  • [ ] Beachten, dass die Tokenanzahl gegenüber Fable 5 unverändert bleibt, Cache-Lesevorgänge aber nur ein Viertel des Preises kosten.

Checkliste in Apidog ausführen

Erstellen Sie in Apidog eine Sammlung mit einer Anfrage pro Breaking Change:

  1. Erzwungener tool_choice-Aufruf – erwarten Sie den oben genannten 400-Fehler.
  2. thinking: disabled – erwarten Sie ebenfalls einen 400-Fehler.
  3. Zwei-Anfragen-Sequenz, in der der System-Prompt zwischen den Zügen geändert wird – erwarten Sie bei aktiviertem Thinking-Binding-Header einen Eintrag mit prefix_binding_mismatch.

Legen Sie die erfolgreichen Varianten daneben und fügen Sie Assertions für stop_reason sowie ein leeres input_transformations-Array hinzu. Führen Sie die Sammlung über die Apidog CLI bei jeder Änderung am Harness in CI aus.

Laden Sie Apidog herunter, um die Sammlung zu erstellen. Die API-Anleitung enthält die Request-Bodies.

FAQ

Ist die Migration von Fable 5 auf Fable 5.1 eine Drop-in-Änderung?

Größtenteils. Erzwingende tool_choice-Werte liefern einen 400-Fehler, ältere Modelle können Fable-5.1-Thinking-Blocks nicht lesen, und die Bearbeitung früherer Züge invalidiert spätere Thinking-Blocks bei Konten mit aktivierter Prüfung. Der übrige Funktionsumfang bleibt erhalten.

Was bedeutet „an eine andere Konversation gebunden“?

Ihr Code hat einen Bestandteil vor einem Fable-5.1-Thinking-Block geändert und den Block anschließend erneut gesendet. Beenden Sie die Verlaufsbearbeitung oder senden Sie den Header thinking-binding-controls-2026-08-01 zusammen mit prefix_mismatch_behavior: "drop_block".

Erzwingt mein Konto die Verlaufsbearbeitungsprüfung?

Wenn das Konto am oder nach dem 31. August 2026 erstellt wurde, ja. Ältere Konten erzwingen die Prüfung nur, wenn Sie prefix_mismatch_behavior setzen.

Kann ich meine Fable-5-Prompts behalten?

Ja. Laut Anthropic sollten sie ohne Änderungen funktionieren. Führen Sie den Aufwands-Sweep erneut aus und rechnen Sie in langen Schleifen mit weniger parallelen Werkzeugaufrufen.

Was geht bei der Migration von Opus 5 kaputt?

Zusätzlich zu den Fable-5-Änderungen liefert thinking: {"type": "disabled"} bei jedem Aufwand einen 400-Fehler. Zwischen-Werkzeug-Erzählungen wandern in Thinking-Blocks, der Klassifikator-Satz wird breiter, der Preis verdoppelt sich und ZDR entfällt.

Haben Bedrock und Google Cloud dieselben Breaking Changes?

Die Modelländerungen gelten gleichermaßen. Die Thinking-Binding-Steuerungen waren bei ihrer Einführung für die Claude API und Claude Platform auf AWS verfügbar und werden modellweise für Bedrock und Google Cloud bereitgestellt.

Ohne diese Steuerungen besteht die Wiederherstellung darin, Thinking-Blocks zu entfernen und die Anfrage einmal zu wiederholen.

Referenzen und Abbildungen

Claude Fable 5.1 – Abbildung 1

Claude Fable 5.1 – Abbildung 2

Top comments (0)