En este artículo
¿Puede Claude Fable 5.2 reanudar una sesión guardada de tu agente?
Un agente consulta la factura DEMO-17. El sistema contable devuelve 47,50 EUR. Antes de que el agente comunique el importe, un despliegue reinicia el proceso que atiende la solicitud. El historial está en la base de datos y la consulta figura como completada. ¿Podrá el proceso que tome el relevo dar la respuesta sin volver a consultar la factura?
Si usas la API de Messages de Claude, lo decisivo es qué guardó la aplicación antes del reinicio. Un historial puede parecer completo en pantalla y haber perdido un turno entero del asistente. Basta con que tu aplicación descarte un turno porque incluye una llamada a una herramienta sin texto visible. También puedes alterar una conversación antigua si al reabrirla cargas las instrucciones de sistema de hoy. Una demo en la que todos los chats empiezan de cero deja ambos fallos sin detectar.
Revisado el 14 de noviembre de 2026. Ejecutamos las seis pruebas locales de almacenamiento con datos ficticios. Para el comportamiento de los modelos nos basamos en la documentación de Anthropic. Las pruebas de actualización y vuelta a la versión anterior están pensadas para que las ejecutes en tu entorno. Si trabajas con la herramienta de línea de comandos, consulta la guía de configuración de Fable 5.2 en Claude Code.
¿Qué cambia en la primera solicitud tras el reinicio?
Al reanudar la sesión, el nuevo proceso combina los datos guardados con la configuración que carga al arrancar. En la API síncrona de Claude, Fable 5.2 puede devolver un error HTTP 400 si recibe un bloque de pensamiento conservado y ha cambiado parte de la conversación que lo precedía. El primer turno de un chat nuevo nunca pone a prueba esa condición con un bloque anterior. Guía de migración de Anthropic para Fable 5.2
Imagina que ayer la descripción de la herramienta decía «Consulta el importe registrado de una factura» y que hoy añades «y su moneda». Puede que ambas versiones devuelvan exactamente los mismos datos. Si reconstruyes la conversación de ayer con la descripción de hoy, ya has cambiado la entrada que precedía al bloque guardado. Reintentar tres veces solo envía tres veces la misma discrepancia.
La comprobación del prefijo compara los valores que quedan después de interpretar el JSON. Puedes cambiar los espacios entre elementos o el orden de las claves de un objeto. Sí importan el orden de los elementos de una lista, los mensajes anteriores y la definición de las herramientas. Cambiar solo max_tokens o effort no explica este error. Una modificación puede invalidar los bloques generados después del punto editado. Los anteriores conservan su prefijo. En Message Batches, la respuesta predeterminada a una discrepancia es distinta. Qué compara la API al verificar un prefijo
¿Qué debe guardar el agente antes de detenerse?
Guarda todo lo que necesite el siguiente proceso para construir la solicitud, aunque no haya nada que mostrar en pantalla. Esto incluye las instrucciones de sistema efectivas y las herramientas en el orden de la última solicitud correcta, los mensajes en su orden original, todos los bloques del turno del asistente y los resultados que ya haya devuelto cada herramienta. Recomendaciones de Anthropic para guardar y reanudar conversaciones
| Datos guardados | Qué permiten comprobar |
|---|---|
| Entradas de la solicitud original | Se pidió la factura DEMO-17 con unas instrucciones y una definición de herramienta concretas. Tras el despliegue se pueden recuperar esas versiones o cargar sus valores guardados. |
| Turno del asistente | Primero llegó un bloque de pensamiento opaco con un resumen visible vacío. Después, la llamada de consulta con el ID toolu_demo_17. Una exportación de solo texto perdería ambos bloques. |
| Resultado y comprobante | La aplicación registró 47,50 EUR para esa llamada. Puede enviar el resultado guardado y contrastar la respuesta del agente con una cifra independiente. |
| Estado de la operación | La consulta terminó. Lo único que queda pendiente es entregar al usuario la respuesta final. |
El bloque de pensamiento es opaco para tu aplicación. Guarda sus campos tal como los recibes, sin extraer el razonamiento ni volcarlo en los registros. Cuando la herramienta se ejecuta en el cliente, el siguiente mensaje, de rol user, debe empezar por los bloques tool_result de las llamadas correspondientes. En cada resultado, tool_use_id debe coincidir con el tool_use.id de la llamada. No intercales un turno de conversación. Si ejecutas varias llamadas en paralelo, devuelve un resultado por cada una. Reglas de la API para devolver resultados de herramientas
¿Cómo puedes probar sin conexión que tu aplicación recupera una sesión?
Antes de cambiar el modelo, descarga el script de Python para verificar una sesión restaurada. Solo necesita la biblioteca estándar de Python 3. La factura, el identificador de la herramienta y la firma son ficticios. Puedes comprobar qué datos conserva tu aplicación al guardarlos y cargarlos de nuevo, sin credenciales de API. La firma de ejemplo solo sirve para esta prueba.
python3 check_replay.py
python3 check_replay.py --emit-fixture > original.json
# Guarda original.json a través de tu aplicación, reinicia el proceso
# y exporta el registro que acabas de cargar a restored.json.
python3 check_replay.py --check-restored restored.jsonAl ejecutar el script obtuvimos 6/6 expected outcomes. El registro intacto pasó la prueba y cada uno de los cinco registros alterados produjo el fallo esperado. Estos cinco controles detectan incluso un verificador que dé por válida cualquier sesión. Pasar el archivo original.json directamente al script solo comprueba el archivo de referencia. Para evaluar un despliegue, haz pasar el registro por la misma base de datos, cola, conversión del SDK y recarga que usaría una sesión de cliente.
| Cambio introducido | Resultado observado | Qué revisar en tu aplicación |
|---|---|---|
| Ninguno. Turno del asistente sin texto | intact | La interfaz puede ocultar un mensaje vacío. El sistema que guarda la sesión debe conservar el turno. |
| Instrucción de sistema modificada | changed prefix: system | Comprueba si el alias del prompt apunta ahora a una versión distinta. |
| Descripción de la herramienta modificada | changed prefix: tools | Quizá el generador de esquemas esté usando la versión desplegada hoy para abrir sesiones antiguas. |
| Solicitud anterior reescrita | changed prefix: messages | El componente que resume el historial podría haber sobrescrito el mensaje original con la versión que muestra en pantalla. |
| Bloques del asistente en orden inverso | changed assistant turn | Si la consulta recupera filas sin orden explícito, puede recomponer los bloques en otra secuencia. |
| ID del resultado incorrecto | unmatched tool result | Un error al asociar el resultado puede atribuir un importe correcto a la llamada equivocada. |
El script normaliza el orden de las claves de los objetos JSON y respeta el de las listas. Compara los valores archivados y verifica la relación entre la llamada y su resultado. Exige una coincidencia estricta porque estamos probando el almacenamiento. Para autenticar una firma o averiguar cómo trata el modelo un bloque necesitas una prueba con el proveedor. Añade casos propios, como dos consultas paralelas que terminan en orden inverso o un reinicio justo después de que la herramienta responda y antes de que se guarde el comprobante.
¿Qué ocurre al pasar una sesión de Fable 5.1 a 5.2 y volver a 5.1?
En la API directa de Claude, Fable 5.2 puede leer el pensamiento conservado de Fable 5.1 si siguen siendo válidas las entradas anteriores. Fable 5.1 no puede leer los bloques producidos por 5.2. Al volver a la versión anterior, la API puede responder HTTP 200 aunque el modelo ya no tenga acceso a parte del razonamiento previo. Tu base de datos puede seguir conservando todo el historial original. Qué pensamiento se conserva al cambiar de modelo
Puedes cambiar el modelo de las nuevas consultas de facturas al crear cada sesión. Para las que están en curso, guarda el modelo asociado y, mientras la ruta siga disponible, deja que terminen con él. Si necesitas cambiarlo a mitad de sesión, registra cuándo ocurrió. La guía de enrutamiento de modelos explica en qué punto de la aplicación puedes tomar esa decisión.
Si una conversación antigua ya falla al verificar el prefijo, compara las instrucciones, herramientas y turnos restaurados con la última solicitud correcta. Recupera una copia intacta si la tienes. Si perdiste el original, inicia una sesión nueva con los hechos verificados. Para DEMO-17, transfiere la referencia de la factura, el importe registrado de 47,50 EUR, el comprobante y la respuesta que aún debes al usuario. Deja constancia de que se abrió otra sesión. Cómo diagnosticar un bloque vinculado a otra conversación
¿Qué pruebas con la API debe superar el agente antes del despliegue?
Usa una cuenta de pruebas con el mismo proveedor, ruta de acceso, SDK y adaptador de almacenamiento que usarás en producción. Obtén bloques auténticos en esa cuenta para cada prueba. Carga una factura con un importe conocido en una herramienta de solo lectura y registra cada llamada. Contrasta el importe y la moneda de la respuesta final con los datos que guardaste de forma independiente.
| Prueba | Qué hacer | Qué registrar |
|---|---|---|
| Sesión nueva en 5.2 | Completa una consulta con claude-fable-5-2 sin reiniciar el proceso. | ID del modelo y de las solicitudes, número de llamadas, 47,50 EUR en la respuesta final, consumo y tiempo transcurrido. |
| Reinicio con el mismo modelo | Detén el proceso después de guardar el resultado, carga la sesión en otro proceso y continúa en 5.2. | Verifica que el importe coincide con el comprobante y que solo hubo una consulta. Registra por separado cualquier lectura adicional. |
| De 5.1 a 5.2 | Guarda un turno real de 5.1 con una llamada a la herramienta y continúa en 5.2 con el prefijo original. | Estado HTTP, modelo que respondió y resultado verificado. Si falla, compara los campos guardados con los enviados. |
| De 5.2 a 5.1 | Invierte el cambio con un historial auténtico de 5.2. | Resultado, llamadas adicionales, tokens y latencia. Un importe correcto por sí solo no demuestra que 5.1 haya podido leer el pensamiento anterior. |
| Prefijo alterado a propósito | En la API directa síncrona, usa una copia desechable de un turno auténtico de 5.2. Modifica únicamente una instrucción de sistema anterior y conserva el bloque afectado. | Observa el error de prefijo que devuelve la API de forma predeterminada y cómo se recupera el proceso. Registra el campo cambiado y el ID de la solicitud sin incluir la conversación. |
Para aceptar una consulta de este ejemplo, exigimos el importe y la moneda correctos, una sola lectura y ninguna escritura. Si el agente devuelve otra factura o repite una acción externa, investiga antes de ampliar el despliegue. Fija los umbrales de latencia y coste según tus objetivos de servicio. Mide por separado las sesiones nuevas y las reanudadas. Miles de conversaciones nuevas sin incidentes pueden ocultar que todos los reinicios fallan. La lista de comprobaciones de calidad antes del lanzamiento cubre el resto de la decisión.
Si la herramienta puede emitir reembolsos y se agota el tiempo de espera después del envío, comprueba en el sistema contable si ya registró la operación. Usa un identificador estable para ese reembolso. Repite la operación solo cuando tengas la certeza de que el intento original ya no puede completarse, o si el sistema garantiza reintentos idempotentes con el mismo identificador de operación.
El ID de la herramienta de Claude permite asociar mensajes. El sistema que ejecuta el reembolso también debe reconocer los intentos repetidos. AWS sobre reintentos e idempotencia · Cómo resolver un envío sin confirmación y evitar duplicados
¿Cuándo desaparece el ahorro de Fable 5.2 por culpa de los reintentos?
Con las tarifas estándar de la API directa, 25.000 tokens de entrada sin caché y 2.000 de salida cuestan 0,35 USD en Fable 5.1 y 0,28 USD en 5.2. Por millón de tokens, 5.1 cobra 10 USD de entrada y 50 USD de salida. En 5.2 son 8 y 40 USD, respectivamente. El cálculo supone el mismo consumo en cada intento. Excluye caché, procesamiento por lotes, herramientas, infraestructura y revisión humana. Tarifas y especificaciones de Fable 5.2 · Tarifas y especificaciones de Fable 5.1
Si consigues 20 respuestas aceptadas en 20 intentos con 5.1, pagas 7,00 USD al proveedor. Si con 5.2 necesitas 25 intentos para esas mismas 20 respuestas, también pagas 7,00 USD. Con 26 intentos llegas a 7,28 USD, es decir, 0,364 USD por respuesta aceptada. Son cifras ilustrativas. En tu piloto, suma el coste real de todos los intentos, incluidos los fallidos. Divide ese importe por el número de resultados que hayas verificado y aceptado.
Para decidir si migras, comprueba si el turno sobrevivió al reinicio, si el modelo resolvió la tarea correcta en una sola consulta y cuánto costó esa respuesta. Si quieres aplicar estas pruebas a tus propios flujos de trabajo, consulta nuestro servicio de evaluación de IA y LLMOps. Cuéntanos qué operación necesita reanudar tu agente.
El caso de Twinsoft AI documenta cómo se preparó un prototipo para una prueba piloto en una empresa.
