Mémoire pour agents IA : de la complexité à 300 lignes de code

Le développeur Nikolay Gusev explique comment il a trouvé la solution optimale pour la mémoire des agents IA. Au lieu de l'inextricable MemPalace, qui a produit 58k doublons, il a bâti un système simple de 300 lignes de code et de fichiers markdown. Pour monter en charge, il propose ClickHouse avec recherche vectorielle et partitionnement.

Traité par IA depuis Habr AI ; édité par Hamidun News
Mémoire pour agents IA : de la complexité à 300 lignes de code
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1Recherche vectorielle via la fonction `cosineDistance()` : recherche rapide de souvenirs sémantiquement proches
Chiffre clé #2Recherche textuelle avec l'index `tokenbf_v1` : recherche plein texte dans la mémoire
Partitionnement par user_idl'isolation des données des utilisateurs est intégrée à la base

La mémoire est l'un des problèmes les plus ardus lorsqu'on construit des systèmes autonomes à base d'agents IA. Le développeur Nikolay Gusev a passé des mois à chercher une solution viable et raconte comment il est arrivé à une approche à la fois simple et évolutive.

MemPalace et la première erreur

Tout a commencé par une idée ambitieuse : MemPalace, un système de mémoire inspiré de l'architecture des palais médiévaux. Sur le papier, c'était astucieux, mais en pratique il a produit 58 mille fragments en double et s'est transformé en labyrinthe infranchissable. Trop de couches d'abstraction, trop de magie. L'agent se perdait dans sa propre mémoire.

Le chemin vers la simplicité

Après MemPalace, l'auteur a ramené la stack à quatre composants : MEMORY.md (base principale), USER.md (contexte utilisateur), SQLite state.db (état), HippoRAG (recherche) et des fichiers wiki (données structurées). Mais même cela lui paraissait excessif. Le bon choix a été d'écrire `findings_to_wiki`, un simple script Python de 300 lignes qui enregistre automatiquement les analyses structurées (repérées par des titres comme `## Findings`) dans des fichiers markdown et les convertit en pages wiki. Pas de frameworks, pas d'ORM : seulement des fichiers et du texte.

Passer à l'échelle : ClickHouse

Avec un seul agent, le stockage en fichiers fonctionne parfaitement. Mais pour gérer plus de 100 utilisateurs en simultané, il faut une vraie base de données. C'est là qu'intervient ClickHouse 24.x. Ses principales fonctionnalités :

  • Recherche vectorielle via la fonction `cosineDistance()` : recherche rapide de souvenirs sémantiquement proches
  • Recherche textuelle avec l'index `tokenbf_v1` : recherche plein texte dans la mémoire
  • Partitionnement par user_id : l'isolation des données des utilisateurs est intégrée à la base
  • TTL pour la suppression automatique : les anciens enregistrements sont effacés sans intervention manuelle

ClickHouse exécute analyses et recherches sur des millions d'enregistrements en quelques millisecondes. Pour la mémoire d'un agent, c'est largement suffisant.

Ce que cela signifie

L'enseignement principal : ne commencez pas par la montée en charge. Résolvez le problème simplement (fichiers, markdown, 300 lignes de code), puis passez à l'échelle seulement si nécessaire. Nikolay a montré que la meilleure voie d'ingénierie va de la complexité vers la simplicité, et non l'inverse.

Dossier

Questions clés sur cet article

Que sait-on sur MemPalace et la première erreur ?

Tout a commencé par une idée ambitieuse : MemPalace, un système de mémoire inspiré de l'architecture des palais médiévaux. Sur le papier, c'était astucieux, mais en pratique il a produit 58 mille fragments en double et s'est transformé en labyrinthe infranchissable. Trop de couches d'abstraction, trop de magie. L'agent se perdait dans sa propre mémoire.

Que sait-on sur Le chemin vers la simplicité ?

Après MemPalace, l'auteur a ramené la stack à quatre composants : MEMORY.md (base principale), USER.md (contexte utilisateur), SQLite state.db (état), HippoRAG (recherche) et des fichiers wiki (données structurées). Mais même cela lui paraissait excessif. Le bon choix a été d'écrire `findings_to_wiki`, un simple script Python de 300 lignes qui enregistre automatiquement les analyses structurées (repérées par des titres comme `## Findings`) dans des fichiers markdown et les convertit en pages wiki. Pas de frameworks, pas d'ORM : seulement des fichiers et du texte.

Que sait-on sur Passer à l'échelle : ClickHouse ?

Avec un seul agent, le stockage en fichiers fonctionne parfaitement. Mais pour gérer plus de 100 utilisateurs en simultané, il faut une vraie base de données. C'est là qu'intervient ClickHouse 24.x. Ses principales fonctionnalités : Recherche vectorielle via la fonction `cosineDistance()` : recherche rapide de souvenirs sémantiquement proches Recherche textuelle avec l'index `tokenbf_v1` : recherche plein texte dans la mémoire Partitionnement par user_id : l'isolation des données des utilisateurs est intégrée à la base TTL pour la suppression automatique : les anciens enreg

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…