View a markdown version of this page

Pensamiento preservado - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Pensamiento preservado

Descripción general de

En Claude Fable 5.1, cada bloque de pensamiento está vinculado a la conversación que lo produjo. La API comprueba que el indicador del sistema, la lista de herramientas y todos los mensajes anteriores al bloque no hayan cambiado cuando vuelvas a reproducir ese bloque en una solicitud posterior. Esto protege la integridad Claude del razonamiento: el razonamiento producido con un conjunto de instrucciones no se puede reproducir con un conjunto diferente.

Si tu arnés devuelve el historial de conversaciones exactamente como lo recibió, nada cambia para ti. Si editas el historial entre solicitudes (añadiendo recordatorios por turno, resumiendo los turnos anteriores o reconstruyendo el mensaje del sistema), la API rechaza la solicitud de forma predeterminada.

¿Qué se comprueba en la reproducción

Comprobar Descripción
Modelo La modelo que lee el bloque puede leer el pensamiento del productor. Un modelo no puede leer el pensamiento de otro modelo a menos que ambos sean explícitamente compatibles. Esta comprobación se aplica a cualquier modelo capaz de pensar.
Prefijo de conversación El indicador de nivel superior del sistema, las herramientas y todo el contenido de los mensajes anteriores al bloqueo permanecen inalterados con respecto a la solicitud que lo generó. Claude Fable 5.1 ejecuta esta comprobación. Claude Mythos 5.1 graba la misma firma pero no la ejecuta.
nota

Un bloque pensante cuya firma se haya modificado o no pueda descifrarse siempre devuelve un 400, independientemente de estas comprobaciones o del valor beta.

El objeto de solicitud block_binding (beta)

block_bindingAñádelo al thinking objeto e incluye el valor beta anthropic_beta para controlar lo que ocurre cuando se detecta una discordancia de prefijos:

{ "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_bindingacepta un campomismatch_behavior, que controla lo que hace la API con un bloque de pensamiento que no pasa la comprobación del prefijo de la conversación. Si se envía sin el valor beta, block_binding devuelve 400. Los valores mal formados también devuelven un 400 para nombrar el campo.

Controlar el comportamiento de discordancia

Valor Comportamiento en una comprobación fallida
"error" (predeterminado) La solicitud falla al 400 invalid_request_error asignar un nombre al bloque fallido. No se puede volver a intentar; se devuelve antes de cualquier evento de transmisión.
"drop_block" La solicitud se realiza correctamente con 200. El bloque que falla se elimina antes que el modelo, junto con todos los bloques de pensamiento posteriores de la conversación, y cada bloque eliminado aparece en input_transformations la lista.

Ninguno de los dos valores cambia la comprobación del modelo, que siempre se anula.

La matriz de respuestas input_transformations

Cuando se envía el valor beta, la respuesta puede incluir una input_transformations matriz de nivel superior que describa los bloques que se eliminaron:

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

Se trata de una matriz de nivel superior (hermana deusage), que solo está presente con el valor beta; [] cuando no se ha eliminado ningún bloque y, en caso contrario, está ausente. Cada entrada contiene un identificador path del bloque eliminado y un reason — uno de model_binding_mismatch o. prefix_binding_mismatch En las respuestas de transmisión, la matriz aparece dentro del objeto de mensaje dentro del message_start evento. Los bloques eliminados no se contabilizaninput_tokens.

Respuestas de error

Si mismatch_behavior es así"error", se devuelve una falta de coincidencia de prefijos:

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

Este error es permanente para esa solicitud; un bucle de reintento automático no lo borrará. Cuando lo detectes, elimina todos los bloques de pensamiento del historial y vuelve a intentarlo, o vuelve a intentarlo con el encabezado de la mismatch_behavior: "drop_block" beta.

Guía para aplicaciones de varios turnos y en régimen de agencia

  • El asistente de reproducción gira exactamente como se devolvieron y mantiene el sistema puntual y las herramientas estables durante una conversación.

  • Evita incluir contenido puntual en los turnos anteriores (por ejemplo, un mensaje transitorio del sistema o un texto recordatorio adjunto al último turno del usuario). Esto cambia el prefijo de la conversación e invalida los bloqueos de pensamiento posteriores. En su lugar, utilice mensajes del sistema de mitad de conversación.

  • Si tu aplicación reescribe el historial de conversaciones, elimina los bloques de reflexión a partir del punto reescrito o configúralos en. mismatch_behavior "drop_block"

  • Cuando utilices la API de Converse con un modelo que la admita, pasa el valor beta de forma continua. thinking.block_binding additionalModelRequestFields