MÉMOIRE VIVANTE
L'Exocortex
Des milliers de sessions agents cloisonnées, zéro consolidation — l'exocortex est l'organe cognitif qui capte, structure et restitue l'ensemble.
La matière noire des données agents
Des semaines de travail agent actif sur une quinzaine de projets laissent derrière elles des milliers de fichiers de session JSONL — de l'ordre de 1,5 Go — dans ~/.claude/projects/. Un corpus colossal, qui ne dit rien. En parallèle, les conversations agents sur Telegram et Discord, les commits git, les pull requests, les issues et les notes vocales vivent chacun dans leur silo.
Chaque agent — Lyra, Claude Code — se construit une mémoire fragmentée, sans accès à ce que les autres savent déjà. Les mêmes conditions récurrentes ressurgissent. Le contexte s'évapore entre les sessions. Les apprentissages ne s'accumulent jamais. Ce qui manque n'est pas du stockage ; c'est un organe — capable de capter, d'oublier sélectivement, et de faire remonter la bonne chose au bon moment.
Ce corpus non structuré, massif et invisible, nous l'appelons la matière noire des données agents : présent, lourd, et muet pour les agents qui l'ont produit.
Pourquoi « exocortex »
Un exocortex est une extension externe du cortex cérébral — un système qui porte la cognition au-delà du crâne. La métaphore est exacte : ce n'est pas un outil que l'on consulte, c'est un organe qui pense avec l'opérateur et ses agents. Le fondement est la thèse de l'esprit étendu de Clark & Chalmers (1998) : les outils utilisés de façon habituelle — un carnet, un agenda, un téléphone — deviennent des parties intégrantes d'un processus cognitif. L'exocortex en tire la conclusion. Un système numérique partagé entre l'humain et les agents devient un acteur cognitif à part entière.
Ce qu'il n'est pas : un cache (une réplique pour la vitesse), un dépotoir (de l'accumulation sans structure), un index RAG (de la récupération de texte). Ce qu'il est : un graphe vivant qui apprend, oublie et se réorganise ; une carte typée où chaque entité porte un sens ; une mémoire qui décroît et se renforce comme une mémoire biologique.
L'actif durable, c'est le graphe. Producteurs, analyseurs et consommateurs sont tous interchangeables — c'est la mémoire structurée qu'ils alimentent qui se capitalise.
Deux cartographies, un tissu
La mémoire, ici, n'est pas indifférenciée. Elle se sépare en deux cartographies couplées, reliées par un tissu d'évènements bruts.
Le monde externe (world:*) contient tout ce qui existe indépendamment de l'opérateur — personnes, organisations, projets, contrats, évènements, sujets, lieux, artefacts. C'est une ontologie enrichie statiquement, l'analogue de la mémoire sémantique de Tulving (1972) : des faits décontextualisés sur le monde.
Le monde interne (self:* + agent:*) contient le fonctionnement propre de l'opérateur — patterns, valeurs, préférences, rythmes de travail, conditions récurrentes — et celui de chaque agent — compétences, personas, jeux d'instructions, modes d'échec observés. C'est une ontologie dynamique, l'analogue de la mémoire procédurale et du réseau du mode par défaut.
Entre les deux court le tissu : des évènements bruts, en ajout seul, étiquetés par source, immuables — la couche épisodique, datée et vécue. Une seule interaction peut mettre à jour plusieurs entrées dans les deux cartographies à la fois : clore un contrat par message touche world:person, world:contract et self:operator:pattern:contract-closure depuis un unique évènement.
world:* externe et le self:*/agent:* interne — toutes deux alimentées par un unique tissu immuable d'évènements bruts.Quatre domaines par responsabilité
Le système se décompose par responsabilité, non par source de données — ainsi toute nouvelle source se branche sans toucher au cœur, et tout analyseur se remplace sans casser le graphe. Quatre domaines :
- Producteurs : analysent une source et émettent des évènements typés — ingestion JSONL Claude Code, ingestion git/gh, ingestion mail/Telegram/voix à venir. Interchangeables.
- Substrat (
cortex-memory) : stocke, consolide, synthétise et sert. L'actif stable de long terme. - Analyseurs (
cortex-insight) : transforment les évènements en constats typés — le pipeline comportemental sur les sessions Claude Code. Remplaçables. Un même dépôt peut être producteur et analyseur quand les rôles sont indissociables. - Consommateurs : lisent le graphe pour agir — l'assemblage
/devde Claude Code, le rappel de Lyra pour le contexte de chat, le digest comportemental hebdomadaire. Autonomes.
À la frontière, les producteurs parlent au substrat via une enveloppe typée, et le substrat émet des objets Observation sur NATS (roxabi.memory.observations.publish, roxabi.memory.query.*). Ce contrat fait l'objet du document Contrat d'Observation.
Les quatre couches du substrat
Au sein de cortex-memory, quatre couches successives transforment le flux brut en connaissance actionnable.
- Couche 1 — Journal d'évènements bruts. En ajout seul, immuable, étiqueté par source, assaini. L'enregistrement fossile ; la vérité-terrain qui peut régénérer tout ce qui est au-dessus. Chaque
MemoryEventporte un ULID, une source, un timestamp, un type/sous-type, un acteur, un projet, un triplet de corrélation et une charge utile. - Couche 2 — Graphe de connaissance. Entités et relations, avec décroissance temporelle, déduplication (cosinus + alias), détection de conflits (Jaccard + polarité) et un score
schema_fitqui accélère le familier (>0,7) et met en quarantaine la matière noire (<0,3). Un Retain Job heuristique route chaque (source, sous-type) vers le handler qui en extrait les entités. - Couche 3 — Vérité compilée. Une synthèse markdown par entité, régénérée chaque nuit, versionnée par une chaîne
superseded_by, réécrite seulement quand la force franchit le seuil de régénération (~10 %). L'analogue de la reconsolidation mnésique : chaque rappel réécrit la trace. - Couche 4 — Actuation. La boucle se ferme. Le système propose des modifications aux artefacts mêmes qu'il observe —
CLAUDE.md, skills, entrées de mémoire — derrière une porte humaine obligatoire ; une fois approuvée, une PR automatique atterrit sur le dépôt cible.
Projeté sur Atkinson-Shiffrin (1968) : C1 ≈ mémoire sensorielle, C2 ≈ mémoire à long terme, C3 ≈ mémoire de travail/narrative, C4 ≈ comportement modifié.
Force mémorielle : décroissance, récupération, émotion
La force d'un nœud dans le graphe est continue et dynamique, jamais binaire. Elle se calcule à partir de quelques termes, chacun rattaché à un phénomène cognitif validé.
strength(t) = base × decay × retrieval_boost × emotional_mult
decay = 0.5 ^ (Δt / effective_half_life)
effective_half_life = half_life × reward_factor
reward_factor = 1 + 0.5 × ((pos − neg) / (pos + neg + 1))
retrieval_boost = 1 + 0.1 × log₂(retrieval_count + 1)
emotional_mult = neutre 1.0 · positif 1.3 · négatif 1.5 · critique 2.0Les demi-vies varient selon la classe d'entité : ~30 jours pour les patterns comportementaux, 60 pour les instructions, 90 pour les entités du monde. Chaque terme a une filiation — decay → courbe de l'oubli d'Ebbinghaus (1885) ; retrieval_boost → effet de test (Roediger & Karpicke 2006) ; emotional_mult → modulation amygdalienne (Cahill & McGaugh 1998) ; reward_factor → plasticité dopaminergique (Schultz 1998) ; schema_fit → assimilation/accommodation de Piaget. Le modèle est biologiquement plausible et ne requiert aucun LLM en Phase 1. Le document Décroissance Temporelle développe la décroissance en détail.
L'Ouroboros : une boucle de rétroaction fermée
L'exocortex devient véritablement vivant à l'instant où il se met à modifier les artefacts qui guident son propre comportement. La boucle a cinq étapes : Capter (évènements, multi-source, en ajout seul) → Comprendre (le Retain Job extrait entités et relations) → Synthétiser (la Vérité compilée régénère le markdown par entité chaque nuit) → Proposer (la Couche 4 émet un diff vers un CLAUDE.md, un skill ou une entrée de mémoire) → Réécrire (un humain approuve, une PR automatique commit). La session suivante charge le CLAUDE.md mis à jour, et le cercle est bouclé.
Le système ne s'auto-modifie pas — il propose. La décision reste humaine ; la file d'approbation est une porte architecturale, pas une convention molle.
C'est l'apprentissage de second ordre de Bateson (1972) : le Niveau I apprend des associations dans un contexte fixe ; le Niveau II change les règles selon lesquelles on apprend. Un exocortex fermé opère au Niveau II — il réécrit ses propres instructions de fonctionnement. L'extension Phase 3+, GEPA, utilise la mesure des résultats pour faire évoluer ces instructions par sélection adversariale.