Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konserviertes Denken
-Übersicht
In Claude Fable 5.1 ist jeder Denkblock an die Konversation gebunden, die ihn ausgelöst hat. Die API überprüft, ob die Systemaufforderung, die Tool-Liste und alle Nachrichten vor dem Block unverändert sind, wenn Sie diesen Block in einer späteren Anfrage erneut abspielen. Dies schützt die Integrität der Claude Argumentation: Eine Argumentation, die unter einem Satz von Anweisungen erstellt wurde, kann nicht unter einem anderen Satz wiederholt werden.
Wenn Ihr Gurtzeug den Gesprächsverlauf genau so zurücksendet, wie er ihn empfangen hat, ändert sich für Sie nichts. Wenn du den Verlauf zwischen Anfragen bearbeitest — indem du Erinnerungen pro Spielzug einfügst, ältere Spielzüge zusammenfasst oder die Systemaufforderung neu erstellst — lehnt die API die Anfrage standardmäßig ab.
Was wird bei der Wiederholung überprüft
| Prüfen | Beschreibung |
|---|---|
| Modell | Das Model, das den Block liest, darf die Gedanken des Produzenten lesen. Ein Modell kann das Denken eines anderen Modells nicht lesen, es sei denn, beide sind explizit kompatibel. Diese Prüfung gilt für jedes denkfähige Modell. |
| Präfix für Konversation | Die Systemaufforderung auf oberster Ebene, die Tools und der gesamte Nachrichteninhalt vor dem Block sind gegenüber der Anforderung, die ihn ausgelöst hat, unverändert. Claude Fable 5.1 führt diese Prüfung durch. Claude Mythos 5.1 zeichnet dieselbe Signatur auf, führt sie aber nicht aus. |
Anmerkung
Ein Denkblock, dessen Signatur geändert wurde oder nicht entschlüsselt werden kann, gibt immer 400 zurück, unabhängig von diesen Prüfungen oder dem Beta-Wert.
Das block_binding-Anforderungsobjekt (Beta)
Fügen Sie dem thinking Objekt etwas block_binding hinzu und fügen Sie den Beta-Wert hinzu, anthropic_beta um zu steuern, was passiert, wenn ein Präfix erkannt wird, das nicht übereinstimmt:
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["thinking-binding-controls-2026-08-01"], "max_tokens": 16000, "thinking": { "type": "adaptive", "block_binding": { "mismatch_behavior": "drop_block" } }, "messages": [{ "role": "user", "content": "Your prompt here" }] }
block_bindingakzeptiert ein Feld, das steuertmismatch_behavior, was die API mit einem Denkblock macht, der die Überprüfung des Konversationspräfixes nicht besteht. Ohne den Beta-Wert gesendet, block_binding gibt 400 zurück. Falsch formatierte Werte geben außerdem eine 400 zurück, die das Feld benennt.
Steuerung des Verhaltens bei Nichtübereinstimmungen
| Wert | Verhalten bei einer fehlgeschlagenen Prüfung |
|---|---|
"error" (Standard) |
Die Anfrage schlägt mit der 400 invalid_request_error Benennung des fehlgeschlagenen Blocks fehl. Kann nicht erneut versucht werden; wird vor allen Streaming-Ereignissen zurückgegeben. |
"drop_block" |
Die Anfrage ist mit 200 erfolgreich. Der fehlgeschlagene Block wird vor dem Modell entfernt, zusammen mit jedem späteren Denkblock in der Konversation, und jeder entfernte Block wird in input_transformations aufgeführt. |
Keiner der Werte ändert die Modellprüfung, die immer ausfällt.
Das Antwortarray input_transformations
Wenn der Beta-Wert gesendet wird, kann die Antwort ein input_transformations Array der obersten Ebene enthalten, das alle Blöcke beschreibt, die entfernt wurden:
{ "type": "message", "role": "assistant", "content": [ ... ], "stop_reason": "end_turn", "usage": {"input_tokens": 18234, "output_tokens": 911}, "input_transformations": [ {"type": "thinking_dropped", "path": "messages.3.content.0", "reason": "prefix_binding_mismatch"} ] }
Dies ist ein Array der obersten Ebene (ein Geschwisterfeld vonusage), das nur mit dem Beta-Wert vorhanden ist, [] wenn keine Blöcke entfernt wurden und ansonsten nicht vorhanden waren. Jeder Eintrag enthält ein Element, das den entfernten Block path identifiziert, und ein reason — eins von model_binding_mismatch oder. prefix_binding_mismatch Bei Streaming-Antworten erscheint das Array innerhalb des Nachrichtenobjekts innerhalb des message_start Ereignisses. Entfernte Blöcke zählen nicht dazuinput_tokens.
Fehlermeldungen
mismatch_behaviorIst dies der Fall"error", gibt ein nicht übereinstimmendes Präfix Folgendes zurück:
{ "type": "error", "error": { "type": "invalid_request_error", "message": "messages.3.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.mismatch_behavior` to \"drop_block\"." } }
Dieser Fehler ist für diese Anfrage dauerhaft — eine automatische Wiederholungsschleife löscht ihn nicht. Wenn Sie ihn erwischen, entfernen Sie entweder alle Denkblöcke aus dem Verlauf und versuchen Sie es erneut, oder versuchen Sie es erneut mit dem mismatch_behavior: "drop_block" Beta-Header.
Anleitung für Multi-Turn- und Agentenanwendungen
Spielen Sie den Assistenten genau so ab, wie sie zurückgegeben wurden, und sorgen Sie dafür, dass die System-Eingabeaufforderung und die Tools während einer Konversation stabil bleiben.
Vermeiden Sie einmalige Inhalte, die in früheren Runden eingefügt werden (z. B. eine vorübergehende Systemnachricht oder ein Erinnerungstext, der an die letzte Runde des Benutzers angehängt wird). Diese ändern das Gesprächspräfix und machen spätere Denkblockaden ungültig. Verwenden Sie stattdessen Systemnachrichten während einer Konversation.
Wenn Ihre Anwendung den Gesprächsverlauf neu schreibt, löschen Sie Denkblockaden ab dem neu geschriebenen Punkt oder setzen Sie auf.
mismatch_behavior"drop_block"Wenn Sie die Converse-API mit einem Modell verwenden, das sie unterstützt, geben Sie den Betawert durch und durch.
thinking.block_bindingadditionalModelRequestFields