
Mémoire des agents IA : contexte, historique, sources et règles de projet
Pourquoi une grande fenêtre de contexte n’est pas une mémoire, et comment séparer l’historique de session, les faits à long terme, les sources, les procédures et la suppression.
« L’agent se souvient de tout » masque plusieurs mécanismes différents. Un modèle reçoit un contexte limité pour la requête en cours. Une application peut stocker l’historique de session, récupérer des passages de documents, enregistrer des faits durables sur un utilisateur et charger des règles de projet. Mélanger ces niveaux conduit le système à oublier des détails importants, à répéter des informations périmées et à divulguer des données à la mauvaise tâche.
Une fenêtre de contexte est un établi, pas une archive
Le contexte contient les instructions système, les messages, les résultats d’outils, les fichiers et la réponse. Même une grande fenêtre a un coût et une limite. Plus le texte non pertinent est abondant, plus le détail requis devient difficile à conserver, et une mise en garde initiale peut disparaître au milieu des journaux. Élaguer l’historique et le résumer libère de l’espace, mais un résumé peut lui-même écarter une exception.
Le contexte répond à « que peut voir le modèle maintenant ? ». La mémoire répond à « qu’est-ce que l’application a stocké et que peut-elle récupérer plus tard ? ». Une fenêtre plus grande ne remplace pas la sélection, la provenance et la conservation.
La mémoire à court terme conserve l’état d’un fil
L’objectif actuel, le fichier sélectionné, les outils déjà appelés et le résultat intermédiaire relèvent de l’état de la session ou du fil. LangGraph décrit les fils et les checkpoints comme un moyen de préserver l’état entre les étapes. Cela permet de reprendre après une pause, d’inspecter un checkpoint antérieur ou de récupérer après un échec.
Cet état ne doit pas passer automatiquement dans un autre projet ou une autre conversation. Un jeton temporaire, une hypothèse inachevée et le chemin d’un fichier brouillon sont utiles dans le fil actuel et dangereux comme mémoire globale.
Les mémoires sémantique, épisodique et procédurale font des choses différentes
La mémoire sémantique stocke des faits et des préférences : le fuseau horaire d’un utilisateur, la stack du projet ou un format de rapport choisi. La mémoire épisodique stocke des expériences utiles : comment une défaillance similaire s’est présentée et quelle solution a fonctionné. La mémoire procédurale définit la manière dont le travail est effectué : instructions, politiques, ordre de vérification et règles d’outils. Le guide conceptuel de LangMem utilise cette distinction.
Chaque fait a besoin d’une provenance, d’un périmètre et d’un repère temporel. « L’utilisateur préfère les réponses concises » peut être global. « Ne pas modifier le schéma dans cette release » relève d’un projet et d’une période. Un épisode sans résultat transforme la mémoire en journal bruité ; une procédure sans version continue d’imposer un processus obsolète.
Les sources et le RAG fournissent des preuves, pas une vérité automatique
La récupération trouve des passages pertinents et les ajoute au contexte. Elle aide avec une base de connaissances trop volumineuse pour être envoyée en entier. La qualité dépend du découpage, des métadonnées, des filtres d’accès, du classement et de la fraîcheur. Un passage contenant des mots similaires peut appartenir à un autre produit ou à une autre année.
Conservez un lien vers le document et le passage cité à côté d’un fait récupéré. Affichez la source pour une réponse critique. La suppression d’un document devrait supprimer ou invalider ses embeddings et les résumés dérivés ; sinon, l’agent continue de « se souvenir » de contenus qui n’existent plus.
AGENTS.md et les règles de projet sont une mémoire d’équipe vérifiable
Pour un agent de codage, un fichier de règles explicite est souvent plus utile qu’une mémoire automatique cachée. Il peut consigner les commandes de build, les limites de répertoires, le style, les critères d’achèvement et les actions interdites. Les bonnes pratiques de Codex recommandent de fournir un objectif, un contexte, des contraintes et une définition de terminé, tout en conservant les instructions durables dans AGENTS.md.
Le fichier est versionné avec le code, relu et appliqué dans un périmètre lisible. Un long ensemble de règles contradictoires nuit tout de même aux performances. Gardez les règles racine générales et placez les instructions étroites près de la zone pertinente du projet.
Écrire en mémoire devrait être une décision séparée
Ne transformez pas chaque message en fait à long terme. Classez d’abord un candidat : est-il durable, qui en est propriétaire, quel est son niveau de sensibilité et peut-il être vérifié ? Demandez confirmation pour les faits de profil utilisateur : « Enregistrer cette préférence ? ». Le fait client d’un agent de support appartient à un système de référence gouverné, pas à un index vectoriel sans restriction.
Les mises à jour exigent une résolution des conflits. Un nouveau titre de poste peut remplacer un ancien, tandis qu’une nouvelle adresse peut nécessiter une vérification. Certains faits devraient expirer automatiquement. Les procédures devraient changer au moyen d’une version et d’un propriétaire, et non par le dernier prompt incident.
Oubli, confidentialité et tests complètent l’architecture
Les utilisateurs ont besoin d’un moyen d’inspecter, de corriger et de supprimer les éléments stockés. Le système devrait expliquer le périmètre : cette session, ce projet, le compte ou l’organisation. Les données sensibles sont chiffrées, l’accès est filtré avant la récupération, et les journaux ne conservent pas les secrets indéfiniment.
Testez la mémoire comme une séquence : enregistrer un fait, le modifier, introduire un conflit, passer à un autre projet, supprimer la source et poser de nouveau la question. Vérifiez à la fois le rappel et l’oubli correct. Les produits pertinents figurent dans la collection sur la mémoire des agents IA d’AIDive. Une bonne mémoire n’est pas le plus grand stockage ; c’est le plus petit ensemble de données correctes renvoyé dans le bon périmètre au bon moment.
