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

Migrar a Claude Fable 5.1 desde Fable 5 u Opus 5: tool_choice forzado 400, bloques de pensamiento unidireccional, la verificación de edición del historial, cada corrección y una lista de verificación completa.

Ashley Goolam

Ashley Goolam

2 September 2026

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

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

La migración a Claude Fable 5.1 es principalmente un cambio de ID de 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, tres cambios devuelven errores que Fable 5 nunca hizo, y uno de ellos, la verificación de edición del historial, puede degradar silenciosamente un arnés de agente que funcionó bien durante un año. Si viene de Opus 5, se añaden cuatro elementos más.

Esta guía es la lista de verificación con el texto de error exacto y la solución para cada elemento, en el orden en que los encontrará, elaborada a partir de la guía de migración de Anthropic y Novedades de Claude Fable 5.1. Cada fragmento se puede pegar en Apidog y ejecutarlo contra el endpoint real antes de que llegue a producción. Para una descripción general del modelo, comience con qué es Claude Fable 5.1.

Paso 0: Confirme si debe migrar

La documentación de Anthropic dice que debe comenzar con Opus 5 y usar Fable 5.1 «para razonamientos exigentes y trabajos de agente de largo alcance, o cuando sus evaluaciones en Claude Opus 5 con mayor esfuerzo aún no son suficientes». Si Opus 5 pasa sus evaluaciones, la migración duplica su precio por token sin una ganancia medible. Si está en Fable 5, el precio es el mismo con lecturas de caché más baratas y mejores números declarados, por lo que la pregunta es solo cuánto trabajo de arnés se necesita. Las comparaciones Fable 5.1 vs Fable 5 y Fable 5.1 vs Opus 5 cubren la decisión.

Tres comprobaciones de elegibilidad primero:

Paso 1: Actualizar 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 usan claude-fable-5-1. Si usa Claude Managed Agents, este es el único cambio requerido.

Cambio importante 1: el uso forzado de herramientas devuelve un 400

Fable 5 aceptaba los valores de tool_choice auto, none, any y tool. Fable 5.1 rechaza los dos últimos, 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.

Razón de Anthropic: el pensamiento está siempre activo, y una llamada forzada lo omitiría, por lo que el modelo escribiría su razonamiento en 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 establezca strict: true (uso estricto de herramientas) para que los argumentos sigan coincidiendo con su esquema.

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 por intención. Si forzó una herramienta para obtener JSON, reemplácela con salidas estructuradas (`output_config.format`). Si la aplicación requiere la llamada en este turno, añada un mensaje `role: "system"` después del último turno del usuario que nombre la herramienta y diga que la llamada es requerida, y manténgalo en el historial después. Si confiaba en `any` para «exactamente una herramienta», `disable_parallel_tool_use: true` todavía funciona con `auto` pero ahora significa como máximo una llamada. Elimine cualquier bucle de reintento si falta una herramienta; Anthropic dice que Fable 5.1 sigue las instrucciones explícitas de las herramientas de forma fiable. En una organización CMEK, `strict: true` y las salidas estructuradas no están disponibles en los modelos Fable, así que confíe únicamente en la instrucción.

Cambio importante 2: los modelos más 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 lee bloques de Opus 5, Fable 5, Mythos 5 y modelos anteriores, por lo que una conversación que pasa a Fable 5.1 mantiene su razonamiento. Aparte de Mythos 5.1, ningún otro modelo puede leer un bloque de Fable 5.1.

Una conversación de Fable 5.1 llega a un modelo más antiguo a través de un switch de enrutador, un reintento del lado del cliente o una reserva por rechazo del clasificador. En cada caso, la API descarta los bloques que ese modelo no puede leer antes de verlos. La solicitud se realiza con éxito, los tokens descartados no se facturan y el modelo objetivo vuelve a planificar sin el razonamiento, lo que aumenta el costo y la latencia en el primer turno después del cambio.

