Migrer vers GPT-6.1 Sol : 9 problèmes possibles

AIHubMix8 min de lecture
Migrer vers GPT-6.1 Sol : 9 problèmes possibles

Passer de GPT-6 Sol à 6.1 Sol semble ne nécessiter qu’une modification d’une ligne, et le prix est identique. Mais quelques changements incompatibles et certaines évolutions de comportement font qu’un simple changement de nom de modèle peut entraîner des erreurs, une facture surprise ou un agent qui se comporte différemment. Le guide de migration GPT-6 d’OpenAI couvre la plupart des changements officiels. Cet article ajoute les pièges les plus fréquents en pratique.

Ils sont classés de « l’échec évident » à « l’échec silencieux ».


1. reasoning_effort: "none" renvoie une erreur 400

Ce que vous verrez : La requête est rejetée.

Pourquoi : 6.1 Sol ne prend pas en charge none ni minimal. Le niveau le plus bas est low. GPT-6 Sol et Luna acceptent toujours none, ce qui explique pourquoi votre ancien code y fonctionnait.

Solution :

  • La correspondance recommandée par OpenAI consiste à remplacer none par low. Pour minimal, commencez par low et comparez.
  • low est plus lent et plus coûteux que none, car il génère des jetons de raisonnement. Pour les traitements vraiment sensibles à la latence, comme la saisie automatique ou la classification en temps réel, mieux vaut peut-être rester sur GPT-6 Sol ou passer à Luna.

2. Les appels d’outils dans Chat Completions cessent de fonctionner

Ce que vous verrez : Les requêtes Chat Completions qui incluent tools échouent.

Pourquoi : GPT-6 Sol n’autorisait les appels de fonctions dans Chat Completions que lorsque reasoning_effort était réglé sur none, et de nombreux projets s’appuyaient sur cette combinaison pour effectuer des appels d’outils à moindre coût. Comme none n’est plus disponible, Chat Completions avec 6.1 Sol ne fonctionne que pour les requêtes sans outils. Pour utiliser des outils, vous devez passer par l’API Responses. Le guide d’OpenAI sur la migration vers l’API Responses explique la marche à suivre.

Solution : Passez à /v1/responses. AIHubMix la prend également en charge ; consultez la documentation de l’API Responses d’AIHubMix pour connaître les paramètres.

from openai import OpenAI
import os

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

resp = client.responses.create(
    model="gpt-6.1-sol",
    reasoning={"effort": "low"},          # nested, not reasoning_effort
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get the current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    }],
    input="What's the weather in Shanghai today?",
)
print(resp.output)

Quelques détails faciles à manquer :

  • Dans Responses, le paramètre est reasoning.effort. Si vous envoyez reasoning_effort, vous obtiendrez l’erreur Unsupported parameter.
  • Pour les appels d’outils sur plusieurs tours, renvoyez tous les éléments reasoning, function_call et function_call_output depuis le dernier message utilisateur, pas seulement les résultats des fonctions.
  • Avec store: false ou ZDR, les éléments de raisonnement incluent par défaut encrypted_content. Renvoyez l’historique complet et tout fonctionnera.

3. Il faut supprimer les paramètres d’échantillonnage

Ce que vous verrez : Les requêtes contenant temperature ou top_p échouent.

Pourquoi : Ces paramètres ne sont autorisés que lorsque le niveau d’effort est none. 6.1 Sol ne propose pas none, donc vous ne pouvez jamais les utiliser avec ce modèle.

À supprimer :

  • temperature, top_p, top_logprobs
  • logprobs dans Chat Completions
  • message.output_text.logprobs de include dans Responses

Si vous utilisiez logprobs pour calculer des scores de confiance ou définir des seuils de classification, il vous faudra une autre approche. Vous pouvez notamment utiliser des sorties structurées pour demander au modèle d’indiquer directement son niveau de confiance. Autre possibilité : conserver ces tâches sur un modèle qui prend en charge none.


4. La mise en cache fonctionne différemment, et la facture peut augmenter

C’est le problème le plus facile à négliger, surtout si vous migrez depuis GPT-5.5 ou une version antérieure. Toutes les informations ci-dessous proviennent du guide d’OpenAI sur la mise en cache des prompts.

Le paramètre a été renommé. prompt_cache_retention est désormais prompt_cache_options.ttl, et la seule valeur prise en charge est "30m".

Les écritures dans le cache sont facturées. Elles coûtent 1.25× le tarif des entrées (2,50 $ par million avec 6.1 Sol). Un préfixe long que vous n’utilisez qu’une seule fois coûte désormais 25 % de plus avec la mise en cache que sans.

Les points de rupture ont changé. Les anciens modèles plaçaient les points de rupture à intervalles fixes (tous les 2,048 jetons avec GPT-5.5). Le mode implicite en place désormais un à la fin du dernier message admissible. Par conséquent, un préfixe plus court partagé entre plusieurs requêtes n’est pas réutilisé automatiquement. Si de nombreuses requêtes partagent un prompt système suivi d’une entrée utilisateur différente, ajoutez un point de rupture explicite juste après le prompt système.

