View a markdown version of this page

Pensiero preservato - Amazon Bedrock

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

Panoramica di

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)

Aggiungilo block_binding all'thinkingoggetto 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_bindingaccetta un campomismatch_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

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

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 diusage), 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_startevento. I blocchi rimossi non vengono conteggiati ai finiinput_tokens.

Risposte agli errori

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

  • 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