Migración de Claude Fable 5 a Fable 5.1: guía práctica
La migración a Claude Fable 5.1 consiste principalmente en cambiar el ID del modelo. La superficie de la API, los límites, el precio por token, el tokenizador, el pensamiento adaptativo siempre activo y el manejo de rechazos coinciden con Fable 5. Sin embargo, Fable 5.1 introduce tres errores nuevos; uno de ellos, la verificación de edición del historial, puede degradar silenciosamente un arnés de agente estable. Desde Opus 5 se suman cuatro cambios adicionales.
Esta lista de verificación sigue el orden en que suelen aparecer los problemas e incluye el texto exacto de los errores y su solución. Está basada en la guía de migración de Anthropic y en Novedades de Claude Fable 5.1. Puede pegar cada fragmento en Apidog y ejecutarlo contra el endpoint real antes de desplegarlo.
Para una introducción al modelo, consulte qué es Claude Fable 5.1.
Paso 0: confirme si debe migrar
Anthropic recomienda comenzar con Opus 5 y usar Fable 5.1 para razonamientos exigentes, trabajos de agente de largo alcance o casos en los que las evaluaciones de Opus 5 con mayor esfuerzo aún no sean suficientes.
Si Opus 5 ya supera sus evaluaciones, migrar puede duplicar el precio por token sin una mejora medible. Si viene de Fable 5, el precio base es el mismo y las lecturas de caché son más baratas; la decisión depende principalmente del trabajo necesario en el arnés. Consulte las comparaciones Fable 5.1 vs Fable 5 y Fable 5.1 vs Opus 5.
Compruebe primero:
-
Retención de datos: Fable 5.1 requiere una retención de 30 días. No está disponible con retención de datos cero (ZDR), salvo autorización expresa de Anthropic. Una organización ZDR recibe un error
400 invalid_request_errorsin más detalles. Opus 5 sí está disponible bajo ZDR. - Nivel de prioridad: Fable 5.1 no es compatible con este nivel; Fable 5 sí.
- Límites de tasa: Fable 5.1 comparte el grupo “Fable 5.x” con Fable 5. Una transición gradual utiliza el mismo margen.
Paso 1: actualice el nombre del modelo
model = "claude-fable-5" # Before
model = "claude-opus-5" # Or before
model = "claude-fable-5-1" # After
En Amazon Bedrock, el ID es:
anthropic.claude-fable-5-1
Google Cloud, Microsoft Foundry y Claude Platform en AWS utilizan:
claude-fable-5-1
Si usa Claude Managed Agents, este es el único cambio requerido.
Cambio importante 1: el uso forzado de herramientas devuelve 400
Fable 5 aceptaba los valores auto, none, any y tool en tool_choice. Fable 5.1 rechaza any y tool en la API de Mensajes, la API de Procesos por Lotes y el endpoint de recuento de tokens:
tool_choice: type "tool" and "any" are not supported for this model.
Según Anthropic, el pensamiento está siempre activo. Una llamada forzada podría omitirlo y provocar que el modelo escriba su razonamiento dentro de los argumentos de la herramienta.
Antes: Fable 5
response = client.messages.create(
model="claude-fable-5",
max_tokens=16000,
tools=[record_summary_tool],
tool_choice={"type": "tool", "name": "record_summary"},
messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday."}],
)
Después: Fable 5.1
Deje tool_choice en auto, nombre la herramienta en la instrucción y active el uso estricto para que los argumentos sigan coincidiendo con el esquema. Consulte la guía de uso estricto de herramientas.
record_summary_tool["strict"] = True
record_summary_tool["input_schema"]["additionalProperties"] = False
response = client.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
tools=[record_summary_tool],
tool_choice={"type": "auto"},
messages=[{
"role": "user",
"content": "Summarize: The meeting moved to Thursday. Call the record_summary tool with your result."
}],
)
Migre según la intención:
- Si forzaba una herramienta para obtener JSON, utilice salidas estructuradas mediante
output_config.format. - Si la llamada debe ocurrir en ese turno, añada un mensaje
role: "system"después del último turno del usuario. El mensaje debe nombrar la herramienta y declarar que la llamada es obligatoria; manténgalo en el historial. -
disable_parallel_tool_use: truesigue funcionando conauto, pero ahora significa como máximo una llamada, no exactamente una. - Elimine los bucles de reintento que esperaban una herramienta ausente. Anthropic indica que Fable 5.1 sigue de forma fiable las instrucciones explícitas.
- En organizaciones CMEK,
strict: truey las salidas estructuradas no están disponibles en los modelos Fable; utilice únicamente instrucciones.
Cambio importante 2: los modelos antiguos no pueden leer los bloques de pensamiento de Fable 5.1
Cada bloque de pensamiento registra el modelo que lo produjo. Fable 5.1 puede leer bloques de Opus 5, Fable 5, Mythos 5 y modelos anteriores. A excepción de Mythos 5.1, ningún otro modelo puede leer un bloque generado por Fable 5.1.
Esto puede ocurrir cuando una conversación cambia de modelo mediante:
- un switch del enrutador;
- un reintento del lado del cliente;
- una reserva tras el rechazo de un clasificador.
En esos casos, la API descarta los bloques incompatibles antes de enviarlos al modelo de destino. La solicitud tiene éxito, los tokens descartados no se facturan y el modelo vuelve a planificar sin ese razonamiento. El primer turno después del cambio puede tener mayor costo y latencia.
No necesita cambiar el código: siga enviando los bloques de pensamiento sin modificaciones. Eliminarlos manualmente puede provocar errores 400 de firma.
Para inspeccionar los descartes, envíe el encabezado beta:
thinking-binding-controls-2026-08-01
La respuesta incluirá un array input_transformations con cada bloque descartado y la razón:
{
"reason": "model_binding_mismatch"
}
Consulte la guía de pensamiento preservado.
Cambio importante 3: editar turnos anteriores invalida los bloques de pensamiento
Este es el cambio que requiere más trabajo de migración. Un bloque de pensamiento de Fable 5.1 solo es válido frente al system exacto, el array tools y el historial de mensajes que lo precedieron.
Cuando se aplica la verificación, reproducir un bloque después de modificar cualquiera de esos elementos devuelve:
messages.5.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block". That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header.
¿A quién se aplica?
- Las cuentas creadas a partir del 31 de agosto de 2026 aplican la verificación.
- Las cuentas más antiguas registran la discrepancia, pero solo actúan sobre ella si la solicitud define
thinking.block_binding.prefix_mismatch_behavior. - Anthropic indica que los modelos futuros aplicarán la verificación a todas las cuentas.
- Si distribuye una herramienta que otros ejecutan con sus propias claves de API, pruebe con el campo configurado: los usuarios con cuentas nuevas pueden estar sujetos a la verificación antes que usted.
- Claude Code, claude.ai, Managed Agents y el SDK de Agentes mantienen el prefijo intacto.
- Mythos 5.1 no ejecuta esta verificación.
Qué invalida los bloques posteriores
- Editar, reordenar o eliminar un turno anterior, incluidos resultados antiguos de herramientas.
- Inyectar texto por solicitud y eliminarlo en la siguiente solicitud.
- Reconstruir
systemotoolsentre solicitudes. - Usar una URL de imagen que sirva bytes diferentes más adelante.
Qué mantiene los bloques válidos
- Historiales de solo adición.
- Eliminar una serie inicial de bloques de pensamiento, desde el más antiguo al más nuevo.
- Cambiar parámetros fuera de
system,toolsymessages. - Mover marcadores
cache_control. - Usar compactación o edición de contexto del lado del servidor.
Vía de escape: descartar bloques incompatibles
Envíe el encabezado beta y configure prefix_mismatch_behavior en drop_block:
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
thinking={
"type": "adaptive",
"block_binding": {
"prefix_mismatch_behavior": "drop_block"
}
},
betas=["thinking-binding-controls-2026-08-01"],
messages=history,
)
for t in response.input_transformations or []:
print(t.path, t.reason) # prefix_binding_mismatch or model_binding_mismatch
La API descarta el primer bloque que no coincide y todos los bloques de pensamiento posteriores. Después continúa y reporta cada descarte.
La configuración solo se aplica a esa solicitud, así que siga enviándola. En CI, establezca "error" explícitamente para que una edición del historial detenga la ejecución.
La guía de pensamiento preservado incluye una auditoría de tres pasos y documenta las formas de compactación que pueden romper el prefijo.
| Situación | Solución |
|---|---|
Editar system a mitad de una sesión |
Congélelo al inicio y añada un mensaje role: "system" cuando el cambio deba hacerse efectivo. |
Editar tools a mitad de una sesión |
Declare el conjunto completo al inicio y use bloques tool_addition o tool_removal en un mensaje del sistema con el beta mid-conversation-tool-changes-2026-07-01. |
| Inyectar un recordatorio por turno y eliminarlo | Use un mensaje del sistema con alcance por turno y clear_at: "next_user_message" mediante el beta mid-conversation-system-clear-at-2026-08-21; deje el mensaje en el historial. |
| Eliminar resultados antiguos de herramientas en el cliente | Use edición de contexto del lado del servidor. |
| Compactar en el cliente manteniendo textualmente los turnos recientes | Use compactación del lado del servidor, o un mensaje de resumen seguido del nuevo turno del usuario sin reproducir el resto. |
| Referenciar una imagen mediante URL durante varios turnos | Súbala una vez a la API de Archivos y envíe el file_id. |
Si viene de Opus 5: cuatro cambios adicionales
1. El pensamiento no se puede deshabilitar
Opus 5 aceptaba:
thinking={"type": "disabled"}
con esfuerzo high o inferior. Fable 5.1 devuelve un 400 con cualquier nivel de esfuerzo. Elimine el campo, controle el gasto con un esfuerzo menor y revise max_tokens en las rutas que antes se ejecutaban sin pensamiento.
2. La narración entre herramientas pasa a bloques de pensamiento
En Opus 5, el texto entre llamadas a herramientas se devolvía como bloques text. En Fable 5.1 se devuelve como bloques thinking de actualización de progreso, vacíos bajo el valor predeterminado display: "omitted".
Si la interfaz renderizaba esa narración, configure:
thinking={
"type": "adaptive",
"display": "updates"
}
y envíe el encabezado beta:
thinking-display-updates-2026-08-18
3. El conjunto de clasificadores es más amplio
Opus 5 ejecutaba clasificadores únicamente para ciberseguridad. Fable 5.1 cubre:
cyber
bio
frontier_llm
reasoning_extraction
general_harms
Maneje stop_reason: "refusal" antes de leer content y considere fallbacks: "default" con el beta:
server-side-fallback-2026-07-01
Los objetivos permitidos son Opus 4.8 y Opus 5. Una solicitud rechazada puede recurrir al modelo del que migró.
4. Precio y retención
El precio pasa de $5 y $25 a $10 y $50, mientras que las lecturas de caché pasan de $0.50 a $0.25. También se pierde ZDR. Consulte el desglose de precios.
Si viene de Opus 4.8 o anterior, aplique primero la migración de Opus 4.8 a Opus 5. Las integraciones antiguas suelen truncar turnos o reconstruir el prompt del sistema en cada solicitud; Opus 4.8 no rechazaba esos patrones.
Cambios de comportamiento que debe probar
Estos cambios no devuelven errores, pero pueden afectar el rendimiento:
- En bucles largos, Fable 5.1 puede emitir una llamada a herramienta por turno donde Fable 5 procesaba varias en lote. Mida la proporción de turnos con múltiples llamadas y añada una instrucción de procesamiento por lotes si disminuye.
- Fable 5.1 escribe menos mensajes de progreso. Si necesita mostrarlos, configure
display: "updates"y elimine las instrucciones que le pedían retener hallazgos. - Con esfuerzo
low, puede llamar a herramientas de búsqueda con menos frecuencia. Aumente el esfuerzo en los turnos que necesiten datos recientes.
Consulte la guía de prompting para conocer las soluciones de una línea.
Cambios recomendados
-
Esfuerzo por mensaje: con el beta
mid-conversation-output-config-2026-07-01, cambie el esfuerzo mediante un mensajerole: "system"de contenido vacío que incluyaoutput_config, en lugar de cambiar el valor de nivel superior. Esto evita restablecer la caché. -
Comience en
highy mida: las mejoras sobre Fable 5 son mayores conxhighymax. Anthropic indica quemediumofrece resultados aproximadamente equivalentes a Fable 5 a menor costo. Los nombres de nivel no son comparables entre modelos. -
Recorte el contexto en el servidor: la compactación del lado del servidor (
compact-2026-01-12) y la edición de contexto no cuentan como ediciones del historial.
Lista de verificación de migración
- [ ] Confirme la retención de datos de 30 días y elimine cualquier dependencia del Nivel de Prioridad.
- [ ] Cambie el modelo a
claude-fable-5-1. - [ ] Reemplace
tool_choicede tipoanyotoolporauto, una instrucción explícita ystrict: true, o utilice salidas estructuradas. - [ ] Si viene de Opus 5, elimine
thinking: {"type": "disabled"}y revisemax_tokens. - [ ] Devuelva los bloques de pensamiento sin cambios en cada turno, incluidos los vacíos.
- [ ] Ejecute una sesión con
prefix_mismatch_behavior: "drop_block", registreinput_transformationsy corrija cadaprefix_binding_mismatch. - [ ] Congele
systemytoolsal inicio de la sesión. - [ ] Mueva los recordatorios por turno a mensajes del sistema con alcance por turno y no los elimine del historial.
- [ ] Elija un
prefix_mismatch_behaviorpara producción y monitorícelo. - [ ] Maneje
stop_reason: "refusal"y añadafallbacks: "default". - [ ] Si la interfaz muestra texto entre herramientas, establezca
display: "updates". - [ ] Repita las pruebas de esfuerzo desde
highy restablezca el costo base. - [ ] Recuerde que el recuento de tokens no cambió frente a Fable 5 y que las lecturas de caché cuestan una cuarta parte del precio.
Ejecute la lista de verificación en Apidog
Cree una colección con una solicitud por cada cambio importante:
- Una llamada con
tool_choiceforzado; espere el error400correspondiente. - Una llamada con
thinking: disabled; espere otro error400. - Una secuencia de dos solicitudes que modifique el prompt del sistema entre turnos con el encabezado de enlace de pensamiento; espere una entrada
prefix_binding_mismatch.
Añada junto a cada caso una versión válida con aserciones sobre:
-
stop_reason; - un array
input_transformationsvacío; - la ausencia de errores de firma.
Ejecute la colección en CI mediante la CLI de Apidog cada vez que cambie el arnés. Puede descargar Apidog para construir la colección; el recorrido de la API contiene los cuerpos de solicitud de ejemplo.
Preguntas frecuentes
¿La migración de Fable 5 a Fable 5.1 es directa?
En su mayor parte. Un tool_choice forzado devuelve un 400, los modelos antiguos no pueden leer bloques de pensamiento de Fable 5.1 y editar turnos anteriores invalida los bloques posteriores en cuentas sujetas a la verificación. El resto se mantiene.
¿Qué significa “vinculado a una conversación diferente”?
El código modificó algo antes de un bloque de pensamiento de Fable 5.1 y después reprodujo ese bloque. Deje de editar el historial, o envíe thinking-binding-controls-2026-08-01 con prefix_mismatch_behavior: "drop_block".
¿Mi cuenta aplica la verificación de edición del historial?
Si fue creada el 31 de agosto de 2026 o después, sí. Las cuentas más antiguas solo la aplican cuando se configura prefix_mismatch_behavior.
¿Puedo mantener mis prompts de Fable 5?
Sí. Anthropic indica que deberían funcionar sin cambios. Repita las pruebas de esfuerzo y espere menos llamadas paralelas a herramientas en bucles largos.
¿Qué se rompe al migrar desde Opus 5?
Todo lo incluido en la lista de Fable 5, además de lo siguiente:
-
thinking: disableddevuelve un400con cualquier esfuerzo. - La narración entre herramientas pasa a bloques de pensamiento.
- El conjunto de clasificadores es más amplio.
- El precio se duplica.
- Se pierde ZDR.
¿Bedrock y Google Cloud tienen los mismos cambios importantes?
Los cambios del modelo sí. Los controles de enlace de pensamiento estaban disponibles inicialmente en la API de Claude y Claude Platform en AWS, y están llegando por modelo a Bedrock y Google Cloud. Sin esos controles, elimine los bloques de pensamiento y reintente una vez.


Top comments (0)