As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Pensamento preservado
Visão geral do
No Claude Fable 5.1, cada bloco de pensamento está vinculado à conversa que o produziu. A API verifica se o prompt do sistema, a lista de ferramentas e todas as mensagens antes do bloco permanecem inalteradas quando você repete esse bloco em uma solicitação posterior. Isso protege a integridade Claude do raciocínio: o raciocínio produzido sob um conjunto de instruções não pode ser repetido em um conjunto diferente.
Se seu equipamento envia o histórico de conversas exatamente como o recebeu, nada muda para você. Se você editar o histórico entre as solicitações — injetando lembretes por turno, resumindo turnos mais antigos ou reconstruindo o prompt do sistema — a API rejeita a solicitação por padrão.
O que é verificado no replay
| Verifique | Descrição |
|---|---|
| Modelo | O modelo que lê o bloco pode ler o pensamento do produtor. Um modelo não pode ler o pensamento de outro modelo, a menos que os dois sejam explicitamente compatíveis. Essa verificação se aplica a qualquer modelo capaz de pensar. |
| Prefixo da conversa | O prompt de nível superior do sistema, as ferramentas e todo o conteúdo da mensagem antes do bloqueio permanecem inalterados em relação à solicitação que o produziu. Claude Fable 5.1 executa essa verificação. O Claude Mythos 5.1 grava a mesma assinatura, mas não a executa. |
nota
Um bloco de pensamento cuja assinatura foi alterada ou não pode ser descriptografada sempre retorna 400, independentemente dessas verificações ou do valor beta.
O objeto de solicitação block_binding (beta)
Adicione block_binding ao thinking objeto e inclua o valor beta anthropic_beta para controlar o que acontece quando uma incompatibilidade de prefixo é detectada:
{ "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_bindingaceita um campomismatch_behavior, que controla o que a API faz com um bloco de pensamento que falha na verificação do prefixo da conversa. Enviado sem o valor beta, block_binding retorna 400. Valores malformados também retornam 400 nomeando o campo.
Controlar o comportamento de incompatibilidade
| Valor | Comportamento em uma verificação falhada |
|---|---|
"error" (padrão) |
A solicitação falha ao 400 invalid_request_error nomear o bloco que falhou. Não pode ser tentado novamente; retornado antes de qualquer evento de streaming. |
"drop_block" |
A solicitação é bem-sucedida com 200. O bloco com falha é removido antes do modelo, junto com cada bloco de pensamento posterior na conversa, e cada bloco removido é listado eminput_transformations. |
Nenhum valor altera a verificação do modelo, que sempre cai.
A matriz de resposta input_transformations
Quando o valor beta é enviado, a resposta pode incluir uma input_transformations matriz de nível superior descrevendo todos os blocos que foram removidos:
{ "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"} ] }
Essa é uma matriz de nível superior (irmã deusage), presente apenas com o valor beta; [] quando nenhum bloco foi removido e, caso contrário, ausente. Cada entrada contém uma path identificação do bloco removido e um reason — um de model_binding_mismatch ouprefix_binding_mismatch. Nas respostas de streaming, a matriz aparece dentro do objeto de mensagem dentro do message_start evento. Os blocos removidos não contam parainput_tokens.
Respostas de erro
Quando mismatch_behavior é"error", uma incompatibilidade de prefixo retorna:
{ "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\"." } }
Esse erro é permanente para essa solicitação — um ciclo de repetição automática não o eliminará. Ao detectá-lo, remova todos os blocos de pensamento do histórico e tente novamente ou tente novamente com o mismatch_behavior: "drop_block" cabeçalho beta.
Orientação para aplicações de múltiplas voltas e agentes
O assistente de repetição gira exatamente como eles foram devolvidos e mantém o aviso e as ferramentas do sistema estáveis em uma conversa.
Evite conteúdo único injetado em turnos anteriores (por exemplo, uma mensagem transitória do sistema ou um texto de lembrete anexado ao último turno do usuário). Eles alteram o prefixo da conversa e invalidam os blocos de pensamento posteriores. Em vez disso, use mensagens do sistema no meio da conversa.
Se seu aplicativo reescrever o histórico de conversas, elimine os blocos de pensamento do ponto de reescrita em diante ou defina como.
mismatch_behavior"drop_block"Ao usar a API Converse com um modelo compatível, passe o valor beta
thinking.block_bindingporadditionalModelRequestFieldscompleto.