5 points par 0xvinsohn 2026-03-17 | 1 commentaires | Partager sur WhatsApp

Les agents IA comme Claude Code ou OpenClaw oublient tous leurs souvenirs dès qu’une session se termine. C’est vraiment frustrant de les voir, à la session suivante, repartir de zéro pour réétudier quelque chose comme une stratégie de migration de base de données pourtant décidée ensemble il y a deux semaines.

Bien sûr, il existe diverses solutions pour cela, mais leurs limites sont claires :

  • Tenir avec un seul MEMORY.md : au bout d’une semaine, il déborde et on doit se demander quoi supprimer. Et ce qui est supprimé est perdu pour toujours
  • Recherche RAG : on retrouve ce qu’on cherche, mais l’agent ne peut pas déterminer au départ s’il « savait déjà ça »
  • Tout injecter dans un contexte de 1M : ça fonctionne, mais l’attention se dilue et le coût en tokens explose

Hipocampus résout ce problème avec une mémoire à 3 niveaux (hot/warm/cold) associée à un arbre de compaction à 5 niveaux. Tout l’historique accumulé des conversations et du travail est compressé dans un index ROOT.md d’environ 100 lignes, ce qui permet à l’agent de comprendre immédiatement « ce qu’il sait et ce qu’il ne sait pas » en n’ajoutant qu’environ 3K tokens à chaque appel.

  • Installation terminée avec une seule ligne : npx hipocampus init
  • Zéro dépendance externe + aucune infrastructure, comme un serveur, n’est nécessaire
  • Utilisable immédiatement avec Claude Code et OpenClaw
  • Recherche hybride BM25 + vecteur basée sur qmd (optionnel)
  • Les écritures mémoire sont traitées par un sous-agent, ce qui garde le contexte de la session principale propre
  • Licence MIT

Je l’ai créé parce que je trouvais dommage de perdre du temps et des tokens à voir l’agent reposer sans cesse les mêmes questions et refaire les recherches depuis le début ; et comme cela fonctionne encore mieux que prévu, je l’ai publié en open source.

1 commentaires

 
gykim 2026-03-17

C’est bien. De mon côté, je conserve l’historique de tout mon travail par date pour ensuite faire un grep dessus, donc je vais essayer ça.