temps de lecture : 14 minutes

Vous avez passé des semaines à construire une gouvernance agent impeccable. Eager/Lazy, procédure de fin de session, backups rotatifs. Le système tourne. Puis un jour, l’agent devient lent. Les réponses sont diluées. Vous mesurez : 1414 lignes chargées automatiquement. Et le pire, c’est que le coupable n’est pas le code, ni le backlog, ni les archives de sessions. Le coupable, c’est le fichier qui documente votre méthode.

1. La scène : session 051, quelque chose cloche

30 avril 2026, 16h00. Je suis en pleine session sur magic_stick, mon projet de build d’ISO Linux live. L’agent Opencode a chargé automatiquement mes fichiers Eager comme d’habitude — AGENT.adoc, PROMPT_REPRISE.adoc, .agents/INDEX.adoc. Tout est normal.

Sauf que les réponses sont molles. L’agent met deux secondes de plus à raisonner. Il oublie un détail qu’il avait sous les yeux trois messages plus tôt. Ce n’est pas un crash, pas une erreur — c’est une dégradation lente, le genre qu’on ne remarque pas tout de suite.

J’avais déjà vécu ça à la session 048, quand j’avais découvert que les fichiers de gouvernance pesaient 5200 lignes cumulées. J’avais alors conceptualisé le mécanisme Hot/Warm/Cold avec sa sliding window de 10 sessions, ses vagues froides identiques, son capteur à deux déclencheurs. Le problème était réglé. En théorie.

Mais là, on est à la session 051. La rotation backup a bien eu lieu — les fichiers EAGER sont passés de 2087 à 500 lignes. Pourtant, le contexte reste lourd. Quelque chose m’échappe.

J’ouvre un terminal et je tape :

wc -l AGENT.adoc AGENT_MODUS_OPERANDI.adoc PROMPT_REPRISE.adoc \
  .agents/INDEX.adoc .agents/SESSIONS_HISTORY.adoc \
  .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
  287 AGENT.adoc
  627 AGENT_MODUS_OPERANDI.adoc
   51 PROMPT_REPRISE.adoc
  218 .agents/INDEX.adoc
   18 .agents/SESSIONS_HISTORY.adoc
  213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
 1414 total

1414 lignes. La rotation backup a bien taillé dans INDEX, SESSIONS_HISTORY et COMPLETED_TASKS — ils sont propres. Mais il y a un éléphant dans la pièce que je n’avais pas vu : 627 lignes dans un seul fichier. AGENT_MODUS_OPERANDI.adoc.

Ce fichier, c’est celui que j’ai écrit à la session 1 pour documenter la stratégie Eager/Lazy. C’est le manuel de la méthode. Et il est devenu, à lui seul, 44% du contexte EAGER.

Répartition des 1414 lignes EAGER avant audit

L’ironie est totale. Le fichier conçu pour économiser du contexte est devenu le principal consommateur de contexte. C’est comme si le manuel d’utilisation de votre voiture pesait plus lourd que le moteur.

2. L’audit : décortiquer les 627 lignes

Je décide de faire un audit section par section. Pas pour supprimer — pour comprendre ce qui mérite d’être en EAGER et ce qui pourrait vivre ailleurs sans perte de connaissance.

Voici la structure exacte de AGENT_MODUS_OPERANDI.adoc et ce que j’y trouve :

Section Lignes Contenu Déjà présent dans…​

P1 — Vue d’ensemble

64

Problème résolu, principes fondamentaux, analogie tableau de bord vs manuel

P2 — Structure des fichiers

97

Arborescence, politique de chargement, quand charger quoi

P3 — Règles absolues

34

Git interdit, commandes destructrices interdites, secrets interdits

AGENT.adoc + INDEX.adoc

P4 — Cycle de vie session

133

Template ouverture, règles de travail, 6 étapes fin de session, checklist

AGENT.adoc §Fin session + INDEX.adoc

P5 — Métriques et seuils

49

Session idéale (15-30 min, 1-3 fichiers), signes d’alerte

P6 — Types de sessions

72

Tableau de détection, format de proposition, exceptions

P7 — Amélioration continue

39

Métriques de suivi, revue hebdomadaire

P8 — Checklist démarrage

