Conclusión primero: Sonnet 5.5 mantiene cada línea de la lista de precios y cambia el contrato de la petición. El 28 de septiembre de 2026 Anthropic publicó Claude Sonnet 5.5 (claude-sonnet-5-5). Entrada / salida se quedan en $2 / $10; las lecturas de caché se quedan en $0.20. Anthropic dice que la salida es un 30%+ más rápida y que la mayoría del trabajo cuesta unos 30% menos — ese ahorro son tokens por tarea, no el precio de lista. Lo que rompe producción son los interruptores antiguos copiados de Sonnet 5: thinking: {"type": "disabled"} devuelve 400; los valores any y tool de tool_choice devuelven 400; un temperature, top_p o top_k que no sea el valor por defecto también es 400. La trampa más silenciosa es la extracción JSON: en una petición sin herramientas, between_tools significa que el modelo no piensa primero, y Structured Output igual se tuerce. La página de prompting de Anthropic archiva ese caso bajo «Reasoning tasks with JSON output».
Escrito a fecha de 29 de septiembre de 2026, contra la página de modelo, el «What's new» y la guía de migración aún vigentes ese día. Este sitio ya tiene por qué Opus 5.5 no te deja forzar JSON con tool_choice (24 de septiembre). Este texto no reescribe esos cuatro fallos. Solo responde qué capa extra tiene que cambiar una pipeline JSON de Sonnet 5 → 5.5. Haiku 5.5 sigue en «las próximas semanas». Este artículo no toma prestada esa fecha.
Qué se publicó el 28 de septiembre
Claude Sonnet 5.5 es el segundo modelo de la familia Claude 5.5. Posicionamiento oficial: el punto medio entre velocidad e inteligencia; coding cotidiano, corrección de bugs, documentos y hojas de cálculo. El ID es claude-sonnet-5-5 en la Claude API, Google Cloud, Microsoft Foundry y Claude Platform on AWS; Bedrock usa anthropic.claude-sonnet-5-5. La retirada no es antes del 28 de septiembre de 2027. El tokenizador coincide con Sonnet 5, así que el mismo texto produce los mismos recuentos de tokens.
Precios por millón de tokens: $2 de entrada, $10 de salida, $2.50 por escritura de caché de 5 minutos, $4 por escritura de caché de 1 hora, $0.20 por lectura de caché. El batch va a mitad de precio. El contexto es 1M; la salida máxima síncrona es 128K. Message Batches puede llegar a 300K con output-300k-2026-03-24. El prompt mínimo cacheable baja de los 1.024 tokens de Sonnet 5 a 512. El effort por defecto es high — Opus 5.5 usa medium por defecto. Si omites effort, la petición corre en high. Eso no es compatibilidad silenciosa con Sonnet 5.
El lanzamiento presenta Sonnet 5.5 como el complemento más rápido y más barato de Opus 5.5. Este artículo no elige un modelo por un ranking. Lo que importa es que la lista de precios se quedó quieta mientras se movieron thinking, tool_choice y el contrato de extracción JSON.
Cinco fallos duros, una tabla
La documentación lista las peticiones que se vuelven 400 en 5.5. Las tres primeras comparten raíz con Opus 5.5 y Fable 5.1. El recambio de la primera fila es distinto:
| Petición antigua (Sonnet 5) | En 5.5 | Qué enviar en su lugar |
|---|---|---|
thinking: {"type": "disabled"} o enabled más budget_tokens | 400 invalid_request_error apuntando a between_tools | Apaga el thinking previo con {"type": "between_tools"}; para razonar, omite thinking o envía adaptive |
tool_choice: {"type": "any"} o {"type": "tool", "name": "..."} | 400; el endpoint de recuento de tokens aplica la misma comprobación | auto (o none) más strict: true, o Structured Output |
| Reenviar un bloque thinking después de editar system / tools / un mensaje anterior | 400 por defecto en cuentas creadas después del 31 de agosto de 2026 | Mantén la conversación en solo-append; cambia instrucciones con un mensaje system a mitad de conversación |
computer_20251124 en la Claude API o Google Cloud | 400 | computer_toolset_20260801; Bedrock sigue aceptando la herramienta antigua |
| Un advisor puesto en Opus 4.8 / 4.7 o Sonnet 5 | 400 | Usa un advisor que 5.5 acepte (incluidos Opus 5.5, Fable / Mythos 5.1, o 5.5 mismo) |
Un cambio más no falla la petición pero se calla: las notas más largas entre llamadas a herramientas llegan como bloques thinking. Con el display: "omitted" por defecto el texto está vacío. Una UI que emitía esas frases como barra de progreso se queda en silencio. Para el progreso bajo thinking adaptativo, pon thinking.display (updates necesita una cabecera beta). between_tools devuelve el texto de resumen, y ese tipo rechaza un campo display.
El muestreo ya no es un mando. Un temperature, top_p o top_k que no sea el valor por defecto es un 400. Las peticiones que bajaban la temperatura para «estabilizar el JSON» ahora tienen que estabilizar el schema.
disabled desaparece; between_tools es el suelo
Sonnet 5 apagaba thinking con disabled. En 5.5 esa línea es un 400 cuyo mensaje apunta a between_tools. El ajuste más bajo queda así:
{
"model": "claude-sonnet-5-5",
"thinking": { "type": "between_tools" },
"output_config": { "effort": "high" }
}
between_tools no necesita cabecera beta y se acepta en cada plataforma que ofrece el modelo. Solo apaga el thinking previo. Las notas de progreso más largas entre llamadas a herramientas siguen volviendo como bloques thinking. Devuélvelos sin modificar; el modelo recibe la nota completa, no el resumen. Sin herramientas, la respuesta suele ser solo texto — la forma antigua de disabled.
Los límites son estrictos. Se acepta en low / medium / high. Emparéjalo con xhigh o max y recibes 400. Añade display, budget_tokens o block_binding y también recibes 400. Un cambio a mitad de conversación de output_config.effort es un 400 — el effort por turno necesita thinking adaptativo. Cuando el fallback del servidor cae en Sonnet 5, between_tools se traduce allí a disabled.
Así que 5.5 no obliga a que thinking se quede a profundidad máxima. Quita el interruptor antiguo disabled. Una vez que ese interruptor desaparece, quien quiera thinking apagado tiene que enviar un tipo nuevo. Quien quiera JSON estable a menudo no debería apagarlo — ver la siguiente sección.
Para extraer JSON sin herramientas, no apagues thinking
La página de prompting de Anthropic tiene su propia sección para esto: dale a Sonnet 5.5 una tarea JSON que necesite unos pasos (totales, una regla, un ranking) y en low / medium a menudo responde sin pensar primero. Con Structured Output, el texto visible solo puede ser JSON, así que el trabajo solo puede ocurrir en thinking. Si te saltas thinking, la precisión cae.
El orden documentado es:
- Usa Structured Output cuando puedas. El cuerpo es entonces un objeto que coincide con el schema. No haces
JSON.parsede la prosa del chat. Ver qué es Structured Output. - Usa thinking adaptativo, no
between_tools. En una petición sin herramientas,between_toolssignifica no pensar primero. Una línea de «piensa antes de responder» en el prompt no tiene efecto ahí. Separar «respuesta, luego JSON» en dos peticiones puntuó bien en sus tests y costó demasiada latencia y tokens para ser un valor por defecto. - Termina el system prompt con
Think the problem through before you answer.Enhigh, la precisión se acerca axhighpor un extra modesto de tokens de salida. Enlow/mediumtambién sube, a un coste de tokens mayor. - Deja margen en
max_tokenspara thinking. Con Structured Output enlow/medium, el modelo a veces piensa hasta el tope. Trata una respuesta cuyostop_reasonesmax_tokenscomo un fallo aunque el texto sea JSON válido, y reintenta.
Sin Structured Output, el modelo a menudo trabaja en la prosa y pone el JSON al final. Parsear toda la respuesta falla. El fallback documentado: lee solo bloques text, prueba un parse desde cada { o [, y quédate con el último valor completo. No tomes el tramo desde el primer { hasta el último } — un borrador puede quedar en medio. Ver por qué JSON.parse falla. Eso es un fallback, no un contrato.
Las herramientas forzadas son un 400, igual que en Opus 5.5
La familia 5.5 comparte el mismo error:
tool_choice: type "tool" and "any" are not supported for this model.
El recambio sigue siendo: deja tool_choice en auto, pon strict: true en la herramienta y clava los parámetros con JSON Schema. Pon la respuesta final en Structured Output. Si quieres que el modelo llame a una herramienta en vez de responder en prosa, di en el prompt cuándo aplica la herramienta. El prompt influye qué herramienta elige auto. No sustituye el schema. La versión larga está en por qué Opus 5.5 no te deja forzar JSON con tool_choice y por qué Tool Calling depende de JSON Schema.
5.5 añade una nota de tolerancia: a veces llama a una herramienta con las mayúsculas mal, o un parámetro con un nombre ligeramente distinto. No lo trates como fatal. Acepta la llamada cuando el emparejamiento sea único, o devuelve is_error: true con el nombre exacto. Mantén el schema strict. El emparejamiento de nombres puede ir un punto más flojo.
La lista de precios no se movió; el effort por defecto es high
Los precios de lista coinciden con Sonnet 5. El «unos 30% más barato» oficial son menos tokens por tarea, no el menú. Los análisis independientes ya muestran el otro lado: cuando una tarea no acota su propia salida, el modelo nuevo puede costar más. Pasa el mismo schema por una pasada de extracción antes de cambiar el enrutado.
Los niveles de effort están recalibrados. El mismo high no es la misma cantidad de thinking que en Sonnet 5. La documentación empieza en high para el trabajo cotidiano; medium para coding agentico bien especificado y bucles de herramientas; medium o low para chat y trabajo sensible a la latencia. Cambiar el effort de nivel superior rompe la caché del prompt. Los cambios por turno necesitan effort por mensaje (beta) bajo thinking adaptativo. between_tools no deja mover effort a mitad de conversación.
No mezcles los valores por defecto con Opus 5.5: ese modelo usa medium por defecto; Sonnet 5.5 usa high. Cambia solo el string del modelo y saltan tanto la factura como la latencia. Los bloques thinking tampoco viajan libremente. 5.5 puede leer bloques de Sonnet 5, Opus 4.8, Haiku 4.5 y modelos anteriores. No lee Opus 5, Opus 5.5, Fable ni Mythos. Ningún otro modelo lee bloques de Sonnet 5.5. Pasa una conversación de Opus 5.5 a Sonnet 5.5 y la API descarta el razonamiento. La petición sigue devolviendo 200; los bloques descartados no se facturan.
Temperatura, caché, computer use, advisor
Un temperature / top_p / top_k que no sea el valor por defecto es un 400. Las pipelines que «apretaban el JSON» con muestreo ahora tienen que apretar el schema. El suelo de caché es 512 tokens, así que los system prompts cortos cachean con más facilidad. Cambiar el effort de nivel superior sigue invalidando esa caché.
En la Claude API y Google Cloud, computer use solo acepta computer_toolset_20260801. Bedrock sigue aceptando computer_20251124. La herramienta advisor (beta) no deja que un ejecutor 5.5 se empareje con Opus 4.8 / 4.7 o Sonnet 5. Los advisors que 5.5 acepta devuelven bloques advisor_redacted_result cifrados; el cliente no puede leer el texto del consejo.
Para cambiar un schema de herramienta a mitad de conversación, inline-tools-2026-09-15 puede llevar una definición completa en un mensaje system a mitad de conversación, sin editar el array tools de nivel superior. Es la misma regla que el thinking ligado al prefijo: añade historial. Compaction (compact-2026-09-04) puede sustituir un resumen firmado y mantener el thinking válido, bajo las condiciones de la página de Compaction de Anthropic.
Cinco comprobaciones antes de cambiar el string del modelo
- Busca
thinking. Quitadisabledybudget_tokens. Para apagar el thinking previo, envíabetween_toolsenhigho por debajo. Para tareas de razonamiento JSON, usa thinking adaptativo. - Busca
tool_choice. Sustituye cadaany/toolnombrado porauto. Activastricty aprietainput_schema. - Busca
temperature/top_p/top_k. Borra los que no sean el valor por defecto. Estabiliza el JSON con el schema, no con el muestreo. - Pon
effortde forma explícita. No heredes el high por defecto. El enrutado compartido con Opus 5.5 tiene dos valores por defecto distintos. - Replay y caché. En cuentas posteriores al 31 de agosto, no edites tools ni system en el historial. Si vienes de Opus 5.5, espera que se descarten los bloques thinking.
Inspecciona el schema con herramientas JSON locales
Antes de poner el modelo en claude-sonnet-5-5, extiende tres textos en el navegador: el input_schema antiguo, un objeto arguments que solías obtener con disabled o un tool_choice forzado, y el schema que piensas poner en Structured Output.
- Validador JSON — ¿es legal la gramática? Si tienes un schema, comprueba campos required y claves de más juntos.
- Formateador JSON — expande una definición de herramienta de una línea y mira si
additionalPropertiesestá puesto. - JSON Diff — compara una muestra con thinking apagado con el objeto más pequeño que permite el schema strict.
Nada sale del navegador. Estabiliza el contrato y luego cambia el string del modelo. 5.5 cambiará effort y rechazará disabled y el tool_choice antiguo. Tus nombres de campo y la lista required no deberían aflojarse con él.
FAQ
¿Puedo publicar solo cambiando el modelo a claude-sonnet-5-5?
No como valor por defecto. Si la petición sigue teniendo thinking.disabled, budget_tokens, tool_choice any/tool, una temperatura que no sea la de por defecto, o computer_20251124 en la Claude API, recibes 400.
¿Es between_tools el nuevo disabled?
Solo en peticiones sin herramientas. Con herramientas, el progreso sigue llegando como bloques thinking. Rechaza display / budget_tokens / cambios de effort a mitad de conversación, y no se puede emparejar con xhigh o max. No lo uses para tareas de razonamiento JSON.
Si la lista de precios no se movió, ¿por qué se movería la factura?
El effort por defecto es high, y los niveles se recalibraron. El ahorro oficial del 30% son tokens por tarea, no el precio de lista. Cuando una tarea no acota la salida, los independientes han visto una factura más alta. Pasa el mismo schema tú mismo.
¿Es lo mismo que Opus 5.5 el 22 de septiembre?
Las herramientas forzadas, los bloques thinking ligados y la herramienta computer antigua comparten raíz. Lo que añade Sonnet 5.5 es disabled→between_tools, effort high por defecto, muestreo bloqueado, emparejamientos de advisor, y «no apagues thinking para JSON sin herramientas». Migra las dos líneas por separado.
Sin Structured Output, ¿cómo sigo recogiendo JSON?
Lee solo bloques text y parsea el último valor JSON completo. No parsees toda la respuesta. Reintenta cuando stop_reason sea max_tokens. Eso es un fallback. Prefiere un schema cuando puedas.
¿Ha salido ya Haiku 5.5?
A fecha de 29 de septiembre de 2026 la línea oficial sigue siendo «en las próximas semanas». No asignes por adelantado estos breaking changes a un escalón que aún no ha salido.
Resumen
Sonnet 5.5 deja la lista de precios quieta y convierte disabled en un 400. Copia una petición de Sonnet 5 y tienes un fallo duro en thinking, tool_choice y temperatura. Para apagar el thinking previo, envía between_tools. Para JSON estable, usa thinking adaptativo más Structured Output, o auto más strict más JSON Schema. En una tarea de razonamiento sin herramientas, apagar thinking es una caída de precisión medida.
Aplana el schema, un objeto arguments de muestra y el contrato strict en un validador local primero, luego cambia a claude-sonnet-5-5. El precio de lista puede quedarse. El contrato de campos no debería aflojarse con él.