Changer claude-haiku-4-5 en claude-haiku-5-5 est la plus petite partie de cette migration. Cinq modèles de requêtes qui fonctionnaient sur Haiku 4.5 renvoient désormais une erreur 400, et plusieurs autres changements ne provoquent pas d'erreur de requête mais modifient ce que vous obtenez, ce que cela coûte, ou comment le modèle se comporte à l'intérieur d'un agent.
Anthropic affirme que les invites existantes de Haiku 4.5 devraient bien fonctionner sur Haiku 5.5 sans modifications. Le code de requête autour de ces invites est une autre histoire. Cet article énumère chaque problème tel que vous le rencontrerez : ce que vous verrez, pourquoi cela se produit, et comment le résoudre, suivi d'une liste de contrôle. La référence autorisée est le guide de migration Haiku 5.5 d'Anthropic.
Triage : correspondre au symptôme
| Ce que vous voyez | Cause | Solution |
|---|---|---|
| 400 sur une requête avec un budget de réflexion | Réflexion manuelle supprimée | Réflexion adaptative plus effort |
| 400 avec température, top_p, ou top_k | Paramètres d'échantillonnage verrouillés | Supprimez-les |
| 400 lorsque les messages se terminent par un tour d'assistant | Pré-remplissage supprimé | Terminez par un tour d'utilisateur |
| 400 sur l'utilisation de l'ordinateur | Ancien outil informatique rejeté | Passez à l'ensemble d'outils informatiques |
| 400 après avoir modifié des tours précédents | Réflexion liée à l'historique | Conservez l'historique en ajoutant uniquement |
| Le parseur renvoie du texte vide ou incorrect | Le bloc de réflexion vient en premier | Sélectionnez les blocs par type |
| Réponse coupée ou manquante | La réflexion compte pour le plafond | Augmentez max_tokens ou réduisez l'effort |
| Les comptes de jetons et les factures augmentent d'environ 30 % | Nouveau tokenizer | Recomptez sur le nouveau modèle |
| Réponse avec raison d'arrêt refusée | Nouveaux classificateurs de sécurité | Gérez-le dans votre client |
Les cinq premiers échouent bruyamment. Les autres échouent discrètement, ce qui les rend plus coûteux à trouver.
Les cinq échecs bruyants
1. Budgets de réflexion manuels
Ce que vous verrez : une erreur 400 sur toute requête qui envoie thinking: {"type": "enabled", "budget_tokens": N}.
Pourquoi : Haiku 4.5 ne supportait que la réflexion manuelle prolongée avec un budget de jetons. Haiku 5.5 ne supporte que la réflexion adaptative, et contrôle la profondeur avec effort.
Solution : envoyez {"type": "adaptive"} ou laissez thinking de côté, et choisissez un niveau d'effort. Là où l'ancien budget était petit pour économiser des jetons, choisissez un niveau bas.
# Avant : Haiku 4.5
thinking={"type": "enabled", "budget_tokens": 8000}
# Après : Haiku 5.5
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
2. Paramètres d'échantillonnage
Ce que vous verrez : une erreur 400 lorsqu'une requête définit temperature, top_p, ou top_k.
Pourquoi : Haiku 5.5 n'accepte que les valeurs par défaut : temperature de 1 et top_p de 0.99. Toute autre valeur de l'un ou l'autre, tout top_k, ou l'envoi simultané de temperature et top_p renvoie une erreur 400, que la réflexion soit utilisée ou non. Un top_p de 1 est également rejeté.
Solution : supprimez les trois. Le cas courant est temperature=0 sur un classificateur, utilisé pour obtenir des étiquettes stables. Remplacez-le par une sortie structurée ou un outil dont l'entrée est un énuméré, de sorte que l'ensemble d'étiquettes soit imposé par le schéma plutôt que par l'échantillonnage. Vérifiez également les wrappers SDK et les passerelles qui ajoutent des valeurs d'échantillonnage par défaut en votre nom.
3. Pré-remplissage de l'assistant
Ce que vous verrez : une erreur 400 lorsque la dernière entrée dans messages est un tour d'assistant, même avec la réflexion désactivée.
Pourquoi : le pré-remplissage n'est pas supporté sur Haiku 5.5, correspondant au reste de la gamme actuelle de Claude.
Solution : terminez messages par un tour d'utilisateur, et remplacez le pré-remplissage par ce pour quoi il était destiné. Le contrôle de format devient une sortie structurée (output_config.format). Un préambule pré-rempli devient une instruction de prompt système pour répondre directement. Une continuation d'une réponse interrompue passe dans le message utilisateur : "Votre réponse précédente s'est terminée par [texte]. Continuez à partir de là."
4. Utilisation de l'ordinateur
Ce que vous verrez : une erreur 400 sur l'API Claude ou Google Cloud lorsque la requête déclare l'outil computer_20250124.
Pourquoi : sur ces plateformes, Haiku 5.5 ne supporte l'utilisation de l'ordinateur que par le biais de l'ensemble d'outils plus récent, computer_toolset_20260801.
Solution : supprimez l'en-tête bêta computer-use-2025-01-24, remplacez l'entrée de l'outil par {"type": "computer_toolset_20260801"}, et mettez à jour la boucle de l'agent : dispatch sur chaque bloc tool_use par name et toolset_name plutôt que par input.action, gérez chaque bloc de ce type dans un tour, et renvoyez toolset_name dans les résultats. Zoom est activé par défaut ; si votre environnement ne l'implémente pas, désactivez-le dans la configuration de l'ensemble d'outils. Sur Amazon Bedrock, vérifiez les notes de compatibilité de l'outil d'utilisation de l'ordinateur avant de choisir une version. La même famille d'outils apporte également l'utilisation du navigateur, que Haiku 4.5 n'avait jamais eue.
5. Modification des tours précédents
Ce que vous verrez : une erreur 400 lorsqu'une requête renvoie un bloc de réflexion après qu'un élément précédent a changé : le prompt système, la liste des outils, ou un message antérieur.
Pourquoi : un bloc de réflexion de Haiku 5.5 reste valide uniquement tant que tout ce qui a été envoyé avant lui est inchangé. La vérification est appliquée par défaut pour les comptes créés le 31 août 2026 ou après, et sur les anciens comptes uniquement lorsqu'une requête opte pour cela.
Solution : conservez les conversations en ajoutant uniquement. Les coupables courants sont un prompt système avec un horodatage, une liste d'outils qui s'agrandit lorsqu'un plugin se connecte, une troncature côté client, et des rappels injectés dans l'historique et supprimés au tour suivant. Pour des instructions par tour, Haiku 5.5 prend en charge les messages système à l'intérieur de messages, sans en-tête bêta, qui ajoutent du contexte sans modifier ce qui a été envoyé auparavant.
Les échecs discrets
Les blocs de réflexion viennent en premier. La réflexion est activée par défaut, donc une réponse peut commencer par un ou plusieurs blocs thinking. Le code qui lit response.content[0].text comme réponse échoue ou renvoie un texte vide. Sélectionnez les blocs par type.
Le texte de réflexion est vide par défaut. Haiku 4.5 renvoyait une réflexion résumée. Haiku 5.5 renvoie des blocs thinking avec un champ de texte vide et uniquement une signature. Si votre interface utilisateur affichait des résumés de raisonnement, définissez thinking: {"type": "adaptive", "display": "summarized"}. Dans tous les cas, renvoyez les blocs de réflexion inchangés avec les résultats des outils ; un sérialiseur qui supprime les blocs vides les élimine.
max_tokens doit maintenant couvrir la réflexion. Un plafond dimensionné pour une réponse courte peut être utilisé par la réflexion, terminant la réponse avec stop_reason: "max_tokens" avant tout texte. Augmentez le plafond ou réduisez l'effort.
Le même texte représente environ 30 % de jetons en plus. Le nouveau tokenizer modifie les champs usage, les résultats count_tokens, les budgets de contexte, et tout max_tokens ajusté pour Haiku 4.5. Il déplace également la ligne de prix de 100K jetons à environ 77K jetons comme Haiku 4.5 les comptait. Recomptez les véritables invites avec le modèle réglé sur claude-haiku-5-5 avant de faire confiance à un tableau de bord de coûts.
L'effort par défaut est moyen. Haiku 4.5 n'avait pas de paramètre d'effort. Haiku 5.5 par défaut à medium, ce qui peut être plus de réflexion que ce qu'un chemin simple nécessite. Définissez-le explicitement.
Les blocs de réflexion restent avec le compte qui les a créés. Si votre service rejoue des conversations stockées via un compte API différent, les blocs de réflexion de Haiku 5.5 sont silencieusement supprimés et la requête s'exécute sans ce raisonnement. Rejouez chaque conversation via le compte qui l'a produite.
Le niveau de priorité ne se transfère pas. Haiku 5.5 ne prend pas en charge le niveau de priorité, donc planifiez la capacité séparément si vous en dépendez pour Haiku 4.5.
Les listes de passerelles peuvent différer. La page Haiku 5.5 sur AIHubMix indique actuellement une longueur de contexte de 200K, tandis qu'Anthropic spécifie 1M. Confirmez la limite sur le chemin que vous utilisez avant de migrer des charges de travail à longues invites.
Changements de comportement qui comptent pour les agents avec de réelles autorisations
Les refus sont nouveaux, et rien ne les capture pour vous. Haiku 5.5 exécute des classificateurs de sécurité dans quatre catégories : cyber, bio, développement de LLM de pointe, et dommages généraux. Un refus revient comme un HTTP 200 normal avec stop_reason: "refusal" et une catégorie dans stop_details. Contrairement à Sonnet 5.5 et Opus 5.5, Haiku 5.5 n'a pas de solution de secours côté serveur : une liste de modèles de secours renvoie une erreur 400, et le mode de secours par défaut laisse la requête refusée. Vérifiez stop_reason avant de lire content, et décidez dans votre propre code si vous devez reformuler, escalader vers un modèle plus grand, ou arrêter. Selon le post de lancement, les mesures de sécurité cybernétique permettent une plus large gamme de travaux défensifs que celles de Sonnet 5.5 mais bloquent les tests de pénétration.
Le texte utilisateur à l'intérieur des résultats d'outils peut être ignoré. Haiku 5.5 est formé pour résister à l'injection de prompts à travers les résultats d'outils. Si votre harnais livre un message que l'utilisateur a tapé en cours de tâche à l'intérieur d'un bloc tool_result, le modèle peut le traiter comme non fiable et l'ignorer. Mettez l'entrée utilisateur en milieu de tour dans un bloc de texte après le dernier résultat d'outil, et gardez les avis du harnais dans un message système séparé.
À faible effort, les agents peuvent s'arrêter tôt ou sauter des vérifications. Avec un long prompt système d'agent de codage à low, Haiku 5.5 rend parfois la tâche avant qu'elle ne soit terminée, et à low et medium, elle signale parfois un changement de code comme terminé sans exécuter de test. Le guide de prompting Haiku 5.5 d'Anthropic a de courtes instructions pour les deux. Pour un agent qui peut écrire des fichiers ou exécuter des commandes, un "terminé" non vérifié est le plus dangereux des deux.
Forcer un outil saute la réflexion. Le tool_choice forcé est toujours accepté, mais le modèle appelle alors l'outil sans réfléchir d'abord. Pour les outils avec des effets secondaires, auto plus une instruction claire permet au modèle de raisonner avant d'agir.
Les outils de recherche ont besoin de la date d'aujourd'hui. Lorsque Haiku 5.5 a un outil de recherche, donnez-lui la date actuelle dans le prompt système ou la description de l'outil. Dans les tests d'Anthropic, cela a ancré les réponses dans des résultats récents.
Une requête migrée via AIHubMix
Un classificateur Haiku 4.5 qui utilisait temperature=0, un budget de réflexion, et un { pré-rempli pour JSON, réécrit pour Haiku 5.5 sur le point de terminaison natif 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, # espace pour la réflexion plus le JSON
output_config={
"effort": "low", # remplace l'ancien budget de réflexion
"format": { # remplace le pré-remplissage et 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 : 'J'ai été facturé deux fois pour octobre.'"}],
)
if r.stop_reason == "refusal":
raise RuntimeError(f"refusé : {r.stop_details}")
text = next(b.text for b in r.content if b.type == "text")
print(text)
Il vaut la peine de confirmer si une passerelle transmet les champs output_config et les nouveaux en-têtes bêta inchangés lors de votre premier test. Lorsque le chemin migré passe vos évaluations, la liste des modèles AIHubMix facilite l'orientation du même code vers Sonnet 5.5 pour tout type de tâche qui continue à échouer sur Haiku.
Liste de contrôle de migration
- Changez l'ID du modèle en claude-haiku-5-5, sans suffixe de date.
- Remplacez chaque budget de réflexion par une réflexion adaptative et un niveau d'effort explicite.
- Supprimez la température, top_p, et top_k, y compris les valeurs par défaut ajoutées par les wrappers.
- Remplacez les pré-remplissages d'assistant par des sorties structurées, des instructions système, ou des continuations de tours d'utilisateur.
- Déplacez l'utilisation de l'ordinateur vers l'ensemble d'outils informatiques et mettez à jour la boucle de l'agent.
- Faites en sorte que l'historique des conversations soit en ajoutant uniquement si des blocs de réflexion sont rejoués.
- Lisez le contenu de la réponse par type de bloc, et conservez les blocs de réflexion vides lors de la relecture.
- Augmentez max_tokens sur les chemins de réponses courtes, ou réduisez l'effort.
- Gérez la raison d'arrêt de refus avant de lire le contenu ; ne configurez pas de solutions de secours côté serveur.
- Recomptez les jetons d'invite sur le nouveau modèle et réajustez les tableaux de bord de coûts.
- Vérifiez quels prompts dépassent maintenant 100K jetons et réduisez-les ou divisez-les.
- Définissez l'affichage sur résumé si les utilisateurs ont vu des résumés de raisonnement.
- Livrez l'entrée utilisateur en milieu de tour en dehors des résultats d'outils.
- Donnez aux agents activés pour la recherche la date d'aujourd'hui.
- Vérifiez à nouveau les limites de taux, les besoins en niveau de priorité, et la limite de contexte de votre passerelle avant de déplacer du volume.
FAQ
Mes invites Haiku 4.5 fonctionneront-elles sur Haiku 5.5 ?
Anthropic affirme que les invites existantes devraient bien fonctionner sans modifications. Les paramètres de requête autour d'eux sont ce qui casse : budgets de réflexion, paramètres d'échantillonnage, pré-remplissages, et l'ancien outil d'utilisation de l'ordinateur renvoient tous des erreurs.
Pourquoi mon classificateur échoue-t-il maintenant que j'ai supprimé la température 0 ?
Il ne devrait pas échouer, mais les étiquettes peuvent varier davantage. Utilisez une sortie structurée ou un outil avec un champ énuméré afin que les étiquettes autorisées soient imposées par le schéma. C'est plus fiable que la température 0 ne l'a jamais été.
Puis-je toujours désactiver la réflexion ?
Oui, à faible, moyen et haut effort. À xhigh et max, désactiver la réflexion renvoie une erreur. Anthropic recommande plutôt un niveau d'effort inférieur, car le modèle peut sauter la réflexion sur des requêtes simples par lui-même.
Que doit faire mon code lorsque Haiku 5.5 refuse ?
Vérifiez la raison d'arrêt avant de lire le contenu. Haiku 5.5 n'a pas de solution de secours côté serveur, donc votre code décide s'il doit reformuler, envoyer la requête à un modèle plus grand, ou renvoyer une erreur à l'utilisateur.
Pourquoi mon utilisation de jetons a-t-elle augmenté après la migration ?
Deux raisons. Le nouveau tokenizer compte environ 30 % de jetons en plus pour le même texte, et la réflexion est activée par défaut, ajoutant des jetons de sortie. Réduisez l'effort et recomptez vos invites sur le nouveau modèle.
Dois-je changer quelque chose pour la mise en cache des invites ?
Généralement non, et cela devient plus facile : le minimum d'invite pouvant être mis en cache passe de 4 096 à 512 jetons, et les blocs de réflexion des tours précédents restent dans le préfixe mis en cache par défaut. Évitez de modifier les tours précédents, ce qui invalide désormais les blocs de réflexion ainsi que le cache.
Une conversation peut-elle passer de Haiku 5.5 à un modèle plus grand ?
Oui. Sonnet 5.5 et Opus 5.5 lisent les blocs de réflexion de Haiku 5.5, donc une conversation escaladée à l'un ou l'autre conserve son raisonnement antérieur. Pour d'autres modèles cibles, vérifiez d'abord la documentation sur la préservation de la réflexion.
Continuez à lire : la série Claude Haiku 5.5
- Avant de planifier la migration, il est utile de savoir si le nouveau modèle atteint votre niveau de qualité. Pour des benchmarks contre Haiku 4.5, GPT-6 Luna, et Sonnet 5.5, lisez Claude Haiku 5.5 vs Haiku 4.5 : Ce que dix cents achètent maintenant
- La étape 2 de la liste de contrôle vous demande de choisir un niveau d'effort. Pour ce que chaque niveau coûte en jetons et où commencer, lisez Niveaux d'effort de Claude Haiku 5.5 : Medium est le par défaut, Low est souvent suffisant
- Le changement de tokenizer déplace la ligne de prix ainsi que vos tableaux de bord. Pour voir ce que cela fait à une facture réelle, lisez Tarification de Claude Haiku 5.5 : La ligne de 100K derrière la réduction de 90%
Sources
- Guide de migration Claude Haiku 5.5 (Docs de la plateforme Claude)
- Prompting Claude Haiku 5.5 (Docs de la plateforme Claude)
- Présentation de Claude Haiku 5.5 (Anthropic)
- Claude Haiku 5.5 sur AIHubMix
- Claude Haiku 5.5 est disponible à 0,10 $ par million de jetons. Lisez la règle des 100K avant de migrer (Newsletter de Roo)



