

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
<a name="claude-messages-thinking-block-binding"></a>

## Visão geral do
<a name="claude-messages-thinking-block-binding-overview"></a>

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)
<a name="claude-messages-thinking-block-binding-request-object"></a>

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_binding`aceita um campo`mismatch_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
<a name="claude-messages-thinking-block-binding-mismatch-behavior"></a>


| **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
<a name="claude-messages-thinking-block-binding-input-transformations"></a>

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ã de`usage`), 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` ou`prefix_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 para`input_tokens`.

## Respostas de erro
<a name="claude-messages-thinking-block-binding-error-responses"></a>

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
<a name="claude-messages-thinking-block-binding-guidance"></a>
+ 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.