Idée principale
On range d'ordinaire ce qu'on veut retenir par thème : un fichier par sujet, un dossier par domaine. Une mémoire d'agent ne se découpe pas ainsi. Elle se découpe selon le temps pendant lequel chaque chose reste vraie.
Trois étages, et chacun a une règle d'écriture différente. L'immédiat est ce que la session courante a sous la main, il disparaît avec elle. Le log quotidien enregistre ce qui s'est passé aujourd'hui — un bug rencontré, un correctif tenté, un point resté ouvert — et perd son intérêt en quelques jours. La mémoire longue, dans un long_memory.md maintenu à jour, ne garde que ce qui vaudra encore dans six mois : un fait technique établi, une règle du projet, une décision structurante.
La même information ne s'écrit donc pas au même endroit selon le moment. « L'extraction du transcript échouait ce matin » appartient au log du jour ; « le hook doit être appelé depuis /tmp » appartient à la mémoire longue. Confondre les deux produit soit un journal qu'on ne relit jamais, soit une mémoire longue diluée dans l'anecdote.
Pourquoi c'est important
Le critère de rangement décide de ce qu'on peut recharger. Une mémoire par sujet oblige à tout relire pour savoir où en est le travail ; une mémoire par durée de vie permet de dire « donne-moi la mémoire longue et les deux derniers jours » et d'obtenir exactement ce qu'il faut pour reprendre.
C'est aussi ce qui rend possible une politique d'oubli. Un étage dont on sait qu'il se périme peut s'archiver sans débat.
Nuances et limites
La durée de vie d'une information se juge au moment où on l'écrit, c'est-à-dire au pire moment : une décision prise ce matin paraît structurante, et six semaines plus tard elle n'est qu'un détail d'implémentation abandonné.
Et les étages fuient : un log quotidien contient toujours un fait durable que personne n'a promu.
Questions ouvertes
- À quel signal reconnaît-on qu'une ligne du log du jour appartenait en fait à la mémoire longue ?