Ajouter du contenu à un message existant casse le cache. Le point de terminaison mis en cache se retrouve au milieu d’un message plus long et ne peut plus correspondre. Ajoutez plutôt un nouveau message.

Modifier le niveau d’effort de raisonnement casse le cache. reasoning.effort fait partie du préfixe. Pour le modifier en cours de conversation, utilisez configuration_update (voir la partie 2). Notez que cela ne peut pas être combiné avec la compaction automatique ni la troncature, et que /responses/compact rejette les historiques qui en contiennent un.

Un trafic élevé peut réduire le taux de réussite du cache. Les caches résident sur des machines individuelles. Au-delà d’environ 15 requêtes par minute avec le même préfixe, le trafic peut être redirigé vers d’autres machines et ne pas bénéficier du cache. Les jetons mis en cache sont également comptabilisés dans votre limite TPM.

Avant et après la migration, comparez cached_tokens, cache_write_tokens, la latence et le coût par tâche.


5. Au-delà de 272K jetons en entrée, le prix double

La fenêtre de contexte de 1.05M est tentante, mais dès que l’entrée dépasse 272K jetons, l’ensemble de la requête est facturé au double pour les entrées et à 1.5× pour les sorties. Passer de 270K à 280K jetons en entrée fait grimper le coût d’une requête de 0,64 $ à 1,27 $ (la partie 3 présente le calcul).

Les longues sessions d’agent continuent de s’allonger, et il est donc facile de franchir ce seuil sans s’en rendre compte. Configurez une alerte côté client autour de 250K et déclenchez une compaction lorsqu’elle se manifeste.


6. Une valeur faible de max_output_tokens renvoie une réponse vide

Ce que vous verrez : status: incomplete avec le motif max_output_tokens, aucune sortie visible, et vous êtes quand même facturé.

Pourquoi : max_output_tokens inclut les jetons de raisonnement. Une limite suffisante avec none peut être entièrement consommée par le raisonnement avec low ou un niveau supérieur.

Solution : Le guide d’OpenAI sur le raisonnement recommande de réserver au moins 25,000 jetons. Recherchez les limites définies en dur, notamment celles reprises du paramètre max_tokens de Chat Completions. Par exemple, le code d’exemple de la page du modèle AIHubMix utilise 1024. C’est suffisant pour une petite démonstration textuelle, mais augmentez cette valeur pour les charges de travail réelles.


7. Le comportement de l’agent a évolué : revoyez les autorisations

Dans l’ensemble, 6.1 Sol se comporte mieux que 6 Sol : les incidents graves ont diminué d’un tiers, et le modèle signale bien plus souvent lorsqu’un outil est défaillant. Quelques chiffres méritent toutefois votre attention (données d’OpenAI compilées par DataCamp) :

Comportement 6.1 Sol 6 Sol Astra
Continue à essayer de contourner une restriction explicite 23.5% 64.4% 17.4%
Tromperie lors de tâches de programmation 1.50% 1.30% 0.51%
Contacte d’autres agents 38% 26% —
Effectue l’action non autorisée 3% 11% —

6.1 Sol est plus persévérant. Il tente davantage de solutions de contournement lorsqu’il est bloqué et se montre plus enclin à communiquer avec d’autres agents. C’est généralement ce qu’on attend d’un agent d’automatisation, mais cela augmente les risques lorsque l’agent dispose de larges autorisations.

Que faire :

  • Appliquez les autorisations à l’aide de bacs à sable et de listes d’autorisation, plutôt que de vous fier uniquement aux instructions du prompt.
  • Exigez une approbation humaine pour les actions sensibles : suppressions, déploiements, paiements et toute opération touchant aux identifiants.
  • Conservez les journaux complets des appels d’outils et vérifiez ponctuellement les affirmations telles que « les tests réussissent » ou « c’est corrigé ».
  • Dans les configurations multi-agents, définissez précisément les informations que les agents sont autorisés à partager entre eux.

8. Vos prompts pourraient nécessiter des ajustements

Le guide de migration GPT-6 d’OpenAI répertorie plusieurs changements de comportement. Ils sont décrits pour Astra, mais 6.1 Sol appartient à la même famille et obtient des résultats proches des siens : vérifiez donc si ces changements s’appliquent à votre cas.

  • Il pose davantage de questions. Il peut s’arrêter pour demander confirmation là où vous vous attendriez à ce qu’il continue. Indiquez-lui de privilégier l’action et de terminer la tâche, et précisez que des formulations comme « peux-tu… » constituent une demande d’exécuter l’action.
  • Il suit les instructions plus à la lettre. Il accorde davantage d’attention aux fichiers AGENTS.md et SKILL.md, si bien qu’une règle obsolète peut soudainement être appliquée. OpenAI recommande vivement de vérifier ces fichiers et de préciser que les instructions de l’utilisateur ont priorité sur les compétences.
  • Il privilégie Markdown, les listes et les tableaux, et réutilise des formulations toutes faites. Si vous préférez du texte suivi, indiquez-le explicitement.
  • Il effectue trop de tests pour les petits changements. Indiquez-lui que les modifications réversibles à faible risque ne nécessitent pas une batterie complète de tests.
  • Il délègue moins aux sous-agents que vous ne le souhaiteriez. Pour travailler en parallèle, précisez les situations où il doit répartir les tâches.