Nada que arreglar en el código. Siga pasando los bloques de pensamiento sin cambios; eliminarlos usted mismo puede provocar errores 400 de firma. Para mayor visibilidad, envíe el encabezado beta `thinking-binding-controls-2026-08-01` y la respuesta contendrá un array `input_transformations` que nombra cada bloque descartado con `reason: "model_binding_mismatch"`.

Cambio importante 3: editar turnos anteriores invalida los bloques de pensamiento

Este es el elemento para el que hay que presupuestar tiempo. Un bloque de pensamiento de Fable 5.1 es válido solo contra el prompt `system` exacto, el array `tools` y el historial de mensajes que lo precedieron (pensamiento preservado). Donde se aplica la verificación, una solicitud que reproduce un bloque después de que algo de eso haya cambiado es rechazada:

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. Cuentas creadas a partir del 31 de agosto de 2026. Las cuentas más antiguas registran la discrepancia pero solo actúan sobre ella si la solicitud establece `thinking.block_binding.prefix_mismatch_behavior`. Anthropic dice que los modelos futuros lo aplicarán para todas las cuentas. Si usted distribuye una herramienta que otros ejecutan con su propia clave de API, pruebe con el campo configurado: sus usuarios en cuentas nuevas estarán sujetos a la aplicación antes que usted. Claude Code, claude.ai, Managed Agents y el SDK de Agentes mantienen el prefijo intacto para usted; Mythos 5.1 no ejecuta la verificación en absoluto.

Qué invalida cada bloque posterior: editar, reordenar o eliminar un turno anterior (incluida la eliminación de resultados de herramientas antiguos); inyectar texto por solicitud que se elimina en la siguiente solicitud; reconstruir `system` o `tools` entre solicitudes; una URL de imagen que sirva bytes diferentes más tarde. Qué mantiene los bloques válidos: historiales de solo añadir, eliminar una serie inicial de bloques de pensamiento del más antiguo al más nuevo, cambiar cualquier parámetro fuera de `system`, `tools` y `messages`, mover marcadores `cache_control` y compactación o edición de contexto del lado del servidor.

La vía de escape. Envíe el encabezado beta y configure el campo 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 no coincidente y todos los bloques de pensamiento posteriores, continúa y reporta cada descarte. Se aplica solo a esa solicitud, así que siga enviando el campo. Establezca `"error"` explícitamente en CI para que una edición del historial falle la ejecución. La guía de pensamiento preservado tiene la auditoría de tres pasos y las formas de compactación que se rompen. La tabla de soluciones:

Usted estaba haciendo Haga esto en su lugar
Editando system a mitad de sesión Congélelo al inicio de la sesión; añada un mensaje role: "system" donde el cambio se haga efectivo
Editando tools a mitad de sesión Declare el conjunto completo de antemano; envíe bloques tool_addition / tool_removal en un mensaje del sistema (beta mid-conversation-tool-changes-2026-07-01)
Inyectando un recordatorio por turno y eliminándolo Mensaje del sistema con alcance por turno con clear_at: "next_user_message" (beta mid-conversation-system-clear-at-2026-08-21), dejado en el historial
Eliminando resultados de herramientas antiguos del lado del cliente Edición de contexto del lado del servidor
Compactación del lado del cliente manteniendo los turnos recientes textualmente Compactación del lado del servidor, o un mensaje de resumen más el nuevo turno del usuario, sin reproducir nada más
Haciendo referencia a una imagen por URL a lo largo de los turnos Suba una vez a la API de Archivos y envíe el file_id

Si viene de Opus 5: cuatro elementos más

1. El pensamiento no se puede deshabilitar con ningún esfuerzo. Opus 5 aceptaba `thinking: {"type": "disabled"}` en `high` o inferior. Fable 5.1 devuelve un 400 con cualquier esfuerzo. Elimine el campo, controle el gasto con un esfuerzo menor y revise `max_tokens` para las rutas que se ejecutaron sin pensamiento.

2. La narración entre herramientas se mueve 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 de `thinking` de actualización de progreso que están vacíos bajo el `display: "omitted"` predeterminado. Si su interfaz de usuario renderizaba esa narración, configure `thinking: {"type": "adaptive", "display": "updates"}` con el encabezado `thinking-display-updates-2026-08-18`.

