Contexte et mémoire : que conserve l’agent ?
Distinguer le contexte transmis au modèle, l’état d’une conversation et la mémoire réutilisable entre conversations.
La cliente vient de demander un voyage Montréal–Agadir, puis écrit : « Et pour l’hôtel ? » Comment l’agent sait-il de quelle ville il s’agit ? Et retrouvera-t-il le budget dans une nouvelle conversation ?
Ces deux questions concernent des mécanismes différents. L’application conserve des informations ; le modèle utilise celles qu’il reçoit.
Le contexte : ce que le modèle reçoit maintenant
Le contexte regroupe les informations fournies au modèle pour produire sa prochaine réponse : consignes, demande actuelle, échanges précédents utiles, descriptions d’outils et résultats obtenus. Des informations retrouvées en mémoire peuvent aussi y être ajoutées.
Si « Agadir » et le budget figurent dans ce contexte, le modèle peut les utiliser pour interpréter « Et pour l’hôtel ? ». Il n’a pas besoin d’apprendre à nouveau : l’application lui fournit la continuité de l’échange. Hugging Face explique cette représentation de la conversation par des messages.
La fenêtre de contexte est limitée en tokens, les unités de texte traitées par le modèle. Tout ce qui est stocké ou visible dans l’interface n’est donc pas nécessairement transmis à chaque appel.
La session : suivre le voyage en cours
Une session regroupe les échanges d’une même conversation. L’application peut conserver leur historique et un état, c’est-à-dire des données qui décrivent où en est la tâche.
Pour notre voyage, cet état peut contenir les dates confirmées, les quatre jours sur place, le budget de 2 000 CAD pour les vols aller-retour et l’hôtel, ainsi que l’accord pour une escale. Il peut aussi indiquer quelles recherches ont déjà été effectuées. Ces données ne deviennent du contexte que si elles sont fournies au modèle.
On parle souvent de mémoire à court terme pour cette continuité au sein d’une conversation. « Court terme » décrit ici sa portée, pas nécessairement sa durée de stockage : une conversation sauvegardée peut être reprise demain. Sa conservation après un redémarrage dépend du stockage choisi.
La mémoire entre conversations : conserver puis retrouver
Une mémoire à long terme rend des informations réutilisables dans d’autres conversations. Elle exige un mécanisme de conservation et de récupération ; ouvrir un nouveau chat ne garantit pas cette continuité. Microsoft présente cette distinction entre mémoire de session et mémoire persistante.
Une préférence confirmée, comme « je préfère partir de Montréal », peut être utile pour un prochain voyage. En revanche, les 2 000 CAD concernent le séjour à Agadir : ce budget ne devient pas automatiquement une préférence permanente.
Stocker une préférence dans un fichier ou une base ne modifie pas les paramètres appris du modèle. Pour influencer une réponse, l’information doit être retrouvée et intégrée au contexte.
Conserver l’utile sans figer les erreurs
Quand l’historique s’allonge, l’application peut sélectionner des passages ou les résumer. Microsoft décrit ces stratégies de gestion du contexte.
Mais « voyage à petit budget » serait un mauvais résumé de notre mission : il perd la devise, les quatre jours sur place et l’interdiction de réserver. Un résumé peut omettre une contrainte ou conserver une erreur.
Les informations doivent aussi rester actualisables. Une nouvelle instruction peut remplacer une ancienne préférence ; un prix d’hôtel conservé doit être revérifié. Les préférences personnelles doivent rester rattachées à la bonne personne, pas être partagées avec tous les clients de l’agence.
Comment les frameworks organisent-ils cela ?
Google ADK distingue session, état et mémoire. Ses services gèrent la conversation et la recherche d’informations entre sessions. Un stockage uniquement en mémoire vive perd ses données au redémarrage.
LangChain Deep Agents propose une mémoire fondée sur des fichiers, lus au démarrage ou à la demande. Le stockage configuré détermine leur conservation et leur portée. Ce ne sont pas des souvenirs inscrits dans le modèle.
À retenir : stocker, retrouver et transmettre sont trois opérations distinctes. Une mémoire utile conserve les bonnes informations, sans les rendre automatiquement vraies ni permanentes.
Suite : À quoi servent les skills ?.