Migración de Claude Haiku 4.5 a 5.5: Cinco errores 400 y los cambios silenciosos

AIHubMix9 min de lectura
Migración de Claude Haiku 4.5 a 5.5: Cinco errores 400 y los cambios silenciosos

Cambiar claude-haiku-4-5 a claude-haiku-5-5 es la parte más pequeña de esta migración. Cinco patrones de solicitud que funcionaban en Haiku 4.5 ahora devuelven un error 400, y varios cambios más no fallan ninguna solicitud pero alteran lo que recibes, lo que cuesta o cómo se comporta el modelo dentro de un agente.

Anthropic dice que los prompts existentes de Haiku 4.5 deberían funcionar bien en Haiku 5.5 sin cambios. El código de solicitud alrededor de esos prompts es otra historia. Esta publicación enumera cada problema tal como lo encontrarás: lo que verás, por qué sucede y cómo solucionarlo, seguido de una lista de verificación. La referencia autorizada es la guía de migración de Haiku 5.5 de Anthropic.

Triage: emparejar el síntoma

Lo que ves Causa Solución
400 en una solicitud con un presupuesto de pensamiento Pensamiento manual eliminado Pensamiento adaptativo más esfuerzo
400 con temperatura, top_p o top_k Parámetros de muestreo bloqueados Eliminarlos
400 cuando los mensajes terminan en un turno del asistente Prefill eliminado Terminar en un turno del usuario
400 en el uso de computadora Herramienta de computadora antigua rechazada Mover al conjunto de herramientas de computadora
400 después de editar turnos anteriores Pensamiento vinculado a la historia Mantener la historia solo para agregar
El analizador devuelve texto vacío o incorrecto Bloque de pensamiento viene primero Seleccionar bloques por tipo
Respuesta cortada o faltante El pensamiento cuenta para el límite Aumentar max_tokens o reducir esfuerzo
Los conteos de tokens y las facturas aumentan alrededor del 30% Nuevo tokenizador Recontar en el nuevo modelo
Respuesta con razón de detención de rechazo Nuevas clasificaciones de seguridad Manejarlo en tu cliente

Los primeros cinco fallan ruidosamente. El resto falla silenciosamente, lo que los hace más costosos de encontrar.

Las cinco fallas ruidosas

1. Presupuestos de pensamiento manual

Lo que verás: un 400 en cualquier solicitud que envíe thinking: {"type": "enabled", "budget_tokens": N}.

Por qué: Haiku 4.5 solo admitía pensamiento manual extendido con un presupuesto de tokens. Haiku 5.5 admite solo pensamiento adaptativo y controla la profundidad con effort.

Solución: enviar {"type": "adaptive"} o dejar thinking fuera, y elegir un nivel de esfuerzo. Donde el antiguo presupuesto era pequeño para ahorrar tokens, elige un nivel bajo.

# Antes: Haiku 4.5
thinking={"type": "enabled", "budget_tokens": 8000}

# Después: Haiku 5.5
thinking={"type": "adaptive"},
output_config={"effort": "medium"},

2. Parámetros de muestreo

Lo que verás: un 400 cuando una solicitud establece temperature, top_p o top_k.

Por qué: Haiku 5.5 acepta solo los valores predeterminados: temperature de 1 y top_p de 0.99. Cualquier otro valor de cualquiera, cualquier top_k, o enviar ambos temperature y top_p devuelve un 400, ya sea que se use pensamiento o no. Un top_p de 1 también es rechazado.

Solución: eliminar los tres. El caso común es temperature=0 en un clasificador, utilizado para obtener etiquetas estables. Reemplázalo con salida estructurada o una herramienta cuyo input sea un enum, de modo que el conjunto de etiquetas esté impuesto por el esquema en lugar de por muestreo. También verifica los envoltorios de SDK y las puertas de enlace que agregan valores de muestreo predeterminados en tu nombre.

3. Prefill del asistente

Lo que verás: un 400 cuando la última entrada en messages es un turno del asistente, incluso con el pensamiento apagado.

Por qué: el prefill no es compatible en Haiku 5.5, coincidiendo con el resto de la línea actual de Claude.

