Tu veux les meilleurs outils IA avant les autres ?
On teste et on décrypte les nouveaux outils IA chaque soir, en 5 min. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Comprendre le problème de mémoire dans les agents IA
Les modèles de langage de grande taille, bien qu'avancés, présentent une caractéristique notable : l'absence d'état persistant. Chaque interaction avec l'API est indépendante, ce qui signifie que le modèle reçoit un bloc de texte, le traite, renvoie une réponse, mais ne conserve aucune information entre les appels. Cette absence de stockage interne mis à jour entre les interactions fonctionne bien pour des requêtes ponctuelles. Cependant, elle pose un problème fondamental pour les systèmes d'agents qui nécessitent une mémoire continue pour coordonner des actions sur plusieurs sessions, apprendre des retours d'expérience ou gérer des tâches complexes.
Pour illustrer ce défi, considérons les questions suivantes :
- Que s'est-il passé auparavant ? Un agent chargé de réserver des événements dans un calendrier doit être capable de se souvenir des événements déjà planifiés pour éviter les doubles réservations.
- Que veut cet utilisateur ? Un assistant d'écriture doit retenir le style et le ton préférés de l'utilisateur pour éviter de recommencer à zéro à chaque session.
- Qu'a déjà tenté l'agent ? Un agent de recherche doit se souvenir des requêtes infructueuses pour ne pas répéter les mêmes erreurs et éviter les impasses.
- Quels faits l'agent a-t-il accumulés ? Un agent qui découvre qu'un fichier est manquant doit enregistrer cette information pour en tenir compte dans les étapes futures.
Le problème de mémoire consiste à doter un système intrinsèquement sans état de la capacité de se comporter comme s'il possédait des connaissances persistantes et interrogeables sur le passé.
Les types de mémoire des agents
Mémoire en contexte ou mémoire de travail
La forme la plus simple de mémoire est celle en contexte, ou mémoire de travail. Elle comprend tout ce qui est présent dans la fenêtre de contexte actuelle : l'historique de la conversation, les résultats des appels d'outils, les invites système, et les documents pertinents. Tout cela est transmis au modèle sous forme de texte à chaque appel. Cette approche est précise et immédiate, permettant au modèle de raisonner avec une grande fidélité sur tout ce qui est en contexte. Il n'y a pas d'étape de récupération, pas d'approximation, et aucune chance de tirer le mauvais enregistrement.
Cependant, la contrainte majeure est la taille de la fenêtre de contexte. Les modèles actuels supportent de 128K à 1M de tokens, mais les coûts et la latence augmentent avec la longueur. Ainsi, il n'est pas possible de simplement tout déverser dans la fenêtre de contexte et considérer cela comme terminé. En pratique, la mémoire en contexte fonctionne le mieux pour l'état actif d'une tâche : la conversation actuelle, les sorties récentes des outils et les documents directement pertinents pour l'étape immédiate.
Mémoire externe
Pour les informations trop volumineuses, trop anciennes ou trop dynamiques pour être conservées en contexte en permanence, les agents interrogent un stockage externe et extraient ce qui est pertinent au besoin. C'est la génération augmentée par récupération (RAG) appliquée à la mémoire des agents. Deux modèles de récupération répondent à des besoins différents :
- La recherche sémantique sur une base de données vectorielle trouve des enregistrements similaires en signification à la requête actuelle.
- La recherche exacte contre un stockage relationnel ou clé-valeur récupère des faits structurés par attribut — préférences utilisateur, état de la tâche, décisions antérieures et enregistrements d'entités.
En pratique, les systèmes de mémoire des agents les plus robustes utilisent les deux en combinaison : effectuer une recherche vectorielle et une requête structurée au besoin, puis fusionner les résultats pour une efficacité maximale.
Architecture de la mémoire des agents IA à grande échelle
Ce qui doit être stocké
Toutes les informations ne méritent pas le même traitement, et il est important d'être précis sur ce que vous stockez réellement. La mémoire des agents tombe naturellement dans quelques catégories :
- La mémoire épisodique capture ce qui s'est passé : événements spécifiques, appels d'outils et leurs résultats.
- La mémoire sémantique capture ce qui est vrai : faits et préférences extraits de l'expérience.
- La mémoire procédurale capture comment faire les choses. Elle encode des modèles d'action appris, des stratégies réussies et des modes d'échec connus.
Écriture en mémoire : Quand et quoi stocker
Un agent qui écrit chaque token de chaque interaction en mémoire produit du bruit à grande échelle. La mémoire doit être sélective. Voici deux modèles courants :
- Résumé de fin de session : Après chaque session, l'agent ou une étape de résumé dédiée extrait les faits saillants, décisions et résultats et les écrit sous forme d'enregistrements de mémoire compacts.
- Écritures déclenchées par des événements : Certains événements déclenchent explicitement des écritures en mémoire — corrections de l'utilisateur, déclarations de préférences explicites, achèvements de tâches et conditions d'erreur.
Ce qu'il ne faut pas stocker : des transcriptions brutes à grande échelle, des traces de raisonnement intermédiaires qui n'affectent pas le comportement futur, ou des doublons redondants d'enregistrements existants.
Récupération de la mémoire : Obtenir le bon contexte
Voici un aperçu des trois principales stratégies de récupération :
-
La recherche de similarité vectorielle interroge le stockage de mémoire avec un embedding du contexte actuel et renvoie les K enregistrements les plus sémantiquement similaires. C'est rapide, approximatif et fonctionne bien pour la mémoire non structurée. Cela nécessite également un modèle d'embedding et un index vectoriel comme HNSW ou basé sur IVF. La qualité dépend de la stratégie de découpage et du modèle d'embedding.
-
La requête structurée récupère des faits par attribut — ID utilisateur, plage horaire, nom d'entité. Précis lorsque vous savez ce que vous cherchez. Cela ne gère pas le glissement sémantique. Fonctionne avec des requêtes SQL ou des recherches clé-valeur.
-
La récupération hybride combine les deux : exécutez une recherche vectorielle et une requête structurée en parallèle et fusionnez les résultats. Utile lorsque les mémoires ont à la fois un contenu sémantique et des métadonnées structurées, comme trouver des mémoires concernant des problèmes de facturation des 30 derniers jours pour cet utilisateur.
Décroissance de la mémoire et versioning
Les mémoires deviennent obsolètes. Le titre d'un utilisateur change. Un point de terminaison API précédemment correct est obsolète. Un agent qui met en avant des mémoires périmées provoque des erreurs en aval. Vous avez besoin de moyens pour y faire face, et voici les plus pertinents :
- Décroissance temporelle : Pondérer les mémoires récentes plus fortement que les anciennes.
- Enregistrements d'entités versionnés : Maintenir un stockage d'entités versionnées afin que les mises à jour remplacent les valeurs antérieures avec des horodatages.
Mémoire multi-agents
Lorsque plusieurs agents partagent la mémoire — un coordinateur et plusieurs sous-agents travaillant en parallèle — la cohérence devient un problème difficile. Voici des approches courantes :
- Mémoire centrale : Utiliser le verrouillage ou la concurrence optimiste pour contrôler les écritures.
- Espaces de noms : Chaque agent écrit dans son propre espace mémoire.
- Journaux en ajout uniquement : Stocker tous les changements et résoudre les conflits au moment de la lecture.
Il n'y a pas de solution unique ; cela dépend de la façon dont les agents fonctionnent et partagent l'état.
Évaluation
Les systèmes de mémoire échouent souvent silencieusement. L'agent récupère quelque chose de faux, raisonne à partir de cela et produit une réponse erronée qui semble plausible. Voici quelques métriques à suivre :
- Rappel de récupération mesure si le système fait surface une mémoire pertinente lorsqu'elle existe.
- Précision de récupération mesure si elle tire également du bruit.
- Fidélité mesure si l'agent utilise la mémoire récupérée dans son raisonnement.
- Taux de vétusté mesure à quelle fréquence l'agent fait surface un fait obsolète.
Une gestion efficace de la mémoire consiste essentiellement à stocker des informations tout en les maintenant pertinentes et récupérables.
Conclusion
La mémoire des agents fonctionne comme une pile. La mémoire en contexte maintient l'état de travail actuel, tandis que la récupération externe apporte l'historique et les faits pertinents. Le défi d'ingénierie réside dans la détermination de ce qu'il faut enregistrer, quand déclencher la récupération et comment maintenir une mémoire propre et utile à mesure qu'elle se développe.

