[đ€] 30 % du contexte utilisĂ© dĂšs le dĂ©but de la conversation, rĂšgles partagĂ©es/Skills du corĂ©en vers lâanglais
⚠Résumé de GPT-5.6 Sol
Jâai ouvert une nouvelle conversation et prĂšs de 30 % du contexte de 258k avait dĂ©jĂ disparu. Jâai refusĂ© une rĂ©ponse qui ne supprimait que quelques lignes et réécrit les rĂšgles partagĂ©es et les Skills en anglais condensĂ© sans affaiblir leurs limites de sĂ©curitĂ©.
PrĂšs de 30 % avait disparu avant mĂȘme que je commence
Jâai ouvert une nouvelle conversation avec Codex et constatĂ© quâune part importante du contexte Ă©tait dĂ©jĂ occupĂ©e. La limite Ă©tait de 258k, mais les rĂšgles partagĂ©es et la liste des Skills prenaient dĂ©jĂ leur place avant le dĂ©but du vrai travail.
Jâai dâabord demandĂ© quelle quantitĂ© de contexte Ă©tait chargĂ©e au lancement dâune conversation. Codex mâa rĂ©pondu avec un chiffre absurdement supĂ©rieur, et je lâai corrigĂ© tout de suite.
« Non, 258k est le maximum. Les rĂšgles globales doivent ĂȘtre trop grosses⊠»
Ă bien y penser, ce nâĂ©tait pas Ă©tonnant. Chaque fois que lâIA faisait une erreur, jâajoutais une rĂšgle partagĂ©e pour lui interdire de la reproduire. AutoritĂ©, Git, credentials, dĂ©ploiement, navigateur, UI/UX, documentation, Goals, travail parallĂšle, sĂ©paration entre projets professionnels et personnels : tout sâĂ©tait accumulĂ©. Je transformais les tĂąches rĂ©pĂ©tĂ©es en Skills et, lorsquâune Skill Ă©chouait Ă son tour, jây ajoutais une exception ou une procĂ©dure de vĂ©rification.
Je voulais empĂȘcher lâIA de perdre son contexte Ă chaque fois. Jâavais mĂȘme Ă©tĂ© heureux dâavoir reliĂ© le fil de mon travail et mon intuition grĂące aux Codex Skills. Mais lorsque les dispositifs conçus pour prĂ©server le contexte deviennent trop longs, ils commencent par manger lâespace rĂ©servĂ© au nouveau travail. Les repĂšres qui prolongeaient le fil Ă©taient peu Ă peu devenus un bagage.
Supprimer quelques lignes était loin de suffire
Au dĂ©part, jâai demandĂ© un audit limitĂ© aux Ă©lĂ©ments dont la suppression ne pouvait certainement pas dĂ©grader les performances. Codex est restĂ© prudent et nâa nettoyĂ© que quelques rĂ©pĂ©titions et passages manifestement trop longs.
Le rĂ©sultat mâa immĂ©diatement frustrĂ©.
« Câest toutâŠ? Et compresser les descriptions inutilement longues, par exempleâŠ? Tu as vraiment appliquĂ© toutes les mĂ©thodes que tu juges les meilleures ? »
Je ne demandais pas de supprimer quelques phrases. Je voulais corriger la structure elle-mĂȘme : une mĂȘme condition de sĂ©curitĂ© rĂ©pĂ©tĂ©e dans plusieurs paragraphes, une dĂ©cision qui tournait autour de longues formulations, et des dĂ©tails dĂ©jĂ prĂ©sents dans une reference ou un script recopiĂ©s dans le corps de la Skill.
Mais viser uniquement la briĂšvetĂ© aurait Ă©tĂ© encore plus dangereux. Si approbation explicite devenait simplement approbation, ou si la cible et le pĂ©rimĂštre exacts se diluaient en vĂ©rifier si nĂ©cessaire, le nombre de tokens baisserait, mais le comportement de lâIA changerait aussi. Dans les rĂšgles sur les credentials, les modifications destructrices, la propriĂ©tĂ© Git, le dĂ©ploiement ou lâUI destinĂ©e aux clients, une diffĂ©rence apparemment mineure peut dĂ©placer la vĂ©ritable frontiĂšre dâautoritĂ©.
Jâai donc rĂ©tabli le critĂšre : rĂ©duire les exemples et les explications rĂ©pĂ©tĂ©es, mais conserver toutes les conditions, interdictions, exceptions, vĂ©rifications et rĂšgles dâarrĂȘt qui dĂ©terminent le comportement.
En cours de route, jâai envisagĂ© de traduire toutes les Skills en corĂ©en. Le corĂ©en est plus facile Ă lire et Ă modifier pour moi, mais le but nâĂ©tait pas le confort de mes yeux. Il sâagissait de rĂ©duire les tokens consommĂ©s par Codex.
Jâai prĂ©parĂ© des exemples condensĂ©s en corĂ©en et en anglais avec le mĂȘme sens, puis je les ai passĂ©s dans le vrai tokenizer. Pour plusieurs descriptions de Skills que jâavais Ă©crites, lâanglais condensĂ© Ă©tait nettement plus court. Cela ne voulait pas dire que le corĂ©en Ă©tait toujours dĂ©savantagĂ©. NĂ©anmoins, beaucoup de mes rĂšgles partagĂ©es accumulĂ©es conservaient leur sens avec moins de tokens une fois condensĂ©es en anglais.
La direction est alors devenue évidente.
« Alors il vaut mieux réécrire toutes les rĂšgles partagĂ©es et les Skills en anglais condensĂ©, non ? Ăa rĂ©duit les tokens. »
Je nâai pas supprimĂ© le corĂ©en sans distinction. Jâai gardĂ© les formulations de dĂ©clenchement en corĂ©en que jâutilise vraiment, les noms dâĂ©tat et les exemples de sortie visibles par lâutilisateur, ainsi que les termes Ă©tablis de lâentreprise dont la traduction aurait affaibli la reconnaissance. Le reste des explications et des procĂ©dures est devenu de courtes phrases en anglais.
Codex place le nom, la description et le chemin de chaque Skill dans le contexte initial, puis ne lit le SKILL.md complet que lorsque cette Skill est dĂ©clenchĂ©e.1 Jâai donc commencĂ© par rĂ©duire les rĂšgles globales et les descriptions de Skill discovery toujours prĂ©sentes, avant de condenser sĂ©parĂ©ment le gros inventaire rĂ©seau et la Skill dâĂ©criture chargĂ©s en blocs lourds lors de leur invocation.
Si les rÚgles courtes changeaient le comportement, la réécriture avait échoué
Cette fois, je nâai pas pris « traduit en anglais » comme critĂšre de fin. Jâai commencĂ© par réécrire un Ă©chantillon reprĂ©sentatif : une partie des rĂšgles de sĂ©curitĂ© partagĂ©es, une Skill dâaudit et une Skill de suivi du temps. Un reviewer indĂ©pendant a comparĂ© les originaux aux versions condensĂ©es et a dâabord repĂ©rĂ© une condition affaiblie dans la Skill dâaudit : les comportements sans rapport avec lâarchitecture existante devaient eux aussi ĂȘtre prĂ©servĂ©s.
Jâai rĂ©tabli cette condition et demandĂ© une nouvelle vĂ©rification au mĂȘme reviewer. Jâai ensuite appliquĂ© ce modĂšle au reste des rĂšgles partagĂ©es et aux treize Skills créées par lâutilisateur. Enfin, une autre session que celle du premier reviewer a comparĂ© les vingt-neuf fichiers complets Ă leurs sources. Elle a vĂ©rifiĂ© que le texte raccourci produisait toujours les mĂȘmes frontiĂšres dâapprobation, conditions dâarrĂȘt, procĂ©dures de vĂ©rification et contrats de sortie. Plus aucune omission importante nâa Ă©tĂ© trouvĂ©e.
Les chiffres rendaient Ă©galement la diffĂ©rence visible. Avec le tokenizer o200k, les rĂšgles globales toujours lues sont passĂ©es de 14 933 tokens Ă 10 644, soit environ 28,7 % de moins. Les descriptions de Skills exposĂ©es au dĂ©marrage dâune conversation ont diminuĂ© dâenviron 31,1 %. Deux grandes references lues Ă lâinvocation ont baissĂ© dâenviron 50,5 %. Sur lâensemble du pĂ©rimĂštre comparĂ©, le total est passĂ© de 81 347 tokens Ă 62 765, soit une rĂ©duction dâenviron 22,8 %.
Comme le corps complet de toutes les Skills nâest pas chargĂ© au dĂ©marrage, je ne peux pas appeler directement ces 22,8 % le « coĂ»t de lancement dâune conversation ». La partie toujours prĂ©sente a tout de mĂȘme diminuĂ© immĂ©diatement, tout comme la charge supplĂ©mentaire lors de lâappel dâune Skill lourde.
Avant, lorsquâune IA faisait une erreur, je ne pensais quâĂ Ă©crire davantage de rĂšgles. Je croyais quâune formulation plus prĂ©cise Ă©viterait les erreurs et que conserver les exemples aiderait la fois suivante. Ce nâĂ©tait pas entiĂšrement faux. Ces rĂšgles avaient rĂ©ellement Ă©vitĂ© de nombreux incidents.
Le problĂšme Ă©tait que je ne faisais quâajouter des rĂšgles et ne revenais presque jamais les condenser. Des phrases empĂȘchant la mĂȘme erreur apparaissaient Ă plusieurs endroits, les explications dâincidents rĂ©cents restaient comme des rĂšgles permanentes, et un long passage Ă©crit pour faire comprendre une seule fois quelque chose devenait le coĂ»t de base de chaque tĂąche.
Cette fois, je nâai pas supprimĂ© les garde-fous. Jâai supprimĂ© les rĂ©pĂ©titions et les longueurs accumulĂ©es autour de leur explication. Jâai gardĂ© ce quâil faut protĂ©ger, quand il faut sâarrĂȘter, qui doit approuver et comment vĂ©rifier, tout en retirant les phrases qui rĂ©pĂ©taient pourquoi la rĂšgle existait.
DĂ©sormais, lâentretien dâune rĂšgle partagĂ©e ou dâune Skill ne sâarrĂȘtera pas Ă lâajout dâune nouvelle phrase. Je devrai aussi vĂ©rifier si le mĂȘme sens existe dĂ©jĂ , si un incident peut devenir un invariant et combien de mots restent sans changer le comportement rĂ©el. Le contexte nâest pas un entrepĂŽt infini.
PlutĂŽt quâaccumuler davantage de mĂ©moire, je veux reproduire le mĂȘme jugement avec moins de tokens. Cette fois, jâai avancĂ© dâun pas dans cette direction.
Références
-
OpenAI, Codex Skills. Explique le chargement progressif des mĂ©tadonnĂ©es de Skill discovery et des instructions complĂštes. â©
Laisser un commentaire