Solución: terminar messages con un turno del usuario y reemplazar el prefill por lo que era. El control de formato se convierte en salida estructurada (output_config.format). Un preámbulo prellenado se convierte en una instrucción de aviso del sistema para responder directamente. Una continuación de una respuesta interrumpida se mueve al mensaje del usuario: "Tu respuesta anterior terminó con [texto]. Continúa desde allí."

4. Uso de computadora

Lo que verás: un 400 en la API de Claude o Google Cloud cuando la solicitud declara la herramienta computer_20250124.

Por qué: en esas plataformas, Haiku 5.5 admite el uso de computadora solo a través del conjunto de herramientas más nuevo, computer_toolset_20260801.

Solución: eliminar el encabezado beta computer-use-2025-01-24, reemplazar la entrada de la herramienta con {"type": "computer_toolset_20260801"}, y actualizar el bucle del agente: despachar en cada bloque tool_use por name y toolset_name en lugar de en input.action, manejar cada bloque de este tipo en un turno, y repetir toolset_name en los resultados. Zoom está activado por defecto; si tu entorno no lo implementa, desactívalo en la configuración del conjunto de herramientas. En Amazon Bedrock, verifica las notas de compatibilidad de la herramienta de uso de computadora antes de elegir una versión. La misma familia de conjuntos de herramientas también trae el uso del navegador, que Haiku 4.5 nunca tuvo.

5. Edición de turnos anteriores

Lo que verás: un 400 cuando una solicitud envía de vuelta un bloque de pensamiento después de que algo antes de él cambió: el aviso del sistema, la lista de herramientas o un mensaje anterior.

Por qué: un bloque de pensamiento de Haiku 5.5 permanece válido solo mientras todo lo enviado antes de él no cambie. La verificación se aplica por defecto para cuentas creadas el 31 de agosto de 2026 o después, y en cuentas más antiguas solo cuando una solicitud opta por ello.

Solución: mantener las conversaciones solo para agregar. Los culpables comunes son un aviso del sistema con una marca de tiempo, una lista de herramientas que crece cuando se conecta un complemento, truncamiento del lado del cliente y recordatorios inyectados en la historia y eliminados en el siguiente turno. Para instrucciones por turno, Haiku 5.5 admite mensajes del sistema dentro de messages, sin encabezado beta, que añaden contexto sin editar lo que vino antes.

Las fallas silenciosas

Los bloques de pensamiento vienen primero. El pensamiento está activado por defecto, por lo que una respuesta puede comenzar con uno o más bloques thinking. El código que lee response.content[0].text como la respuesta se rompe o devuelve texto vacío. Selecciona bloques por type.

El texto de pensamiento está vacío por defecto. Haiku 4.5 devolvía pensamiento resumido. Haiku 5.5 devuelve bloques thinking con un campo de texto vacío y solo una firma. Si tu interfaz de usuario mostraba resúmenes de razonamiento, establece thinking: {"type": "adaptive", "display": "summarized"}. De cualquier manera, pasa los bloques de pensamiento de vuelta sin cambios con los resultados de la herramienta; un serializador que elimina bloques vacíos los quita.

max_tokens ahora tiene que cubrir el pensamiento. Un límite diseñado para una respuesta corta puede agotarse por el pensamiento, terminando la respuesta con stop_reason: "max_tokens" antes de cualquier texto. Aumenta el límite o reduce el esfuerzo.

El mismo texto es aproximadamente un 30% más en tokens. El nuevo tokenizador cambia los campos usage, los resultados de count_tokens, los presupuestos de contexto y cualquier max_tokens ajustado para Haiku 4.5. También mueve la línea de precio de 100K tokens a aproximadamente 77K tokens como Haiku 4.5 los contaba. Recontar los prompts reales con el modelo configurado en claude-haiku-5-5 antes de confiar en un panel de costos.

El esfuerzo predeterminado es medio. Haiku 4.5 no tenía configuración de esfuerzo. Haiku 5.5 tiene como predeterminado medium, que puede ser más pensamiento del que necesita una ruta simple. Establecerlo explícitamente.

Los bloques de pensamiento permanecen con la cuenta que los creó. Si tu servicio reproduce conversaciones almacenadas a través de una cuenta API diferente, los bloques de pensamiento de Haiku 5.5 se eliminan silenciosamente y la solicitud se ejecuta sin ese razonamiento. Reproduce cada conversación a través de la cuenta que la produjo.

