Accueil / L'API Claude pour ceux qui construisent
Passer à Opus 5.5 sans casser votre code
Passer de Claude Opus 5 à Claude Opus 5.5 ne se résume pas à changer l'identifiant : quatre réglages anciens renvoient désormais une erreur 400, et les notes écrites entre deux appels d'outils arrivent vides tant que le code ne règle pas thinking.display.
Claude Opus 5.5, annoncé le 22 septembre 2026, s'appelle claude-opus-5-5 dans l'API. La page officielle de ses nouveautés recense quatre changements cassants pour un code qui tourne déjà sur Claude Opus 5, et un cinquième changement qui ne fait échouer aucune requête mais modifie la forme de la réponse. Un code qui ne change que l'identifiant s'expose aux cinq.
Quatre requêtes que l'API refuse
- La réflexion ne se coupe plus. Un champ
thinkingde typedisabled, comme un budget manuel de typeenabledavecbudget_tokens, renvoie une erreur 400. Le champ s'omet, ou prend le typeadaptive, et la profondeur se règle paroutput_config.effort. - Le forçage d'outil disparaît. Un
tool_choicede typeanyoutoolrenvoie une erreur 400, y compris sur le point d'accès qui compte les jetons. Restentauto, la valeur par défaut, etnone. - Un bloc de réflexion est lié à son modèle et à la conversation : sur les comptes créés à partir du 31 août 2026, le rejouer après une modification du prompt système, des outils ou d'un message antérieur renvoie une erreur 400.
- Sur l'API Claude et Google Cloud, l'outil
computer_20251124est refusé au profit du jeu d'outilscomputer_toolset_20260801.
Pour remplacer le forçage, la documentation conseille de garder auto et de poser strict: true sur l'outil. Ce réglage contraint les arguments : quand Claude appelle l'outil, son entrée respecte le schéma déclaré. Il ne décide pas que l'appel aura lieu. Pour cela, le message dit en toutes lettres quand l'outil s'applique. Le schéma doit être complet, et chaque objet y porte additionalProperties: false. Voici une requête acceptée par Claude Opus 5 et refusée par Claude Opus 5.5 :
{
"model": "claude-opus-5",
"max_tokens": 1024,
"thinking": { "type": "disabled" },
"tools": [{
"name": "chercher_client",
"description": "Retrouve la fiche d'un client à partir de son numéro",
"input_schema": {
"type": "object",
"properties": {
"numero": { "type": "string" }
},
"required": ["numero"],
"additionalProperties": false
}
}],
"tool_choice": { "type": "tool", "name": "chercher_client" },
"messages": [{ "role": "user", "content": "Trouve la fiche du client 4021" }]
}
La même requête corrigée pour Claude Opus 5.5 :
{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"output_config": { "effort": "low" },
"tools": [{
"name": "chercher_client",
"description": "Retrouve la fiche d'un client à partir de son numéro",
"input_schema": {
"type": "object",
"properties": {
"numero": { "type": "string" }
},
"required": ["numero"],
"additionalProperties": false
},
"strict": true
}],
"tool_choice": { "type": "auto" },
"messages": [{ "role": "user", "content": "Trouve la fiche du client 4021. Utilise l'outil chercher_client." }]
}
Le changement qui ne renvoie aucune erreur
Entre deux appels d'outils, Claude Opus 5 écrivait de courtes notes dans des blocs de type text. Claude Opus 5.5 les range dans des blocs de type thinking, et au réglage par défaut, display: "omitted", leur champ thinking arrive vide. Une interface qui affichait ces notes se tait, sans la moindre erreur. Trier les blocs par leur champ type évite de prendre un bloc de réflexion pour la réponse, mais ne rend pas le texte : il faut en plus régler thinking.display. La valeur "updates", en bêta sous l'en-tête thinking-display-updates-2026-08-18, renvoie les notes seules ; "summarized" y mêle le résumé complet du raisonnement, sans distinction possible entre les deux.
# requête : "thinking": {"type": "adaptive", "display": "updates"}, en-tête bêta thinking-display-updates-2026-08-18
for bloc in reponse.content:
if bloc.type == "thinking" and bloc.thinking:
afficher(bloc.thinking) # note écrite entre deux appels d'outils
elif bloc.type == "text":
afficher(bloc.text)
Ce tri ne sert qu'à l'affichage. Dans une boucle d'outils, le message de l'assistant se renvoie tel quel, blocs de réflexion compris, même vides : l'API rejette un bloc modifié, déplacé ou retiré.
L'effort appliqué quand le champ manque descend d'un cran, comme le montre le tableau. Le tarif par jeton baisse, comme le chiffre la figure, mais la réflexion toujours active se facture en jetons de sortie même quand son texte n'est pas renvoyé : le compromis de la leçon sur le choix d'un modèle se recalcule à l'effort choisi. La déclaration d'outil de la leçon sur les outils est la première touchée, et une consigne écrite pour l'ancien comportement vieillit, comme le montre la leçon sur les consignes qui vieillissent.
Ce qui change entre Claude Opus 5 et Claude Opus 5.5, identifiant remplacé seul
| Réglage ou comportement | Sur Claude Opus 5 | Sur Claude Opus 5.5 |
|---|---|---|
| Réflexion désactivée, thinking de type disabled | Accepté à l'effort high ou en dessous | Refusé, erreur 400 |
| Outil forcé, tool_choice de type tool ou any | Accepté | Refusé, erreur 400 |
| Outil computer_20251124 sur l'API Claude et Google Cloud | Accepté avec l'en-tête bêta dédié | Refusé, erreur 400 |
| Effort appliqué quand le champ est omis | high | medium |
| Notes écrites entre deux appels d'outils | Blocs de type text | Blocs de type thinking, vides au réglage display par défaut |
Le tarif de Claude Opus 5.5 par million de jetons
Une équipe migre son intégration de claude-opus-5 vers claude-opus-5-5 en changeant l'identifiant de modèle dans son code. Ce code parcourt les blocs de chaque réponse, retient ceux dont le champ type vaut text et affiche leur contenu. Après la migration, la zone de l'interface qui affichait des notes du modèle entre deux appels d'outils reste vide pendant toute la tâche, et chaque appel renvoie un code de succès.
Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.
Ce que cela établit : Le changement d'identifiant a modifié ce que ce code trouve à afficher entre deux appels d'outils, sans qu'aucune erreur de requête ne signale cette modification.
Ce que cela n’établit pas : Elle n'établit pas que le modèle a cessé d'écrire ces notes, puisque le code écarte les blocs de type thinking et que la situation ne dit rien du réglage display envoyé.
Les trois calibrages faux les plus courants
- Trop large Le modèle a cessé de produire des notes entre deux appels d'outils, et l'interface montre fidèlement ce qu'il renvoie désormais.
- Trop étroit Le vide peut venir d'un incident passager d'affichage, et la migration reste hors de cause tant que l'essai n'a pas été répété.
- À côté Le code de succès renvoyé à chaque appel montre que les outils déclarés respectent le schéma exigé par l'usage strict.
- Un budget manuel de réflexion, type enabled avec budget_tokens, est refusé au même titre que la désactivation : l'effort devient le seul levier de profondeur.
- Le réglage strict: true garantit la forme des arguments d'un outil appelé, et c'est le message qui doit dire quand l'appeler.
- Trier les blocs par type protège la lecture de la réponse, et c'est le réglage thinking.display qui rend lisibles les notes écrites entre deux appels d'outils.
- Les blocs de réflexion se renvoient intacts dans une boucle d'outils, y compris ceux dont le texte est vide.
- Le guide de migration officiel liste chaque changement par modèle de départ, et sa liste pour Claude Opus 5 tient en un seul groupe.
Ouvrez le code qui appelle l'API Claude et cherchez-y les trois motifs qui provoquent une erreur 400 : thinking de type disabled ou enabled, tool_choice de type any ou tool, un outil de type computer_20251124. Corrigez chacun selon le guide de migration officiel. Cherchez ensuite, séparément, toute lecture de la réponse par position comme content[0].text : ce motif ne renvoie aucune erreur, il casse silencieusement l'affichage. Si votre interface affiche les notes écrites entre deux appels d'outils, réglez thinking.display sur updates avec l'en-tête bêta thinking-display-updates-2026-08-18, et affichez les blocs de réflexion non vides.
Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.
- Anthropic, nouveautés de Claude Opus 5.5, consultée le 2026-09-28 consultée le 2026-09-28
- Anthropic, guide de migration vers Claude Opus 5.5, consulté le 2026-09-28 consultée le 2026-09-28
- Anthropic, usage strict des outils, consulté le 2026-09-28 consultée le 2026-09-28
- Anthropic, notes de version, entrée du 22 septembre 2026 consultée le 2026-09-28