Ce que l'IA consomme à chaque session, et comment on a commencé à le réduire
REX sur 244 sessions : 8 % ont saturé le contexte. Trois outils (caveman, ponytail, headroom) ramènent la consommation d'environ un tiers. Mesures, limites, quand activer lequel.
Table des matières

Planche de l’Encyclopédie (Diderot & d’Alembert) — « Imprimerie, l’opération de la casse », ca 1770. Domaine public, Bibliothèque du Congrès.
−32 % de tokens consommés par session — c’est ce que trois petits outils (caveman, ponytail, headroom) ont retiré de la facture, en moyenne sur 244 sessions réelles. Jusqu’à −40 % sur les sessions à fort outillage : debug long, pipeline CI, Jira + GitLab en parallèle.
Le problème que ça corrige : sur ces mêmes 244 sessions, 19 ont saturé leur contexte. À chaque fois, l’agent a résumé l’historique à la volée - et amputé une partie du fil. Le pire cas : 4 200 tokens compressés avec perte en une fois, sur une session de 2 151 messages.
La mesure
Sur ≈ 3 mois d’usage de pi-agent :
| Indicateur | Valeur | Lecture |
|---|---|---|
| Sessions enregistrées | 244 | 1 à 3 opérateurs |
| Compactions (contexte saturé → résumé forcé) | 19 | ≈ 8 % des sessions ont débordé |
| Messages cumulés | 33 503 | volume réel |
| Messages / session — médiane | 30 | session courte |
| Messages / session — max | 2 151 | session marathon (une seule) |
| Plus grosse compaction | 16 743 caractères (≈ 4 200 tok avec perte) | le pire cas |
Le reste de l’usage suit le même arbitrage coût/qualité : glm-5.x pour l’essentiel (210 sessions), un modèle local gemma4:12b pour les tâches courantes (28), et la réflexion calibrée — high (193), low (107), medium (87), off (84), minimal (73) — selon l’enjeu. On paie plus de réflexion là où elle compte.
Le mécanisme — où partent les tokens
Un token, c’est l’unité de facturation de l’IA : à peu près un mot court, une ponctuation, une syllabe complexe. Chaque session a un budget fixe — le context window — non reportable, non partageable. Plein, l’IA résume ou oublie.
Ce budget se remplit de cinq sources, dans la même jauge :
| Source | Ce que c’est | Exemple |
|---|---|---|
| Instructions permanentes | Règles et conventions de l’agent | AGENTS.md, SYSTEM.md |
| Skills chargés | Références chargées à la demande | brainstorming.md, tdd.md |
| Outils externes (MCP) | Réponses des outils connectés | tickets Jira, diffs GitLab |
| Historique | Tout l’échange de la session | questions + réponses accumulées |
| Code lu | Fichiers inspectés par l’agent | pom.xml, classes Java, configs |
Les 3 leviers
Chaque outil attaque un flux différent. Caveman agit sur l’entrée, ponytail sur la sortie, headroom sur les résultats d’outils.
Caveman — l’entrée
Mesuré (rapport 11/06, 36 fichiers de référence, 52 163 tokens) :
| Mode | Gain corpus | Gain / session typique | Risque |
|---|---|---|---|
| Full | −14 % | −900 tok | faible — lisible, maintenable |
| Ultra | −22 % | −1 433 tok | moyen — voir limite |
Mode de communication ultra-dense : il compacte les fichiers de référence chargés et les réponses, sans toucher au fond technique. Meilleur ROI sur la prose (guides de tests, debug, refactoring) : jusqu’à −36 %. Sur le code dense (OAuth, CVE, Gherkin) : seulement −8 %, peu rentable.
Ponytail — la sortie
| Réponse | Contenu | Tokens |
|---|---|---|
| Sans ponytail | code + explications + boilerplate + “on pourrait aussi…” | ~800 tok |
| Avec ponytail | code seul + 2 lignes max | ~350 tok |
→ ~−55 % par réponse en mode full. Ponytail applique YAGNI à l’IA : pas de code non demandé, pas d’abstraction spéculative, pas de scaffold “pour plus tard”. L’effet se cumule — chaque réponse plus courte reste dans l’historique, la jauge monte moins vite, la session longue reste cohérente plus longtemps.
Headroom — les résultats d’outils
Là où caveman et ponytail ne vont pas : chaque commande bash, lecture de fichier, appel Jira ou GitLab renvoie un volume qui entre direct dans le budget. Un diff un peu long, une liste de tickets, une stacktrace : 2 000 à 10 000 tokens injectés d’un coup.
Headroom est un proxy local (Python, en arrière-plan). Avant chaque envoi au LLM, il intercepte les gros résultats d’outils (> 2 000 caractères) dans les sessions déjà chargées (> 20 000 tokens) et les compresse silencieusement. Prompts, réponses et métadonnées restent intacts ; des guards garantissent qu’aucun contenu n’est altéré ni perdu.
Gains (sessions à fort outillage — CI/CD, Jira, lectures de fichiers) :
- −30 % à −42 % sur les résultats d’outils concernés
- indicateur temps réel dans le footer :
✓ Headroom -42% (12 345 saved) - commandes :
/headroom(statut),/headroom on|off,/headroom stats
L’effet combiné
Session de développement typique — 20 échanges, 4 fichiers de référence, bash + lectures + MCP actifs. Coût évité estimé à prix modèle-frontière (~3 $/M tok en entrée) ; le mix réel glm/local le ramène à une fraction.
| Poste | Volume | Outil | Économie | Coût évité * |
|---|---|---|---|---|
| Skills chargés | ~5 854 tok | Caveman ultra | −1 433 tok (−24 %) | ~$0,004 |
| Historique | ~15 000 tok | Ponytail | −4 500 tok (−30 %) | ~$0,014 |
| Résultats d’outils | ~30 000 tok | Headroom | −10 500 tok (−35 %) | ~$0,032 |
| Total session | ~51 000 tok | 3 outils | −16 400 tok (−32 %) | ~$0,05 |
* Part entrée/contexte uniquement.
→ −30 % sur une session standard, jusqu’à −40 % sur une session à fort outillage (debug long, pipeline CI, Jira + GitLab en parallèle). Les trois outils sont indépendants et cumulables.
Ce qu’on garde, ce qu’on surveille
| Outil | Ce qu’on garde (mesuré) | Ce qu’on surveille |
|---|---|---|
| Caveman | −36 % sur la prose méthodo, 0 perte de sens | ultra floute “MUST”/“HARD-GATE” ; −8 % seulement sur le code dense |
| Ponytail | ~−55 % par réponse (~800→~350 tok), “code cadeau” éliminé | peut sous-livrer sur une demande volontairement détaillée → “donne la version complète” |
| Headroom | −30 à −42 % sur les résultats d’outils, 0 intervention après autoStart | recul limité : pas encore de mesures longue durée hors outil |
TL;DR — lequel activer
| Si tu… | Active |
|---|---|
| charges beaucoup de skills / guides | Caveman |
| veux des réponses sans code parasite | Ponytail |
| travailles avec Jira / GitLab / diffs en masse | Headroom |
Cumulables. Indépendants. Aucun n’exclut l’autre — l’usage combiné fait la majorité du −32 %.
Installation
Caveman — déjà dans les dotfiles pi :
~/.pi/agent/skills/caveman/SKILL.md · activer : caveman mode ou /caveman · intensité : /caveman lite /caveman ultra · stop : normal mode
Ponytail :
pi install git:github.com/DietrichGebert/ponytailactiver : ponytail ou /ponytail · intensité : /ponytail full /ponytail lite · stop : /ponytail stop
Headroom :
pip install "headroom-ai[proxy]"pi install npm:@ryan_nookpi/pi-extension-headroom{ "autoStart": true }vérif : /headroom health · statut : /headroom
Fonctionne avec pi-agent, Copilot, OpenCode. Pour les autres harness : ça dépend du support des skills/extensions.