Systèmes de mémoire dans les assistants IA
Mémoire de travail, structurée et de récupération pour les assistants.
La mémoire transforme les assistants d’entités réactives en entités persistantes, mais c’est aussi là que de nombreux systèmes pourrissent silencieusement. Les enquêtes soutiennent que la distinction entre mémoire à court terme et à long terme n’est plus suffisante pour la mémoire des agents modernes ; les SDKs OpenAI et LangGraph pointent vers une pile plus simple — mémoire de travail, état durable et récupération.
Les assistants ont besoin d’une mémoire de travail pour l’exécution en cours, d’un état durable pour les faits et préférences stables, et d’une mémoire de récupération pour le contexte d’appui pertinent. Mon point de vue, légèrement opinionné, est que l’état structuré est sous-utilisé, la récupération vectorielle est surutilisée, et que la plupart des échecs de mémoire proviennent des politiques de promotion et d’injection plutôt que du choix de stockage.
L’autre point important est que la mémoire ne règle pas automatiquement le problème du contexte long. LoCoMo montre que la mémoire conversationnelle à très long terme reste difficile, et « Lost in the Middle » (Perdu au milieu) démontre que simplement ajouter plus de jetons au modèle peut dégrader les performances lorsque les informations pertinentes se retrouvent au milieu du prompt. Les bons systèmes de mémoire sont sélectifs, stratifiés et explicites quant aux priorités.
Ce guide se trouve dans le Hub Mémoire des Systèmes IA comme carte transversale pour la couche mémoire à l’intérieur de L’Architecture des Assistants IA.