13

Bootstrap nouveau projet

P9 — Références

30

Fichiers de référence, ressources externes

AGENT.adoc (fichiers EAGER/LAZY)

Annexes A+B

42

Glossaire, historique versions

Le verdict est sans appel :

  • Doublons intégraux (167 lignes) : P3, P4, P9 — tout est déjà dans AGENT.adoc ou INDEX.adoc, souvent mot pour mot

  • Jamais consulté en pratique (215 lignes) : P5, P6, P7, P8, Annexes — de la méta-gouvernance qui n’a jamais servi dans aucune session

  • Connaissance unique (161 lignes) : P1 et P2 — le vocabulaire LAZY/EAGER, l’analogie, la politique de chargement

Sur 627 lignes, 382 sont du bruit. Et ces 382 lignes sont chargées à chaque début de session, consommées par l’agent, diluant son attention avant même que je dise bonjour.

Résultat de l’audit — 627 lignes réparties en doublons, jamais consulté, connaissance unique

Ce diagramme est la clé de tout. Les doublons (jaune) sont du bruit pur — l’agent les lit deux fois, dans deux fichiers différents. Le jamais consulté (rouge) est de la documentation morte — écrite avec soin, jamais utilisée. Seul le vert contient de la connaissance que l’agent ne peut pas trouver ailleurs.

3. La peur de perdre l’ingénierie

À ce stade, j’ai l’évidence sous les yeux : je dois réduire AGENT_MODUS_OPERANDI.adoc. Mais j’hésite.

Ce fichier, je l’ai écrit à la main. Chaque section est le résultat d’une leçon apprise en session réelle. La partie P3 est née d’un rm -rf accidentel sur bakery-plugin qui m’a coûté des tokens Firebase réels. La partie P4 est le résultat de quinze sessions où j’oubliais d’archiver et je perdais le fil. La procédure en 6 étapes n’est pas sortie d’un livre — elle est sortie de la douleur.

Supprimer ces sections, ce serait jeter l’historique de ma propre ingénierie. Les leçons qui les ont produites, les sessions pendant lesquelles je les ai découvertes, les erreurs que je ne veux plus jamais refaire. Ce n’est pas du texte — c’est de l’expérience cristallisée.

C’est là que je formule le principe qui va guider la solution :

Ne jamais supprimer. Toujours relocaliser. La connaissance n’a pas à disparaître du projet. Elle a juste à ne pas être chargée automatiquement quand elle n’est pas nécessaire.

4. La solution : split encyclopédique

Le modèle que je propose est simple et s’inspire de la façon dont Wikipédia a grandi : quand un article devient trop long, on ne le coupe pas — on crée un article détaillé et on garde un résumé dans l’article principal.

Pour AGENT_MODUS_OPERANDI.adoc, cela donne :

  1. Extraire les 161 lignes de connaissance unique (P1 + P2) dans un nouveau fichier LAZY_EAGER_ESSENTIALS.adoc — compacté à ~50 lignes, strictement EAGER

  2. Renommer AGENT_MODUS_OPERANDI.adoc en .agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc — le fichier original de 627 lignes, préservé intact, en cold storage

  3. Ne jamais charger le fichier encyclopédie automatiquement — il est là pour l’humain, pour la distillation future, pour l’agent qu’on invoquera dans six mois avec un meilleur modèle

Architecture du split encyclopédique — ESSENTIALS EAGER + ENCYCLOPEDIE cold storage

Le nom encyclopedies/ n’est pas anodin. Une encyclopédie, ce n’est pas un dossier d’archives — c’est une collection de connaissance organisée, consultable mais pas portable. On ne lit pas l’Encyclopédie Universalis dans le métro. On la garde dans la bibliothèque, et on y va quand on a une question précise.

C’est exactement le rôle de ce dossier : une bibliothèque de référence froide, structurée, exhaustive — que l’agent ne touche pas automatiquement.

5. Le contenu du fichier ESSENTIALS

Voici à quoi ressemble concrètement le nouveau fichier LAZY_EAGER_ESSENTIALS.adoc, extrait et compacté à partir de P1 et P2 :

= Stratégie LAZY/EAGER — Principes Essentiels