El nivel de prioridad no se transfiere. Haiku 5.5 no admite el nivel de prioridad, así que planifica la capacidad por separado si dependes de él para Haiku 4.5.

Las listas de puertas de enlace pueden diferir. La página de Haiku 5.5 en AIHubMix actualmente lista una longitud de contexto de 200K, mientras que Anthropic especifica 1M. Confirma el límite en la ruta que utilizas antes de migrar cargas de trabajo de prompts largos.

Cambios de comportamiento que importan para agentes con permisos reales

Los rechazos son nuevos, y nada los captura por ti. Haiku 5.5 ejecuta clasificadores de seguridad en cuatro categorías: cibernética, biológica, desarrollo de LLM en frontera y daños generales. Un rechazo regresa como un HTTP 200 normal con stop_reason: "refusal" y una categoría en stop_details. A diferencia de Sonnet 5.5 y Opus 5.5, Haiku 5.5 no tiene un retroceso del lado del servidor: una lista de modelos de retroceso devuelve un 400, y el modo de retroceso predeterminado deja la solicitud rechazada. Verifica stop_reason antes de leer content, y decide en tu propio código si reformular, escalar a un modelo más grande o detenerte. Según el post de lanzamiento, las salvaguardias cibernéticas permiten un rango más amplio de trabajo defensivo que las de Sonnet 5.5 pero bloquean las pruebas de penetración.

El texto del usuario dentro de los resultados de la herramienta puede ser ignorado. Haiku 5.5 está entrenado para resistir la inyección de prompts a través de los resultados de la herramienta. Si tu arnés entrega un mensaje que el usuario escribió en medio de la tarea dentro de un bloque tool_result, el modelo puede tratarlo como no confiable e ignorarlo. Coloca la entrada del usuario en medio del turno en un bloque de texto después del último resultado de la herramienta, y mantén las notificaciones del arnés en un mensaje del sistema separado.

A bajo esfuerzo, los agentes pueden detenerse temprano o saltar verificaciones. Con un aviso del sistema de agente de codificación largo en low, Haiku 5.5 a veces devuelve la tarea antes de que esté terminada, y en low y medium a veces informa un cambio de código como hecho sin ejecutar una prueba. La guía de prompts de Haiku 5.5 de Anthropic tiene instrucciones breves para ambos. Para un agente que puede escribir archivos o ejecutar comandos, un "hecho" no verificado es el más peligroso de los dos.

Forzar una herramienta omite el pensamiento. La elección de tool_choice forzada sigue siendo aceptada, pero el modelo luego llama a la herramienta sin pensar primero. Para herramientas con efectos secundarios, auto más una instrucción clara permite que el modelo razone antes de actuar.

Las herramientas de búsqueda necesitan la fecha de hoy. Cuando Haiku 5.5 tiene una herramienta de búsqueda, dale la fecha actual en el aviso del sistema o en la descripción de la herramienta. En las pruebas de Anthropic, esto fundamentó las respuestas en resultados recientes.

Una solicitud migrada a través de AIHubMix

Un clasificador de Haiku 4.5 que usaba temperature=0, un presupuesto de pensamiento y un { prellenado para JSON, reescrito para Haiku 5.5 en el punto final nativo de AIHubMix Claude:

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["AIHUBMIX_API_KEY"],
    base_url="https://aihubmix.com",
)

r = client.messages.create(
    model="claude-haiku-5-5",
    max_tokens=2000,                     # espacio para pensar más el JSON
    output_config={
        "effort": "low",                 # reemplaza el antiguo presupuesto de pensamiento
        "format": {                      # reemplaza el prefill y temperature=0
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "label": {"type": "string", "enum": ["billing", "bug", "other"]}
                },
                "required": ["label"],
                "additionalProperties": False,
            },
        },
    },
    messages=[{"role": "user", "content": "Ticket: 'Me cobraron dos veces por octubre.'"}],
)

if r.stop_reason == "refusal":
    raise RuntimeError(f"rechazado: {r.stop_details}")
text = next(b.text for b in r.content if b.type == "text")
print(text)

