View a markdown version of this page

Pensamento preservado - Amazon Bedrock

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_binding por additionalModelRequestFields completo.