Comment penser à la mémoire des assistants
La mémoire des assistants n’est pas le même problème que la PKM (Personal Knowledge Management), les wikis ou les pipelines RAG autonomes — PKM vs RAG vs Wiki vs Systèmes de Mémoire cartographie ces paradigmes au niveau de l’architecture des connaissances. Ce guide reste un niveau en dessous, dans les contrats d’exécution que les assistants implémentent réellement.
La manière la plus propre de penser à la mémoire n’est pas comme un « historique de chat », mais comme un ensemble de contrats de stockage avec des rôles différents. Un magasin préserve le fil actif. Un autre magasin conserve l’état utilisateur durable. Un autre soutient la recherche sémantique sur les documents ou les interactions passées. Les orientations d’OpenAI sur la mémoire pour la personnalisation rendent cela explicite en séparant la mémoire globale et la mémoire de session, tandis que LangGraph sépare la persistance au niveau du fil des magasins à long terme entre les conversations.
La mémoire est importante car les assistants de production répètent le travail, revisitent les objectifs et opèrent sur des jours ou des semaines. Les Agents Génératifs ont popularisé le modèle de stockage des expériences, de réflexion sur celles-ci et de récupération dynamique pour la planification future. MemGPT a poussé plus loin en modélisant la mémoire comme des niveaux et des mouvements entre magasins rapides et lents. Les systèmes plus récents tels que A-MEM et Mem0 se concentrent sur le lien, la consolidation et l’efficacité de déploiement plutôt que sur le simple volume de rappel.
Types de mémoire
Les assistants de production ont généralement besoin de trois couches coopérantes. La FAQ ci-dessus les nomme ; les sections ci-dessous expliquent comment chacune se comporte dans les systèmes réels.
Mémoire à court terme
La mémoire à court terme est le contexte de travail de la conversation ou de l’exécution en cours. Les Sessions OpenAI préparent automatiquement l’historique de la conversation avant chaque exécution et ajoutent de nouveaux éléments après chaque exécution. LangGraph implémente la même idée comme persistance au niveau du fil via un pointeur de contrôle (checkpointer). Cette couche maintient la cohérence locale, mais c’est aussi la première chose qui explose lorsque les résultats d’outils, les lectures de fichiers ou les chats longs s’accumulent.
Mémoire de récupération à long terme
La mémoire de récupération à long terme stocke des éléments qui sont consultés lorsqu’ils sont pertinents plutôt que rejoués à chaque tour. Cela chevauche avec RAG en tant que technique de récupération, mais ce n’est pas toute l’histoire de la mémoire de l’assistant — les wikis et les corpus PKM alimentent souvent l’index tandis que l’état structuré et la mémoire de session vivent ailleurs, comme le montre clairement la comparaison PKM/RAG/wiki/mémoire ci-dessus. Dans le RAG classique, le modèle combine la mémoire paramétrique avec la mémoire non paramétrique telle qu’un index vectoriel dense. Self-RAG améliore la récupération naïve en rendant la récupération à la demande plutôt que fixe pour chaque demande. Dans les systèmes d’assistants pratiques, c’est généralement le magasin vectoriel ou la couche de transcript searchable.
Mémoire structurée
La mémoire structurée stocke des faits, préférences ou contraintes durables dans des champs explicites avec des règles de priorité. Le cookbook de personnalisation d’OpenAI est inhabituellement clair ici. La mémoire globale et la mémoire de session ont des rôles différents, la dernière instruction de l’utilisateur l’emporte, la mémoire de session peut remplacer la mémoire globale pour la tâche en cours, et la mémoire qui entre en conflit avec l’intention actuelle de l’utilisateur doit déclencher une clarification plutôt qu’une obéissance silencieuse. C’est pourquoi l’état structuré est souvent meilleur que la récupération pour les préférences stables, les politiques ou les contraintes permanentes.
Mécaniques de récupération
Un flux de récupération typique a cinq étapes : capture, encodage, recherche, reclassement ou filtrage, puis injection. Pinecone, Weaviate, Qdrant, Redis et Milvus documentent tous des variantes de ce modèle. Certains ne supportent que les vecteurs denses, d’autres supportent la récupération hybride qui combine recherche sémantique et lexicale, et certains exposent des filtres de métadonnées ou des espaces de noms pour le contrôle de la location et de la portée. Le point d’ingénierie est simple. La qualité de la récupération dépend autant du filtrage, du chunking et de la stratégie de classement que du modèle d’embedding lui-même.
La récupération hybride est généralement le défaut raisonnable lorsque les requêtes mélangent sens et termes exacts. Weaviate documente la recherche hybride avec un paramètre alpha équilibrant les composants vectoriels et mots-clés, Qdrant supporte les requêtes hybrides et multi-étapes via son API Query et les méthodes de fusion de scores, et Milvus décrit la récupération dense, creuse et hybride dans le même système. Cela compte pour les assistants car les utilisateurs demandent souvent à la fois le sens approximatif et des identifiants exacts, noms de fichiers, numéros de révision ou codes produits. Lorsque le côté lexical vit dans Postgres ou Elasticsearch plutôt qu’à l’intérieur de la base de données vectorielle, Recherche textuelle complète PostgreSQL vs Elasticsearch vous aide à choisir où la recherche par mots-clés devrait s’exécuter en production.
Un autre point opinionné : la récupération ne devrait pas décider de la politique. Elle devrait fournir des candidats. L’assistant a encore besoin de règles structurées pour la priorité, la confidentialité, la récence et la résolution de conflits. L’exemple de mémoire basée sur l’état d’OpenAI rend cela explicite, et c’est un modèle beaucoup plus sain que de prétendre que la recherche de similarité seule peut résoudre l’état utilisateur contradictoire.
Problèmes courants
L’échec le plus courant est une mémoire périmée ou contradictoire. Le cookbook de mémoire à long terme d’OpenAI appelle la consolidation de mémoire l’étape la plus sensible et sujette aux erreurs, listant l’empoisonnement de contexte, la perte de mémoire, les mémoires dupliquées et la gestion des contradictions comme préoccupations centrales. C’est correct, et c’est là que de nombreux assistants échouent silencieusement. Ils se souviennent de trop de choses, trop tôt, et sans règle pour oublier.
Le deuxième échec est la surcharge de contexte. LangGraph avertit que les longues conversations peuvent dépasser la fenêtre de contexte du LLM et recommande la taille, la suppression, la summarisation ou la gestion des points de contrôle. OpenClaw élague de manière similaire les anciens résultats d’outils du contexte en mémoire tout en préservant le transcript complet sur le disque. Ce ne sont pas des optimisations optionnelles. Elles sont requises si votre assistant lit, recherche ou exécute quoi que ce soit de non-trivial.
Le troisième échec est de supposer que le contexte long équivaut à un rappel fiable. LoCoMo montre que la mémoire conversationnelle à long terme est encore difficile, et « Lost in the Middle » montre la sensibilité à la position à l’intérieur des longs prompts. Si la mémoire est importante, ne comptez pas sur le bourrage brut de prompts. Utilisez la compaction, la récupération et un état explicite.
Compromis
La couche de base de données vectorielle est là où de nombreuses équipes d’assistants font des paris de plateforme précoces. La comparaison ci-dessous se concentre sur les caractéristiques de produit documentées qui comptent pour la conception de la mémoire des assistants.
| Système | Ce qui se distingue | Meilleur ajustement |
|---|---|---|
| Pinecone | Base de données vectorielle gérée avec embedding intégré, reclassement, filtres de métadonnées, espaces de noms et support pour le texte complet de style dense, creux et BM25 dans un seul schéma | Équipes qui veulent une récupération gérée avec une infrastructure minimale |
| Weaviate | Base de données vectorielle open-source stockant des objets et des vecteurs, avec recherche sémantique et hybride et positionnement RAG fort | Équipes qui veulent la flexibilité open-source avec récupération hybride |
| Qdrant | Recherche vectorielle native IA avec filtrage, requêtes hybrides et multi-étapes, plus un mode Edge intégré capable de fonctionner hors ligne | Équipes qui veulent le contrôle de la recherche, le déploiement edge ou un filtrage fort |
| pgvector | Recherche de similarité vectorielle à l’intérieur de Postgres, avec recherche exacte et approximative plus les fonctionnalités ACID, JOINs et récupération | Équipes déjà standardisées sur Postgres et les données relationnelles |
| Milvus | Base de données vectorielle native cloud avec stockage et calcul désagrégés, plus récupération dense, creuse et hybride | Charges de travail de récupération à grande échelle et déploiements distribués |
Une fois que vous avez choisi un backend, son exploitation est un problème d’infrastructure de données — Postgres avec pgvector pour les métadonnées de session et les vecteurs sur une pile, ou Neo4j lorsque la mémoire de récupération est en forme de graphe plutôt qu’en chunks plats.
Le modèle de latence et de coût ci-dessous est une synthèse de conception basée sur les modèles opérationnels décrits dans OpenAI Sessions et les orientations de compaction, la gestion de mémoire LangGraph, la mémoire basée sur l’état d’OpenAI et le comportement de récupération documenté de Redis et des magasins vectoriels. Il est intentionnellement qualitatif, car les nombres réels dépendent de la taille du corpus, du modèle d’embedding, du placement réseau et de la mise en cache.
| Tactique de mémoire | Latence de lecture | Latence d’écriture | Pression de coût des jetons | Coût infrastructure | Quand cela vaut le coup |
|---|---|---|---|---|---|
| Historique de session brut | La plus basse | La plus basse | La plus haute | La plus basse | Chat multi-tour simple et exécutions courtes |
| Mémoire de résumé ou de compaction | Basse à moyenne | Moyenne, car la summarisation elle-même est une étape de modèle | Moyenne à basse | Basse à moyenne | Travaux longs où l’exécution active doit continuer |
| Profil et état structurés | Basse | Moyenne | Basse | Basse | Préférences durables, règles et contraintes permanentes |
| Récupération vectorielle ou hybride | Moyenne | Moyenne | Basse à moyenne | Moyenne | Grands corpus, historique searchable, ancrage de documents |
| Rejouement complet de tout | Haute et de plus en plus instable | Basse | La plus haute | Infrastructure basse, dépense modèle haute | Presque jamais, sauf pour de minuscules corpus et débogage |
Exemples d’implémentation
La pile actuelle d’OpenAI donne deux modèles de référence utiles. Le premier est Sessions pour la continuité à court terme entre les exécutions. Le second est la mémoire à long terme basée sur l’état, où les champs de profil structurés et les notes de mémoire globale sont injectés au démarrage de la session, les notes de session sont distillées pendant l’exécution, et une étape de consolidation promeut uniquement les éléments durables dans la mémoire globale. Cette boucle injecter → raisonner → distiller → consolider est l’un des modèles de mémoire publics les plus clairs disponibles actuellement.
LangGraph fournit une séparation similaire mais agnostique au framework. Les checkpointers gèrent la mémoire de thread à court terme et les magasins gèrent la recherche à long terme entre les conversations. Le magasin peut être recherché à l’intérieur des nœuds au moment de l’exécution, ce qui en fait une bonne conception de référence pour les assistants qui ont besoin d’orchestration explicite plutôt que de magie de framework cachée.
Hermes est un exemple public utile de mémoire stratifiée dans la nature. Sa mémoire intégrée utilise MEMORY.md, USER.md et la recherche de session SQLite FTS5, tandis que les plugins de fournisseur externes ajoutent la mémoire de graphe, la récupération sémantique, l’extraction automatique de faits et la modélisation utilisateur. Les mécaniques complètes sont documentées dans Système de Mémoire de l’Agent Hermes, et les huit backends pluggables sont comparés dans Fournisseurs de mémoire d’agent comparés.
OpenClaw offre une approche différente, avec élagage de session, mémoire active optionnelle qui s’exécute avant la réponse principale, et un système de Rêve opt-in pour la consolidation de mémoire en arrière-plan. Ces exemples valent la peine d’être notés car ils traitent la mémoire comme un sous-système opérationnel, pas juste comme une astuce de récupération. Pour voir comment OpenClaw s’aligne sur la pile d’assistant à cinq couches plus large, consultez Aperçu du système OpenClaw.
Les prototypes de recherche pointent dans la même direction. MemGPT utilise des niveaux de mémoire hiérarchiques et un flux de contrôle pour la gestion de contexte, A-MEM utilise l’indexation dynamique et le lien inspiré de Zettelkasten, et Mem0 rapporte une meilleure précision avec une latence p95 et un coût de jeton beaucoup plus bas que les baselines de contexte complet sur LoCoMo. Vous n’avez pas besoin de copier ces systèmes en entier, mais leur leçon partagée est claire. La qualité de la mémoire vient de la sélection et de l’organisation, pas du stockage de tout pour l’éternité.
Quand la mémoire aide versus nuit
La mémoire aide lorsque l’assistant rencontre répétitivement des préférences stables, des contraintes durables, des leçons de workflow réutilisables, ou de grands corpus externes qui ne peuvent pas tenir dans un prompt. Le guide des agents fiables d’OpenAI fait bien la distinction. La compaction aide l’exécution longue en cours à continuer, tandis que la mémoire aide les exécutions futures à réutiliser les leçons de workflow. C’est le bon modèle mental pour la plupart des assistants d’affaires.
La mémoire nuit lorsque la tâche est en un seul tir, l’état de l’utilisateur change souvent, l’index de récupération est bruyant, ou le système ne peut pas réconcilier les conflits. L’exemple de mémoire de voyage d’OpenAI avertit que la mémoire de session ne devrait pas automatiquement devenir mémoire globale, et il déclare explicitement que la mémoire n’est pas une frontière de sécurité. Si votre assistant traite chaque chaîne rappelée comme vérité, vous avez construit un moteur de confusion, pas un système de mémoire.
Une boucle de mémoire sélective
La boucle de mémoire robuste la plus simple est sélective et étalonnée. Chargez l’état durable, récupérez le contexte d’appui, répondez, capturez uniquement les mémoires candidates, puis consolidez plus tard. Tant le modèle basé sur l’état d’OpenAI que les papiers de mémoire récents vont dans cette direction.

Sans traçage et évaluations, les changements de mémoire sont difficiles à déboguer. Lorsque vous promouvez de nouveaux faits ou changez la politique de récupération, associez ces changements aux modèles d’observabilité dans Observabilité pour les Systèmes LLM afin de voir quelle couche a injecté quoi.
À retenir
La pile de mémoire pratique pour les assistants n’est pas « utilisez juste une base de données vectorielle ». C’est une mémoire de travail pour l’exécution en direct, un état structuré pour la vérité durable, une mémoire de récupération pour les preuves d’appui, et une politique de consolidation conservatrice qui oublie aussi délibérément qu’elle se souvient. Les recherches récentes et les orientations SDK actuelles pointent toutes dans cette direction.
Pour la pile d’assistant complète autour de cette couche, commencez par Architecture des Assistants IA. Pour la mémoire bornée spécifique à Hermes et les plugins de fournisseur, suivez Système de Mémoire de l’Agent Hermes et Fournisseurs de mémoire d’agent comparés.