[abstract]
Ce fichier définit la stratégie de gestion du contexte agent.
Chargé automatiquement (EAGER) en début de session.

== Principes

|===
| EAGER | LAZY
| Tableau de bord | Manuel du propriétaire
| Chargé automatiquement | Chargé sur demande
| <= 100 lignes, <= 10k tokens | Illimité, détaillé
| Règles absolues, mission courante | Archives, historique, références
|===

== Politique de Chargement

|===
| Fichier | Type | Quand charger
| PROMPT_REPRISE.adoc | EAGER | Début session (auto)
| *_ESSENTIALS.adoc | EAGER | Début session si EPIC active
| .agents/INDEX.adoc | EAGER | Début session (auto)
| *_REFERENCE.adoc | LAZY | Sur besoin (détails architecture)
| .agents/sessions/N-*.adoc | LAZY | Sur demande (détails session)
| .agents/encyclopedies/*.adoc | COLD | Jamais auto (humain seulement)
|===

== Comment l'Agent Sait Quoi Charger

Début session → PROMPT_REPRISE + INDEX + ESSENTIALS actifs.
Besoin de détails → charger les *_REFERENCE et sessions/ en LAZY.
Connaissance froide → encyclopedies/, jamais automatique.

Cinquante lignes. C’est tout ce dont l’agent a besoin pour comprendre la mécanique. Tout le reste — l’historique des leçons, les analogies détaillées, les procédures pas à pas, les annexes — vit dans l’encyclopédie.

Et le plus important : rien n’a été supprimé. Les 627 lignes d’ingénierie sont toujours là, dans .agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc. Elles sont juste rangées dans la bibliothèque plutôt que sur le plan de travail.

6. Le résultat : -50% de contexte EAGER

Avant le split :

 287 AGENT.adoc
 627 AGENT_MODUS_OPERANDI.adoc
  51 PROMPT_REPRISE.adoc
 218 .agents/INDEX.adoc
  18 .agents/SESSIONS_HISTORY.adoc
 213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
1414 total

Après le split :

 287 AGENT.adoc
  50 LAZY_EAGER_ESSENTIALS.adoc       ← remplace 627 lignes
  51 PROMPT_REPRISE.adoc
 218 .agents/INDEX.adoc
  18 .agents/SESSIONS_HISTORY.adoc
 213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
 837 total                              ← -41%
Répartition des 837 lignes EAGER après audit — gain de 41%

Le plus gros consommateur (AGENT_MODUS_OPERANDI, 627 lignes) a été remplacé par un fichier de 50 lignes. Le gain est immédiat : 577 lignes de contexte libérées. L’agent respire.

Et dans .agents/encyclopedies/, le fichier original de 627 lignes attend. Intact. Avec toutes ses sections — y compris celles qui sont des doublons, y compris celles qui n’ont jamais servi. Parce qu’un jour, un meilleur modèle ou un data scientist humain voudra croiser ces angles, ces redondances assumées, ces leçons apprises. Et ce jour-là, la matière première sera là.

7. Pourquoi le dossier s’appelle encyclopedies/

Le choix du nom n’est pas cosmétique. Il encode la philosophie du mécanisme.

Une archive (archives/) contient des données historiques organisées chronologiquement — comme les COMPLETED_TASKS mensuels. Un backup (backup/) est un snapshot horodaté — une copie de sécurité d’un état passé.

Une encyclopédie, c’est autre chose. C’est une collection de connaissance thématique, structurée par sujet, exhaustive mais non linéaire. On ne lit pas une encyclopédie du début à la fin. On y plonge pour répondre à une question précise.

C’est exactement le contrat de ce dossier :

Dossier

Rôle

Accès

Granularité

archives/

Données historiques (tâches terminées par mois)

LAZY, structuré

Chronologique

backup/

Snapshots froids (vagues de 10 sessions)

COLD, copie intégrale

Chronologique

encyclopedies/

Connaissance thématique exhaustive (méthodologie, patterns)

COLD, jamais auto

Thématique

Cette distinction évite le fourre-tout. Chaque fichier sait où il doit vivre selon ce qu’il contient, pas selon quand il a été créé.

8. La suite logique de la série

Si vous avez lu les deux premiers articles, voici comment les trois pièces s’emboîtent :

Les trois articles de la série gouvernance — progression logique
  • 0108 répond à : « Comment donner une mémoire à l’agent entre deux sessions ? »

  • 0110 répond à : « Comment empêcher cette mémoire d’étouffer l’agent ? »

  • 0111 répond à : « Et si le problème n’est pas la taille des archives, mais ce qu’on a choisi de mettre en EAGER ? »

Le premier article a construit la structure. Le deuxième a ajouté le mécanisme de vieillissement. Le troisième audite le contenu — et découvre que la méthodologie elle-même est devenue le problème.

9. Ce que j’aurais fait différemment

Avec le recul, je vois l’erreur de conception initiale. AGENT_MODUS_OPERANDI.adoc a été créé comme un document unique — un manifeste. C’était la bonne approche pour formaliser la pensée. Mais une fois la pensée formalisée, le document aurait dû être splité immédiatement : l’essentiel en EAGER, l’exhaustif en cold.

Je ne l’ai pas fait parce que j’étais fier du document. 627 lignes d’ingénierie pure, écrites à la main, chaque section fruit d’une leçon de session. C’était mon œuvre. Et comme tout auteur, j’ai eu du mal à la découper.

La leçon : ce n’est pas parce qu’un document est bon qu’il doit être chargé automatiquement. La qualité du contenu n’a aucun rapport avec sa pertinence pour le contexte immédiat de l’agent.

Aujourd’hui, la règle est simple : tout document de plus de 100 lignes dans le contexte EAGER est un suspect. Il mérite un audit. Pas une condamnation — un audit. Et la question n’est jamais « faut-il le supprimer ? » mais « faut-il le charger à chaque session ? »

10. Le guide pour auditer votre propre contexte

Si vous avez suivi les deux premiers articles et mis en place votre propre gouvernance Eager/Lazy, voici une procédure d’audit en cinq étapes :

  1. Mesurer : wc -l sur tous vos fichiers EAGER. Le total devrait être sous 1000 lignes.

  2. Identifier le plus gros : le fichier qui pèse plus de 20% du total est le suspect numéro un.

  3. Auditer section par section : pour chaque section, demandez-vous « Est-ce que cette information est déjà ailleurs ? Est-ce que l’agent l’a déjà lue dans un autre fichier ? Est-ce qu’elle a servi dans les 5 dernières sessions ? »

  4. Classifier : doublon, jamais utilisé, connaissance unique.

  5. Splitter ou relocaliser : ce qui est unique et critique → ESSENTIALS compacté. Tout le reste → encyclopedies/.

Procédure d’audit en 5 étapes

Cette procédure prend 15 minutes. Sur un projet de 50 sessions, elle économise des centaines de tokens par session future. Le ROI est immédiat.

11. Une gouvernance vivante

Ce que cette série de trois articles m’a appris, c’est que la gouvernance agent n’est pas un produit fini. C’est un organisme vivant. Elle grandit avec le projet. Elle attrape des maladies de croissance. Elle nécessite des check-ups réguliers.

La session 048 a révélé que les archives gonflent. La session 051 a révélé que la méthodologie elle-même gonfle. La session 060 révélera probablement autre chose. C’est normal. C’est sain. Une gouvernance qui ne se remet jamais en question est une gouvernance morte.

Les trois mécanismes mis en place — Eager/Lazy, Hot/Warm/Cold, split encyclopédique — forment un système de défense en profondeur contre la saturation du contexte. Aucun n’est suffisant seul. Ensemble, ils se complètent :

  • Eager/Lazy structure l’information par disponibilité

  • Hot/Warm/Cold structure l’information par fraîcheur

  • Audit encyclopédique structure l’information par densité

Les trois couches de défense contre la saturation du contexte

Avec ces trois couches, le contexte agent sur magic_stick est passé de 2087 lignes (avant toute optimisation) à environ 800 lignes — une division par 2,6. Sans avoir perdu une seule ligne de documentation, une seule archive de session, une seule leçon apprise.

Tout est là. Juste mieux rangé.

12. Liens


La connaissance n’a pas à disparaître. Elle a juste à ne pas être chargée quand elle n’est pas nécessaire.