Vale la pena confirmar si una puerta de enlace reenvía los campos de output_config y los nuevos encabezados beta sin cambios en tu primera ejecución de prueba. Cuando la ruta migrada pase tus evaluaciones, la lista de modelos de AIHubMix facilita apuntar el mismo código a Sonnet 5.5 para cualquier tipo de tarea que siga fallando en Haiku.

Lista de verificación de migración

  1. Cambiar el ID del modelo a claude-haiku-5-5, sin sufijo de fecha.
  2. Reemplazar cada presupuesto de pensamiento con pensamiento adaptativo y un nivel de esfuerzo explícito.
  3. Eliminar temperatura, top_p y top_k, incluidos los valores predeterminados añadidos por envoltorios.
  4. Reemplazar los prefills del asistente con salida estructurada, instrucciones del sistema o continuaciones del turno del usuario.
  5. Mover el uso de computadora al conjunto de herramientas de computadora y actualizar el bucle del agente.
  6. Hacer que el historial de conversación sea solo para agregar si se reproducen bloques de pensamiento.
  7. Leer el contenido de la respuesta por tipo de bloque y mantener los bloques de pensamiento vacíos al reproducir.
  8. Aumentar max_tokens en rutas de respuesta corta, o reducir esfuerzo.
  9. Manejar la razón de detención de rechazo antes de leer el contenido; no configurar retrocesos del lado del servidor.
  10. Recontar tokens de prompt en el nuevo modelo y volver a establecer los paneles de costos.
  11. Verificar qué prompts ahora cruzan 100K tokens y recortarlos o dividirlos.
  12. Establecer la visualización en resumida si los usuarios vieron resúmenes de razonamiento.
  13. Entregar la entrada del usuario en medio del turno fuera de los resultados de la herramienta.
  14. Dar a los agentes habilitados para búsqueda la fecha de hoy.
  15. Revisar los límites de tasa, las necesidades del nivel de prioridad y el límite de contexto de tu puerta de enlace antes de mover volumen.

FAQ

¿Mis prompts de Haiku 4.5 funcionarán en Haiku 5.5?
Anthropic dice que los prompts existentes deberían funcionar bien sin cambios. Los parámetros de solicitud alrededor de ellos son los que fallan: presupuestos de pensamiento, configuraciones de muestreo, prefills y la antigua herramienta de uso de computadora devuelven errores.

¿Por qué falla mi clasificador ahora que eliminé la temperatura 0?
No debería fallar, pero las etiquetas pueden variar más. Usa salida estructurada o una herramienta con un campo enum para que las etiquetas permitidas sean impuestas por el esquema. Eso es más confiable que la temperatura 0 jamás fue.

¿Puedo seguir desactivando el pensamiento?
Sí, a bajo, medio y alto esfuerzo. En xhigh y max, desactivar el pensamiento devuelve un error. Anthropic recomienda un nivel de esfuerzo más bajo en su lugar, porque el modelo puede omitir el pensamiento en solicitudes simples por sí mismo.

¿Qué debería hacer mi código cuando Haiku 5.5 rechaza?
Verifica la razón de detención antes de leer el contenido. Haiku 5.5 no tiene retroceso del lado del servidor, así que tu código decide si reformular, enviar la solicitud a un modelo más grande o devolver un error al usuario.

¿Por qué aumentó mi uso de tokens después de migrar?
Dos razones. El nuevo tokenizador cuenta aproximadamente un 30% más de tokens para el mismo texto, y el pensamiento está activado por defecto, añadiendo tokens de salida. Reduce el esfuerzo y vuelve a contar tus prompts en el nuevo modelo.

¿Necesito cambiar algo para la caché de prompts?
Normalmente no, y se vuelve más fácil: el prompt mínimo en caché baja de 4,096 a 512 tokens, y los bloques de pensamiento de turnos anteriores permanecen en el prefijo en caché por defecto. Evita editar turnos anteriores, lo que ahora invalida los bloques de pensamiento así como la caché.

¿Puede una conversación pasar de Haiku 5.5 a un modelo más grande?
Sí. Sonnet 5.5 y Opus 5.5 leen los bloques de pensamiento de Haiku 5.5, por lo que una conversación escalada a cualquiera de ellos mantiene su razonamiento anterior. Para otros modelos objetivo, verifica primero la documentación de pensamiento preservado.

Sigue leyendo: la serie Claude Haiku 5.5

Fuentes