

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Pensiero preservato
<a name="claude-messages-thinking-block-binding"></a>

## Panoramica di
<a name="claude-messages-thinking-block-binding-overview"></a>

In Claude Fable 5.1, ogni blocco di pensiero è legato alla conversazione che lo ha prodotto. L'API verifica che il prompt di sistema, l'elenco degli strumenti e tutti i messaggi prima del blocco siano invariati quando si riproduce quel blocco in una richiesta successiva. Ciò protegge l'integrità Claude del ragionamento: il ragionamento prodotto in base a una serie di istruzioni non può essere riprodotto in un set diverso.

Se la tua imbracatura invia la cronologia delle conversazioni esattamente come l'ha ricevuta, non cambia nulla per te. Se modifichi la cronologia tra le richieste, inserendo promemoria per turno, riepilogando i turni precedenti o ricostruendo il prompt di sistema, l'API rifiuta la richiesta per impostazione predefinita.

**Cosa viene controllato durante il replay **


| **Verifica ** | **Descrizione** | 
| --- | --- | 
| Modello | La modella che legge il blocco può leggere il pensiero del produttore. Un modello non può leggere il pensiero di un altro modello a meno che i due non siano esplicitamente compatibili. Questo controllo si applica a qualsiasi modello in grado di pensare. | 
| Prefisso di conversazione | Il prompt di sistema di primo livello, gli strumenti e tutto il contenuto dei messaggi prima del blocco rimangono invariati rispetto alla richiesta che li ha prodotti. Claude Fable 5.1 esegue questo controllo. Claude Mythos 5.1 registra la stessa firma ma non la esegue. | 

**Nota**  
Un blocco di pensiero la cui firma è stata alterata o non può essere decifrata restituisce sempre un 400, indipendentemente da questi controlli o dal valore beta.

## L'oggetto di richiesta block\_binding (beta)
<a name="claude-messages-thinking-block-binding-request-object"></a>

Aggiungilo `block_binding` all'`thinking`oggetto e includi il valore beta `anthropic_beta` per controllare cosa succede quando viene rilevata una mancata corrispondenza del prefisso:

```
{
    "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`accetta un campo`mismatch_behavior`, che controlla cosa fa l'API con un blocco di pensiero che non supera il controllo del prefisso di conversazione. Inviato senza il valore beta, `block_binding` restituisce 400. I valori non validi restituiscono anche un 400 che nomina il campo.

## Controllo del comportamento di mancata corrispondenza
<a name="claude-messages-thinking-block-binding-mismatch-behavior"></a>


| **Valore** | **Comportamento in caso di controllo non riuscito ** | 
| --- | --- | 
| "error" (predefinito) | La richiesta non riesce con l'400 invalid\_request\_errorassegnazione del nome al blocco non riuscito. Non riutilizzabile; restituito prima di qualsiasi evento di streaming. | 
| "drop\_block" | La richiesta ha esito positivo con 200. Il blocco non riuscito viene rimosso prima del modello, insieme a ogni blocco di riflessione successivo nella conversazione, e ogni blocco rimosso viene elencato in. input\_transformations | 

Nessuno dei due valori modifica il controllo del modello, che diminuisce sempre.

## L'array di risposta input\_transformations
<a name="claude-messages-thinking-block-binding-input-transformations"></a>

Quando viene inviato il valore beta, la risposta può includere un `input_transformations` array di primo livello che descrive tutti i blocchi rimossi:

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

Si tratta di un array di primo livello (fratello di`usage`), presente solo con il valore beta, `[]` quando nessun blocco è stato rimosso o assente altrimenti. Ogni voce contiene un `path` identificativo del blocco rimosso e un `reason` — uno di o. `model_binding_mismatch` `prefix_binding_mismatch` Nelle risposte in streaming, l'array appare all'interno dell'oggetto messaggio all'interno dell'`message_start`evento. I blocchi rimossi non vengono conteggiati ai fini`input_tokens`.

## Risposte agli errori
<a name="claude-messages-thinking-block-binding-error-responses"></a>

Quando `mismatch_behavior` è`"error"`, viene restituita una mancata corrispondenza del prefisso:

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

Questo errore è permanente per quella richiesta: un ciclo di ripetizione automatico non lo cancellerà. Quando lo trovi, rimuovi tutti i blocchi di pensiero dalla cronologia e riprova, oppure riprova con l'intestazione `mismatch_behavior: "drop_block"` beta.

## Linee guida per applicazioni a più turni e agentiche
<a name="claude-messages-thinking-block-binding-guidance"></a>
+ L'assistente Replay si attiva esattamente come sono stati restituiti e mantiene il sistema pronto e gli strumenti stabili durante una conversazione.
+ Evita contenuti una tantum inseriti nei turni precedenti (ad esempio, un messaggio di sistema transitorio o un testo di promemoria aggiunto all'ultimo turno dell'utente). Questi modificano il prefisso della conversazione e invalidano i blocchi di pensiero successivi. Utilizza invece i messaggi di sistema a metà conversazione.
+ Se la tua applicazione riscrive la cronologia delle conversazioni, elimina i blocchi di pensiero dal punto di riscrittura in poi, oppure imposta su. `mismatch_behavior` `"drop_block"`
+ Quando usi l'API Converse con un modello che la supporta, passa il valore beta e prosegui. `thinking.block_binding` `additionalModelRequestFields`