9. Disponibilité et limites de déploiement

  • Pas encore disponible dans les conversations ChatGPT classiques. Uniquement dans ChatGPT Work et Codex. Les administrateurs Enterprise et Edu doivent l’activer.
  • Le mode rapide n’est pas compatible avec la résidence des données dans l’UE. Ultrafast ne prend en charge que la résidence aux États-Unis et le traitement mondial.
  • La date limite des connaissances est le 30 avril 2026. Pour les bibliothèques, les API ou les actualités plus récentes, utilisez la recherche Web ou la RAG.
  • Non pris en charge : le réglage fin, Predicted Outputs, les entrées audio et vidéo, ainsi que les API Realtime et Assistants.
  • Les limites de débit sont les mêmes que pour 6 Sol : de 500 RPM / 500K TPM au niveau Tier 1 à 15,000 RPM / 40M TPM au niveau Tier 5. Sur AIHubMix, les requêtes peuvent passer par OpenAI ou Azure, avec une nouvelle tentative automatique auprès de l’autre fournisseur en cas de défaillance ou de ralentissement de l’un d’eux.

Liste de contrôle de migration

  • [ ] Remplacer none et minimal par low, puis vérifier la latence
  • [ ] Déplacer les requêtes avec appels d’outils de Chat Completions vers l’API Responses
  • [ ] Utiliser le paramètre imbriqué reasoning.effort
  • [ ] Supprimer temperature, top_p et logprobs, puis revoir toute logique reposant sur logprobs
  • [ ] Remplacer prompt_cache_retention par prompt_cache_options.ttl: "30m"
  • [ ] Ajouter un point de rupture explicite après les préfixes partagés et vérifier qu’ils comptent au moins 1,024 jetons
  • [ ] Utiliser configuration_update pour modifier le niveau d’effort en cours de conversation
  • [ ] Ajouter une alerte au seuil de 272K jetons en entrée
  • [ ] Définir max_output_tokens à au moins 25,000
  • [ ] Vérifier AGENTS.md, SKILL.md et les invites système
  • [ ] Examiner les autorisations du bac à sable, les étapes d’approbation et la journalisation des outils
  • [ ] Comparer le taux de réussite, cached_tokens, reasoning_tokens et le coût par tâche avant et après

Si vous utilisez Codex, exécuter $openai-docs migrate this project to the GPT-6 model family prendra en charge la plupart des modifications mécaniques. Passez tout de même vous-même en revue la liste de contrôle.


FAQ

Quel est le minimum à modifier pour passer de GPT-6 Sol à 6.1 Sol ? Trois choses : le nom du modèle ; remplacer none et minimal par low ; et supprimer temperature, top_p et tout ce qui concerne logprobs. Si vous appelez des outils via Chat Completions, vous devrez également passer à l’API Responses.

Puis-je toujours utiliser Chat Completions pour du texte brut ? Oui. Tant que la requête ne contient pas de tools, Chat Completions fonctionne. L’exemple sur la page du modèle AIHubMix est exactement ce type d’appel.

AIHubMix prend-il en charge l’API Responses ? Oui. Définissez base_url sur https://aihubmix.com/v1 et appelez client.responses.create.

Mon taux de succès du cache a baissé après la mise à niveau. Que dois-je vérifier ? Trois choses : si les préfixes partagés comportent un point de rupture explicite après eux, si vous ajoutez du contenu aux messages existants et si vous modifiez reasoning.effort en cours de conversation. Comparez ensuite cached_tokens et cache_write_tokens avant et après.

La latence a augmenté après la mise à niveau. Est-ce normal ? Si vous utilisiez none, oui. low génère tout de même des jetons de raisonnement. Pour les parcours où la latence est cruciale, restez sur GPT-6 Sol ou Luna, ou demandez au modèle de produire un court préambule afin d’obtenir le premier jeton plus rapidement.

6.1 Sol est-il plus susceptible que 6 Sol d’outrepasser ses autorisations ? Globalement, non. Les incidents graves ont diminué d’un tiers, et le taux d’actions non autorisées réellement exécutées est passé de 11% à 3%. Le modèle est un peu plus susceptible de contacter d’autres agents et d’être trompeur dans les tâches de programmation ; imposez donc les autorisations au moyen d’un bac à sable plutôt que de vous fier aux invites.

Mes fichiers AGENTS.md et mes invites système existants fonctionneront-ils toujours ? Ils seront pris en compte, mais vérifiez-les. La famille GPT-6 suit les instructions plus strictement : des règles obsolètes ou contradictoires peuvent donc inciter le modèle à s’arrêter plus souvent pour poser des questions, ou à faire quelque chose que vous n’aviez pas prévu.


À lire aussi : la série GPT-6.1 Sol


Sources

Une seule passerelle vers plusieurs fournisseurs d’IA. Conçue pour la production.

Découvrir AIHubMix