Le module NGT Memory montre comment doter un LLM d'une mémoire persistante sans base vectorielle

NGT Memory est un module de mémoire open source pour LLM qui conserve des faits sur l'utilisateur d'une session à l'autre et les injecte dans les réponses du modèle. Il combine une recherche par cosinus, un graphe associatif, un profil structuré et un filtre de bruit. Dans les tests, le système a doublé la précision factuelle et remporté 17 des 18 scénarios A/B, même s'il vit pour l'instant dans la mémoire d'un seul processus.

Traité par IA depuis Habr AI ; édité par Hamidun News
Le module NGT Memory montre comment doter un LLM d'une mémoire persistante sans base vectorielle
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é #1La similarité cosinus recherche les faits proches par le sens
Chiffre clé #2Un graphe associatif relie des concepts comme « végétarien » et « restaurants »
Chiffre clé #3La consolidation hiérarchique fait passer les faits souvent utilisés en mémoire à long terme

Le projet open source NGT Memory apporte une réponse plus pratique à un vieux problème des LLM : comment ne pas oublier des faits importants sur l'utilisateur d'une session à l'autre. Plutôt que d'étendre indéfiniment le contexte, le module enregistre les faits, construit un profil et injecte la mémoire dans la réponse du modèle.

Comment fonctionne la mémoire

L'auteur part d'une idée simple : conserver tout l'historique du dialogue dans la fenêtre de contexte n'est pratique que jusqu'à la première limite de tokens. Viennent ensuite la troncature des anciens messages, le résumé qui perd des détails ou le branchement d'une base vectorielle externe avec une infrastructure superflue. NGT Memory emprunte une autre voie : la mémoire vit directement dans le processus Python, se lance via une API REST et Docker, et n'exige pas de base de données distincte au départ. Le principe est de récupérer non pas toute la conversation, mais seulement les faits dont le modèle a réellement besoin pour la requête en cours.

  • La similarité cosinus recherche les faits proches par le sens
  • Un graphe associatif relie des concepts comme « végétarien » et « restaurants »
  • La consolidation hiérarchique fait passer les faits souvent utilisés en mémoire à long terme
  • Un profil structuré place l'âge, la ville, le régime et les allergies dans des emplacements distincts

Par-dessus la mémoire textuelle, le module construit aussi un profil de l'utilisateur. Si la personne écrit de façon décousue, le système peut recoller des fragments comme « je » + « 30 » + « ans » en un fait cohérent et le stocker avec une confiance réduite. Si un conflit survient plus tard, par exemple un âge qui diminue soudainement, la mise à jour est bloquée jusqu'à une correction explicite du type « je me suis trompé ». La mémoire se comporte ainsi non comme un journal passif, mais comme une couche de validation qui tente de distinguer les vraies données de l'utilisateur du bruit aléatoire.

Résultats des tests

Ce que l'article a de plus intéressant, ce n'est pas l'architecture elle-même, mais sa vérification sur des scénarios pratiques. Dans une expérience avec un assistant médical, un assistant personnel et un support technique, le mode avec mémoire a fait passer la précision factuelle de 1.22 à 2.44 points sur 3. Dans un test A/B plus réaliste, la mémoire a remporté 17 évaluations sur 18, et la note moyenne des réponses a été de 0.889 contre 0.056 sans mémoire. Séparément, l'auteur a effectué 54 vérifications sur des cas limites et obtenu 51 succès, soit environ 94 %.

« La réponse à des déchets est aussi un déchet. »

Cette formule éclaire une autre couche importante du système : le filtre de qualité. Les messages courts et dénués de sens, les nombres seuls, les caractères spéciaux et même les réponses de l'assistant à ces déchets n'entrent pas en mémoire. Sinon, les faits utiles seraient vite noyés dans le bruit. Ce filtre compte surtout pour les chatbots et les systèmes d'agents, où l'utilisateur écrit souvent par bribes et où le modèle a tendance à produire des phrases polies mais vides, qui encombrent les résultats de la recherche suivante en mémoire.

Principales limites

Malgré de bons résultats, NGT Memory ne peut pas encore être présenté comme une mémoire universelle prête pour la production sans réserves. La version actuelle stocke tout dans la RAM d'un seul processus, de sorte que l'état est perdu au redémarrage du conteneur. Avec plusieurs workers, un autre problème apparaît : chacun détient son propre stockage de sessions, et une requête d'enregistrement peut atterrir dans un processus et la requête de récupération dans un autre. Dans les tests, la mémoire locale est rapide, environ 2–3 ms sur CPU, mais l'essentiel de la latence vient toujours des appels externes d'embeddings et de chat, qui prennent des centaines de millisecondes.

L'auteur décrit aussi des bugs plus terre à terre. Un system prompt trop mou faisait que le modèle voyait la mémoire mais l'ignorait comme un simple indice facultatif. Après durcissement de la consigne, les réponses sont devenues plus stables. Un autre cas fâcheux est venu d'une regex d'extraction du nom : un motif du type I'm + name s'est mis à prendre pour un nom des mots comme allergic. Ces détails montrent que la mémoire des LLM ne dépend pas seulement du retrieval, mais d'une foule de petites règles, sans lesquelles une démo s'effondre vite dans un vrai dialogue.

Ce que cela signifie

NGT Memory illustre un changement utile dans la façon de concevoir les applications LLM : il ne suffit pas que la mémoire soit « intelligente », elle doit être vérifiable, peu coûteuse et résistante aux déchets. Pour les développeurs de bots et d'agents IA, c'est un bon signal : la couche de contexte à long terme peut déjà être construite comme un module d'ingénierie à part entière, et non comme un assemblage de rustines disparates.

Dossier

Questions clés sur cet article

Comment fonctionne la mémoire?

L'auteur part d'une idée simple : conserver tout l'historique du dialogue dans la fenêtre de contexte n'est pratique que jusqu'à la première limite de tokens. Viennent ensuite la troncature des anciens messages, le résumé qui perd des détails ou le branchement d'une base vectorielle externe avec une infrastructure superflue. NGT Memory emprunte une autre voie : la mémoire vit directement dans le processus Python, se lance via une API REST et Docker, et n'exige pas de base de données distincte au départ. Le principe est de récupérer non pas toute la conversation, mais seulem

Que sait-on sur Résultats des tests ?

Ce que l'article a de plus intéressant, ce n'est pas l'architecture elle-même, mais sa vérification sur des scénarios pratiques. Dans une expérience avec un assistant médical, un assistant personnel et un support technique, le mode avec mémoire a fait passer la précision factuelle de 1.22 à 2.44 points sur 3. Dans un test A/B plus réaliste, la mémoire a remporté 17 évaluations sur 18, et la note moyenne des réponses a été de 0.889 contre 0.056 sans mémoire. Séparément, l'auteur a effectué 54 vérifications sur des cas limites et obtenu 51 succès, soit environ 94 %. « La répo

Que sait-on sur Principales limites ?

Malgré de bons résultats, NGT Memory ne peut pas encore être présenté comme une mémoire universelle prête pour la production sans réserves. La version actuelle stocke tout dans la RAM d'un seul processus, de sorte que l'état est perdu au redémarrage du conteneur. Avec plusieurs workers, un autre problème apparaît : chacun détient son propre stockage de sessions, et une requête d'enregistrement peut atterrir dans un processus et la requête de récupération dans un autre. Dans les tests, la mémoire locale est rapide, environ 2–3 ms sur CPU, mais l'essentiel de la latence vient

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…