Inicio / La API de Claude para quienes construyen
Pasar a Opus 5.5 sin romper tu código
Pasar de Claude Opus 5 a Claude Opus 5.5 no se resume en cambiar el identificador: cuatro ajustes antiguos devuelven ahora un error 400, y las notas escritas entre dos llamadas a herramientas llegan vacías mientras el código no configure thinking.display.
Claude Opus 5.5, anunciado el 22 de septiembre de 2026, se llama claude-opus-5-5 en la API. La página oficial de sus novedades recoge cuatro cambios que rompen el código que ya funciona con Claude Opus 5, y un quinto cambio que no hace fallar ninguna petición pero modifica la forma de la respuesta. Un código que solo cambia el identificador se expone a los cinco.
Cuatro peticiones que la API rechaza
- La reflexión ya no se puede desactivar. Un campo
thinkingde tipodisabled, como un presupuesto manual de tipoenabledconbudget_tokens, devuelve un error 400. El campo se omite, o toma el tipoadaptive, y la profundidad se regula conoutput_config.effort. - El forzado de herramienta desaparece. Un
tool_choicede tipoanyotooldevuelve un error 400, incluso en el punto de acceso que cuenta los tokens. Quedanauto, el valor por defecto, ynone. - Un bloque de reflexión está ligado a su modelo y a la conversación: en las cuentas creadas a partir del 31 de agosto de 2026, reenviarlo tras una modificación del prompt de sistema, de las herramientas o de un mensaje anterior devuelve un error 400.
- En la API de Claude y en Google Cloud, la herramienta
computer_20251124se rechaza en favor del conjunto de herramientascomputer_toolset_20260801.
Para sustituir el forzado, la documentación aconseja mantener auto y poner strict: true en la herramienta. Este ajuste restringe los argumentos: cuando Claude llama a la herramienta, su entrada respeta el esquema declarado. No decide que la llamada vaya a producirse. Para eso, el mensaje dice con todas las letras cuándo se aplica la herramienta. El esquema debe ser completo, y cada objeto lleva en él additionalProperties: false. Esta es una petición aceptada por Claude Opus 5 y rechazada por Claude Opus 5.5:
{
"model": "claude-opus-5",
"max_tokens": 1024,
"thinking": { "type": "disabled" },
"tools": [{
"name": "buscar_cliente",
"description": "Recupera la ficha de un cliente a partir de su número",
"input_schema": {
"type": "object",
"properties": {
"numero": { "type": "string" }
},
"required": ["numero"],
"additionalProperties": false
}
}],
"tool_choice": { "type": "tool", "name": "buscar_cliente" },
"messages": [{ "role": "user", "content": "Encuentra la ficha del cliente 4021" }]
}
La misma petición corregida para Claude Opus 5.5:
{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"output_config": { "effort": "low" },
"tools": [{
"name": "buscar_cliente",
"description": "Recupera la ficha de un cliente a partir de su número",
"input_schema": {
"type": "object",
"properties": {
"numero": { "type": "string" }
},
"required": ["numero"],
"additionalProperties": false
},
"strict": true
}],
"tool_choice": { "type": "auto" },
"messages": [{ "role": "user", "content": "Encuentra la ficha del cliente 4021. Usa la herramienta buscar_cliente." }]
}
El cambio que no devuelve ningún error
Entre dos llamadas a herramientas, Claude Opus 5 escribía notas cortas en bloques de tipo text. Claude Opus 5.5 las coloca en bloques de tipo thinking, y con el ajuste por defecto, display: "omitted", su campo thinking llega vacío. Una interfaz que mostraba esas notas se queda callada, sin el menor error. Clasificar los bloques por su campo type evita tomar un bloque de reflexión por la respuesta, pero no devuelve el texto: hace falta además configurar thinking.display. El valor "updates", en beta bajo la cabecera thinking-display-updates-2026-08-18, devuelve solo las notas; "summarized" les mezcla el resumen completo del razonamiento, sin distinción posible entre ambos.
# petición: "thinking": {"type": "adaptive", "display": "updates"}, cabecera beta thinking-display-updates-2026-08-18
for bloque in respuesta.content:
if bloque.type == "thinking" and bloque.thinking:
mostrar(bloque.thinking) # nota escrita entre dos llamadas a herramientas
elif bloque.type == "text":
mostrar(bloque.text)
Esta clasificación solo sirve para la visualización. En un bucle de herramientas, el mensaje del asistente se reenvía tal cual, bloques de reflexión incluidos, aunque estén vacíos: la API rechaza un bloque modificado, desplazado o retirado.
El esfuerzo aplicado cuando falta el campo baja un escalón, como muestra la tabla. La tarifa por token baja, como cifra la figura, pero la reflexión siempre activa se factura en tokens de salida incluso cuando su texto no se devuelve: el compromiso de la lección sobre la elección de un modelo se recalcula con el esfuerzo elegido. La declaración de herramienta de la lección sobre las herramientas es la primera afectada, y una consigna escrita para el comportamiento antiguo envejece, como muestra la lección sobre las consignas que envejecen.
Lo que cambia entre Claude Opus 5 y Claude Opus 5.5, con solo el identificador sustituido
| Ajuste o comportamiento | En Claude Opus 5 | En Claude Opus 5.5 |
|---|---|---|
| Reflexión desactivada, thinking de tipo disabled | Aceptado con esfuerzo high o inferior | Rechazado, error 400 |
| Herramienta forzada, tool_choice de tipo tool o any | Aceptado | Rechazado, error 400 |
| Herramienta computer_20251124 en la API de Claude y Google Cloud | Aceptado con la cabecera beta específica | Rechazado, error 400 |
| Esfuerzo aplicado cuando se omite el campo | high | medium |
| Notas escritas entre dos llamadas a herramientas | Bloques de tipo text | Bloques de tipo thinking, vacíos con el ajuste display por defecto |
La tarifa de Claude Opus 5.5 por millón de tokens
Un equipo migra su integración de claude-opus-5 a claude-opus-5-5 cambiando el identificador de modelo en su código. Ese código recorre los bloques de cada respuesta, retiene aquellos cuyo campo type vale text y muestra su contenido. Tras la migración, la zona de la interfaz que mostraba notas del modelo entre dos llamadas a herramientas permanece vacía durante toda la tarea, y cada llamada devuelve un código de éxito.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: El cambio de identificador modificó lo que este código encuentra para mostrar entre dos llamadas a herramientas, sin que ningún error de petición señale esa modificación.
Lo que esto no establece: No establece que el modelo haya dejado de escribir esas notas, puesto que el código descarta los bloques de tipo thinking y la situación no dice nada del ajuste display enviado.
Los tres calibrados falsos más frecuentes
- Demasiado amplio El modelo ha dejado de producir notas entre dos llamadas a herramientas, y la interfaz muestra fielmente lo que devuelve ahora.
- Demasiado estrecho El vacío puede deberse a un incidente pasajero de visualización, y la migración queda fuera de causa mientras no se repita la prueba.
- Fuera de tema El código de éxito devuelto en cada llamada muestra que las herramientas declaradas respetan el esquema exigido por el uso estricto.
- Un presupuesto manual de reflexión, tipo enabled con budget_tokens, se rechaza igual que la desactivación: el esfuerzo pasa a ser la única palanca de profundidad.
- El ajuste strict: true garantiza la forma de los argumentos de una herramienta llamada, y es el mensaje el que debe decir cuándo llamarla.
- Clasificar los bloques por tipo protege la lectura de la respuesta, y es el ajuste thinking.display el que hace legibles las notas escritas entre dos llamadas a herramientas.
- Los bloques de reflexión se reenvían intactos en un bucle de herramientas, incluidos aquellos cuyo texto está vacío.
- La guía de migración oficial enumera cada cambio por modelo de partida, y su lista para Claude Opus 5 cabe en un solo grupo.
Abre el código que llama a la API de Claude y busca en él los tres patrones que provocan un error 400: thinking de tipo disabled o enabled, tool_choice de tipo any o tool, una herramienta de tipo computer_20251124. Corrige cada uno según la guía de migración oficial. Busca después, por separado, toda lectura de la respuesta por posición como content[0].text: ese patrón no devuelve ningún error, rompe en silencio la visualización. Si tu interfaz muestra las notas escritas entre dos llamadas a herramientas, configura thinking.display en updates con la cabecera beta thinking-display-updates-2026-08-18, y muestra los bloques de reflexión que no estén vacíos.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Anthropic, novedades de Claude Opus 5.5, consultada el 2026-09-28 consultée le 2026-09-28
- Anthropic, guía de migración a Claude Opus 5.5, consultada el 2026-09-28 consultée le 2026-09-28
- Anthropic, uso estricto de las herramientas, consultado el 2026-09-28 consultée le 2026-09-28
- Anthropic, notas de versión, entrada del 22 de septiembre de 2026 consultée le 2026-09-28