DEV Community

Cover image for Migrando a Claude Fable 5.1 desde Fable 5 u Opus 5: Todos los Cambios Disruptivos
Roobia
Roobia

Posted on Originally published at apidog.com

Migrando a Claude Fable 5.1 desde Fable 5 u Opus 5: Todos los Cambios Disruptivos

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.

Prueba Apidog hoy

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_error sin 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
Enter fullscreen mode Exit fullscreen mode

En Amazon Bedrock, el ID es:

anthropic.claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

Google Cloud, Microsoft Foundry y Claude Platform en AWS utilizan:

claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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."}],
)
Enter fullscreen mode Exit fullscreen mode

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."
    }],
)
Enter fullscreen mode Exit fullscreen mode

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: true sigue funcionando con auto, 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: true y 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
Enter fullscreen mode Exit fullscreen mode

La respuesta incluirá un array input_transformations con cada bloque descartado y la razón:

{
  "reason": "model_binding_mismatch"
}
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

¿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 system o tools entre 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, tools y messages.
  • 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
Enter fullscreen mode Exit fullscreen mode

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"}
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

y envíe el encabezado beta:

thinking-display-updates-2026-08-18
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Maneje stop_reason: "refusal" antes de leer content y considere fallbacks: "default" con el beta:

server-side-fallback-2026-07-01
Enter fullscreen mode Exit fullscreen mode

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 mensaje role: "system" de contenido vacío que incluya output_config, en lugar de cambiar el valor de nivel superior. Esto evita restablecer la caché.
  • Comience en high y mida: las mejoras sobre Fable 5 son mayores con xhigh y max. Anthropic indica que medium ofrece 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_choice de tipo any o tool por auto, una instrucción explícita y strict: true, o utilice salidas estructuradas.
  • [ ] Si viene de Opus 5, elimine thinking: {"type": "disabled"} y revise max_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", registre input_transformations y corrija cada prefix_binding_mismatch.
  • [ ] Congele system y tools al 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_behavior para producción y monitorícelo.
  • [ ] Maneje stop_reason: "refusal" y añada fallbacks: "default".
  • [ ] Si la interfaz muestra texto entre herramientas, establezca display: "updates".
  • [ ] Repita las pruebas de esfuerzo desde high y 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:

  1. Una llamada con tool_choice forzado; espere el error 400 correspondiente.
  2. Una llamada con thinking: disabled; espere otro error 400.
  3. 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_transformations vací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.

Flujo de migración de Claude Fable 5.1

Pruebas de la API de Claude Fable 5.1

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: disabled devuelve un 400 con 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)