View a markdown version of this page

Pensée préservée - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pensée préservée

Vue d’ensemble

Sur Claude Fable 5.1, chaque bloc de réflexion est lié à la conversation qui l'a produit. L'API vérifie que l'invite du système, la liste d'outils et tous les messages précédant le blocage restent inchangés lorsque vous rejouez ce bloc dans une demande ultérieure. Cela protège l'intégrité Claude du raisonnement : le raisonnement produit selon un ensemble d'instructions ne peut pas être rejoué sous un autre ensemble.

Si votre harnais renvoie l'historique des conversations exactement tel qu'il l'a reçu, rien ne change pour vous. Si vous modifiez l'historique entre les demandes, en injectant des rappels par tour, en résumant les anciens tours ou en reconstruisant l'invite du système, l'API rejette la demande par défaut.

Ce qui est vérifié en replay

Vérifiez Description
Modèle Le modèle qui lit le bloc est autorisé à lire la pensée du producteur. Un modèle ne peut pas lire la pensée d'un autre modèle à moins que les deux ne soient explicitement compatibles. Cette vérification s'applique à tout modèle capable de réfléchir.
Préfixe de conversation L'invite système de niveau supérieur, les outils et tout le contenu du message avant le blocage restent inchangés par rapport à la demande qui l'a généré. Claude Fable 5.1 exécute cette vérification. Claude Mythos 5.1 enregistre la même signature mais ne l'exécute pas.
Note

Un bloc de réflexion dont la signature a été modifiée ou ne peut pas être déchiffrée renvoie toujours un 400, quelles que soient ces vérifications ou la valeur bêta.

L'objet de requête block_binding (bêta)

Ajoutez block_binding à l'thinkingobjet et incluez la valeur bêta anthropic_beta pour contrôler ce qui se passe lorsqu'une non-concordance de préfixe est détectée :

{ "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_bindingaccepte un champmismatch_behavior, qui contrôle ce que fait l'API avec un bloc de réflexion qui échoue à la vérification du préfixe de conversation. Envoyé sans la valeur bêta, block_binding renvoie un 400. Les valeurs mal formées renvoient également un 400 nommant le champ.

Contrôler les comportements d'inadéquation

Valeur Comportement en cas d'échec de vérification
"error" (par défaut) La demande échoue en 400 invalid_request_error nommant le bloc qui a échoué. Impossible de réessayer ; renvoyé avant tout événement de streaming.
"drop_block" La demande aboutit avec 200. Le bloc défaillant est supprimé avant le modèle, ainsi que tous les blocs de réflexion ultérieurs de la conversation, et chaque bloc supprimé est répertorié dansinput_transformations.

Aucune des deux valeurs ne modifie la vérification du modèle, qui diminue toujours.

Le tableau de réponses input_transformations

Lorsque la valeur bêta est envoyée, la réponse peut inclure un input_transformations tableau de niveau supérieur décrivant tous les blocs supprimés :

{ "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"} ] }

Il s'agit d'un tableau de niveau supérieur (frère deusage), présent uniquement avec la valeur bêta ; [] lorsqu'aucun bloc n'a été supprimé et absent autrement. Chaque entrée contient un path identifiant du bloc supprimé et un reason — l'un des model_binding_mismatch ouprefix_binding_mismatch. Dans les réponses en streaming, le tableau apparaît dans l'objet du message à l'intérieur de l'message_startévénement. Les blocs supprimés ne sont pas pris en compteinput_tokens.

Réponses d'erreur

Quand mismatch_behavior c'est le cas"error", une incompatibilité de préfixe renvoie :

{ "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\"." } }

Cette erreur est permanente pour cette demande : une boucle de nouvelle tentative automatique ne l'effacera pas. Lorsque vous le détectez, supprimez tous les blocages de l'historique et réessayez, ou réessayez avec l'mismatch_behavior: "drop_block"en-tête bêta.

Conseils pour les applications multi-tours et agentiques

  • L'assistant Replay tourne exactement comme ils ont été renvoyés, tout en maintenant l'invite du système et la stabilité des outils au cours d'une conversation.

  • Évitez d'injecter du contenu ponctuel dans les tours précédents (par exemple, un message système transitoire ou un texte de rappel ajouté au dernier tour de l'utilisateur). Ils modifient le préfixe de la conversation et invalident les blocages de réflexion ultérieurs. Utilisez plutôt les messages du système en cours de conversation.

  • Si votre application réécrit l'historique des conversations, supprimez les blocages de réflexion à partir du point de réécriture ou définissez-la sur. mismatch_behavior "drop_block"

  • Lorsque vous utilisez l'API Converse avec un modèle qui la prend en charge, transmettez la valeur bêta. thinking.block_binding additionalModelRequestFields