La mémoire n’est pas un historique illimité envoyé au modèle. LangGraph distingue la mémoire courte, liée à un thread de conversation, et la mémoire longue, partagée selon un espace de noms comme l’utilisateur ou l’organisation.
Ajouter une mémoire de thread
Créez l’agent avec un checkpointer et invoquez-le avec un thread_id stable. Pour un prototype, InMemorySaver suffit; en production, utilisez un backend persistant. Le même identifiant reprend l’état, un nouvel identifiant démarre une conversation séparée.
Maîtriser la taille du contexte
Une conversation longue dépasse progressivement la fenêtre du modèle et augmente le coût. Appliquez une politique de trimming ou de résumé, conservez les derniers messages utiles et testez que les instructions importantes survivent à la compression.
Stocker la mémoire longue
Utilisez un store avec un namespace contrôlé. Enregistrez uniquement des faits utiles, datés et modifiables. Ne transformez pas toutes les phrases de l’utilisateur en mémoire permanente. Ajoutez consentement, suppression et durée de conservation.
Séparer mémoire et autorisation
Une information mémorisée n’est pas une preuve d’identité et ne doit pas accorder un droit. Les outils doivent toujours vérifier l’utilisateur et les permissions côté serveur avant d’accéder à une donnée ou d’effectuer une action.
Tester plusieurs fils
Vérifiez la continuité dans un même thread, l’isolation entre deux threads et le partage volontaire entre sessions. Testez aussi la suppression d’une mémoire et les conflits entre informations anciennes et nouvelles.
Checklist avant mise en production
- Valider les entrées, les sorties et les permissions des outils.
- Tester les erreurs du fournisseur, les délais d’attente et les limites de coût.
- Ajouter des traces sans enregistrer de secrets ni de données personnelles inutiles.
- Mesurer la qualité sur un jeu de cas représentatifs avant chaque évolution.
Questions fréquentes
InMemorySaver convient-il en production ?
Non pour un service distribué ou durable. Il est surtout adapté au développement et aux tests.
Faut-il mémoriser toute la conversation ?
Non. Gardez ce qui améliore réellement la tâche et appliquez une politique de minimisation et de rétention.