Pourquoi votre abonnement s'est vidé en quelques heures : les defaults de context window Codex, expliqués


Mardi matin, vous ouvrez la page d’usage de ChatGPT et le compteur affiche 87 % — alors que vous avez à peine touché à votre agent cette semaine : pas de sessions nocturnes marathon, pas de gros uploads, juste un après-midi ordinaire de conversation. Si vous utilisez Hermes avec ChatGPT Codex OAuth (la famille gpt-5.4 / gpt-5.6), le coupable était probablement une context window silencieusement réglée bien plus grande que ce que le provider annonce. Plus la fenêtre est grande, plus chaque requête transporte de tokens d’entrée, et sur un abonnement le compteur se vide en conséquence. Bonne nouvelle : Hermes a corrigé le comportement par défaut le 23 août — les slugs Codex de base sont revenus aux 272K annoncés, et la fenêtre vérifiée de 900K est désormais un opt-in explicite via -900k. Ce post explique les mécanismes et les réglages que vous contrôlez.

Pourquoi une context window plus grande peut vous coûter de l’argent

Tout d’abord, une définition rapide : la context window correspond au nombre de tokens qu’un modèle peut lire en une seule requête — prompt système, historique de conversation et sorties d’outils combinés. Une grande fenêtre signifie que l’agent peut « se souvenir » de plus de choses, mais le revers de la médaille, c’est que chaque tour renvoie toute la fenêtre, et que tous ces tokens d’entrée comptent dans votre usage.

Sur les APIs pay-per-token, c’est simplement une facture ; sur un abonnement ChatGPT (Plus / Pro) accédé via Codex OAuth, c’est une allocation mensuelle. Passer la fenêtre de 272K à 900K gonfle l’entrée de chaque requête jusqu’à 3x+ — et si vous gardez en plus de longues sessions, vider l’allocation en quelques heures est parfaitement réaliste. C’est exactement ce que la communauté a rapporté sur Discord à la mi-août : un usage qui s’évapore avec presque aucune activité.

Hermes avait automatiquement relevé la context Codex à 900K le 16 août (le raisonnement était « si c’est vérifié, on l’utilise »), ce qui a silencieusement placé chaque session Codex OAuth sur la grande fenêtre. La PR #92797, fusionnée le 23 août, a corrigé le tir : les slugs de base reviennent aux 272K annoncés, et le 900K est strictement opt-in.

Les variantes -900k du picker : optez-y explicitement

Dans le picker /model, les modèles Codex de base sont désormais accompagnés de jumeaux suffixés -900k :

  • gpt-5.6-sol-900k
  • gpt-5.6-terra-900k
  • gpt-5.6-luna-900k
  • gpt-5.4-900k

Ce sont des alias côté Hermes : choisissez gpt-5.6-sol-900k et le suffixe est retiré avant que l’id du modèle ne parte sur le fil (le backend voit toujours gpt-5.6-sol), et la tarification le compte comme le modèle de base. Vous déclarez simplement « je veux la grande fenêtre » — ce qui est sans risque, car Hermes a vérifié en live en août que le backend Codex, tout en annonçant 272K, accepte en réalité ~911K tokens d’entrée pour les comptes abonnés.

Une réserve : tous les modèles Codex n’ont pas de variante -900k. Les slugs qui appliquent réellement 272K — gpt-5.5 et gpt-5.4-mini — n’ont aucune variante. L’éligibilité d’un slug est décidée par la liste vérifiée en live dans agent/model_metadata.py (_CODEX_900K_ELIGIBLE_BASES) ; seuls ces modèles reçoivent des variantes synthétisées dans le picker.

La compaction suit la fenêtre

La context window ne fait pas que limiter ce que vous pouvez entasser dans une session — elle décide aussi du moment où Hermes compacte (résume l’historique ancien pour libérer de la place). Le déclencheur est compression.threshold, par défaut 50 % de la fenêtre.

Voici l’interaction subtile : à 50 %, une fenêtre de 272K serait compactée à ~136K, gaspillant la moitié de l’espace. Aussi, pour les routes Codex OAuth sur les slugs de base gpt-5.4 / 5.5 / 5.6, Hermes relève automatiquement le seuil à 85 % (~231K) — le fameux autoraise.

Les variantes -900k fonctionnent dans l’autre sens : à 50 % de 900K (~450K), la compaction se déclenche déjà assez tard, donc aucun autoraise n’est nécessaire. La PR #92848, fusionnée le même jour, impose exactement cela : les variantes -900k utilisent toujours le compression.threshold global, les slugs de base conservent l’autoraise à 85 %. La règle d’or : le seuil de compaction suit toujours la fenêtre que vous avez choisie.

Reprenez la main avec ces clés de config

Si les valeurs par défaut ne correspondent pas à votre flux de travail, tout ceci est configurable :

# Turn off the 85% autoraise for 272K Codex base slugs (back to the global threshold)
hermes config set compression.codex_gpt55_autoraise false

# Keep the autoraise but hide the one-time banner
hermes config set compression.codex_gpt55_autoraise_notice false

Note : codex_gpt55_autoraise est un nom de clé hérité — il gouverne en réalité toute la famille gpt-5.4 / 5.5 / 5.6, pas seulement gpt-5.5.

Autres réglages utiles à connaître :

  • compression.threshold : le ratio de compaction global (par défaut 0.50).
  • compression.model_thresholds : des overrides par modèle — les clés sont appariées par sous-chaîne, la correspondance la plus longue gagne. Compactez plus tard un modèle à fenêtre 1M ("glm-5.2-1M": 0.25) et plus tôt un modèle à 128K ("claude-sonnet": 0.35).
  • Plancher pour petites fenêtres : les modèles dont la context window est inférieure à 512K sont ramenés à un plancher de 0.75 (hausse uniquement), pour que la compaction ne se déclenche jamais alors que la moitié de la fenêtre est encore libre.
  • compression.proactive_prune_tokens : sur les modèles à grande fenêtre, le déclencheur à 50 % se fait rare, si bien que les anciennes sorties d’outils restent dans l’historique et sont renvoyées à chaque tour. Définir une valeur (par ex. 48000) les récupère tôt et économise des tokens.
  • Pour un contrôle manuel complet de la fenêtre d’un modèle, utilisez le champ context_window dans model_overrides — nous l’avons couvert dans un guide de configuration complet.

L’essentiel à retenir

Une context window plus grande n’est pas gratuite — c’est une facture que vous payez à chaque tour. La leçon de cet épisode Codex, c’est que les valeurs par défaut doivent être conservatrices et que la grande fenêtre doit être réservée à celles et ceux qui ont explicitement besoin de longs documents et de longs historiques. Concrètement : gardez les slugs de base (272K) pour les sessions du quotidien, sortez une variante -900k dans /model seulement quand vous travaillez vraiment avec de longs documents, et ajustez les clés de compaction ci-dessus à votre propre rythme. Un avertissement : ces changements vivent sur main (fusionnés le 23 août, après le tag v0.20.5), alors récupérez-les avec hermes update — et le filtre flou du picker /model fait partie de la récente vague de polish du CLI, qui rend la recherche des variantes -900k bien plus rapide. Pour plus d’habitudes d’économie de tokens au quotidien, consultez notre tour d’horizon des conseils de productivité.