3. El conjunto de clasificadores es más amplio. Opus 5 ejecuta clasificadores solo para ciberseguridad. Fable 5.1 cubre `cyber`, `bio`, `frontier_llm`, `reasoning_extraction` y `general_harms`. Maneje `stop_reason: "refusal"` antes de leer `content`, y opte por `fallbacks: "default"` con el encabezado `server-side-fallback-2026-07-01`. Los objetivos permitidos son Opus 4.8 y Opus 5, por lo que una solicitud rechazada puede recurrir al modelo del que migró.

4. Precio y retención. $10 y $50 en lugar de $5 y $25, con lecturas de caché a $0.25 en lugar de $0.50. Se pierde ZDR. El desglose de precios tiene las cuentas.

Si viene de Opus 4.8 o anterior, primero aplique la migración de Opus 4.8 a Opus 5, y luego esta guía. Las integraciones escritas para Opus 4.8 a menudo truncan turnos antiguos o reconstruyen el prompt del sistema en cada solicitud, y Opus 4.8 nunca se opuso.

Cambios de comportamiento a probar

Ninguno devuelve errores, y cada uno tiene una solución de una línea en la guía de prompting. 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 la indicación de procesamiento por lotes si disminuyó. Escribe menos mensajes de progreso, así que configure `display: "updates"` y elimine las líneas de prompt que le indican que retenga los hallazgos. Con un esfuerzo `low`, llama a las herramientas de búsqueda con menos frecuencia, así que aumente el esfuerzo para los turnos que necesiten datos frescos.

Cambios recomendados

La lista de verificación de migración

Ejecutando la lista de verificación en Apidog

Cree una colección con una solicitud por cada cambio importante: una llamada forzada a `tool_choice` (espere el 400 mencionado anteriormente), una llamada a `thinking: disabled` (espere un 400) y una secuencia de dos solicitudes que edite el prompt del sistema entre turnos con el encabezado de enlace de pensamiento establecido (espere una entrada `prefix_binding_mismatch`). Añada las versiones que pasan junto a ellas con aserciones sobre `stop_reason` y un array `input_transformations` vacío, y ejecútelas en CI a través de la CLI de Apidog en cada cambio del arnés. Descargue Apidog para construirlo; el recorrido de la API tiene los cuerpos de las solicitudes.

Preguntas frecuentes

¿La migración de Fable 5 a Fable 5.1 es un cambio directo? En su mayor parte. Un `tool_choice` forzado devuelve un 400, los modelos más antiguos no pueden leer los bloques de pensamiento de Fable 5.1, y la edición de turnos anteriores invalida los bloques de pensamiento posteriores en cuentas con restricciones. Todo lo demás se mantiene.

¿Qué significa “vinculado a una conversación diferente”? Su código cambió algo antes de un bloque de pensamiento de Fable 5.1 y luego reprodujo el bloque. Deje de editar el historial, o envíe el encabezado `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 la aplican solo cuando usted configura `prefix_mismatch_behavior`.

¿Puedo mantener mis prompts de Fable 5? Sí. Anthropic dice que deberían funcionar bien sin cambios. Vuelva a ejecutar el barrido de esfuerzo y espere menos llamadas paralelas a herramientas en bucles largos.

¿Qué se rompe cuando migro de Opus 5? Todo lo de la lista de Fable 5, además de que `thinking: disabled` devuelve un 400 con cualquier esfuerzo, la narración entre herramientas se mueve a los bloques de pensamiento, el conjunto de clasificadores es más amplio, el precio se duplica y se pierde ZDR.

¿Bedrock y Google Cloud tienen los mismos cambios importantes? Los cambios del modelo, sí. Los controles de enlace de pensamiento estaban en la API de Claude y en Claude Platform en AWS en el lanzamiento y están llegando por modelo a Bedrock y Google Cloud. Sin los controles, la solución es eliminar los bloques de pensamiento y reintentarlo una vez.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs