Tutoriel

Statut éditorial : En attente de relecture

Construire un agent conversationnel avec une mémoire contrôlée

Conserver l’historique par session, limiter le contexte et distinguer mémoire de conversation, préférences et données métier.

Classification du contenu

Types

  • Agents IA

Technologies

Niveau
Avancé
Publié le
10 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
10 novembre 2026

Une conversation nécessite un historique, mais renvoyer tous les messages indéfiniment augmente coût, latence et risque de fuite. Concevez la mémoire comme une donnée applicative avec propriétaire, limite et suppression.

Modèle de données

Stockez session_id, user_id, role, content, created_at, model et éventuellement tool_call_id. Le serveur déduit user_id de l’authentification ; il ne fait jamais confiance à une valeur fournie par le modèle.

Charger une fenêtre

~~~python async def build_context(session_id: str, user_id: str): session = await sessions.get_authorized(session_id, user_id) recent = await messages.last(session.id, limit=20) return [ {'role': message.role, 'content': message.content} for message in recent ] ~~~

Ajoutez les nouveaux messages dans une transaction. En cas de double envoi, une clé d’idempotence évite les doublons.

Résumer les anciens tours

Quand la fenêtre dépasse votre budget, résumez les anciens messages dans une structure : objectifs, décisions, contraintes et questions ouvertes. Conservez la provenance et ne présentez pas le résumé comme une vérité externe.

Distinguer trois mémoires

Un statut de commande ne doit jamais survivre comme souvenir si l’API métier peut fournir sa valeur actuelle.

Tester

Vérifiez deux sessions simultanées, accès d’un autre utilisateur, très longue conversation, suppression, outil en erreur et redémarrage. Contrôlez quels messages sont réellement envoyés au modèle.

Production

Chiffrez, définissez rétention et export/suppression, masquez les logs et limitez la taille de chaque message. Ajoutez une protection contre l’injection persistante : une ancienne instruction utilisateur reste une donnée non fiable.

FAQ

La mémoire améliore-t-elle toujours la qualité ?

Non. Un historique bruité peut dégrader la réponse. Mesurez avec et sans mémoire.

Peut-on partager une mémoire entre utilisateurs ?

Seulement pour un espace explicitement partagé avec des règles d’accès adaptées.

Sources utilisées