Titre RNCP Niveau 7

Maîtrisez pipelines, cloud & IA pour devenir Data Engineer opérationnel.

Devenez Data Engineer

DataScientist.fr

Formations

L'équipeLa plateforme
Offre entreprises

🇫🇷

Gérer l'historique de conversation avec LangChain : Guide complet
Artificial Intelligence
LLM
Python

Gérer l'historique de conversation avec LangChain : Guide complet

Romain DE LA SOUCHÈRE

Lead Developer, Expert Cloud et DevOps

Publié le 15 mai 2025 · 10 min de lecture

La gestion de l'historique des messages est un élément central dans le développement d'agents conversationnels avec LangChain. Une bonne structuration de l'historique permet d'offrir des réponses plus pertinentes, contextuelles et cohérentes, tout en optimisant l'utilisation des ressources. Dans cet article, nous décortiquons les principales fonctionnalités offertes par LangChain pour manipuler les messages et conserver un historique efficace.

Pourquoi gérer l'historique des messages ?

Un agent conversationnel s'appuie sur le contexte pour générer ses réponses. Ce contexte est généralement formé par l'historique des interactions entre l'utilisateur et le système. Sans mémoire ou gestion d'historique, chaque requête serait traitée comme une nouvelle conversation, rendant l'agent incapable de maintenir un fil logique.
LangChain fournit des outils puissants pour stocker, mettre à jour et manipuler cet historique, sous forme de "messages" standardisés.

Les types de messages dans LangChain

LangChain propose plusieurs types de messages pour structurer les échanges :
  • HumanMessage : représente les messages envoyés par l'utilisateur.

  • AIMessage : représente les réponses générées par le modèle.

  • SystemMessage : permet d'ajouter des instructions initiales au modèle.

  • FunctionMessage et ToolMessage : utiles pour l'interaction avec des fonctions ou outils externes.

Tous ces messages héritent de la classe BaseMessage, permettant une manipulation uniforme.

Création d'un historique

L'historique est typiquement une liste de messages. LangChain propose des classes comme ChatMessageHistory ou ConversationBufferMemory pour centraliser cette gestion.
Exemple de base :
python

Gestion de l'historique

En plus du stockage et de la conservation de l'historique, LangChain fournit des outils pour manipuler efficacement les listes de messages.

filter_messages

Cette fonction permet de filtrer les messages selon leur type, leur nom ou leur identifiant. C'est utile pour cibler uniquement certaines parties de l'historique, par exemple pour ne conserver que les messages utilisateurs :
python

trim_messages

La fonction trim_messages est utile pour tronquer un historique afin de respecter une limite de longueur (en tokens ou en nombre de messages). Cela est essentiel lorsqu'on souhaite éviter des dépassements de contexte avec un LLM.
Elle utilise un modèle LLM pour calculer le nombre de tokens consommés par chaque message et élimine progressivement les plus anciens (par défaut) jusqu'à ce que la limite soit respectée. Cette méthode garantit que le contexte fourni reste pertinent tout en tenant compte des contraintes du modèle. Il existe aussi de nombreux autres paramètres pour réduire votre historique de message :
python

Utilisation des mémoires

LangChain propose plusieurs types de mémoires pour conserver l'historique des messages dans un agent.
Voici un exemple complet illustrant l'utilisation d'une mémoire de type ConversationBufferMemory dans une chaîne LangChain :
python
Ce script montre comment une mémoire permet au modèle de se souvenir de la conversation précédente et de répondre de manière contextuelle.
LangChain propose plusieurs types de mémoires pour conserver l'historique des messages dans un agent. Chaque mémoire a ses spécificités et avantages selon le scénario visé.

ConversationBufferMemory

C'est la mémoire la plus simple : elle stocke tous les messages dans l'ordre.
python

ConversationBufferWindowMemory

Cette mémoire limite l'historique aux k derniers messages.
python

ConversationSummaryMemory

Résume l'historique pour n'en conserver que les points essentiels.
python

ConversationKGMemory

Construit un graphe de connaissances à partir de l'historique.
python

Intégration dans un agent LangChain

L'historique est généralement passé au moment de la création d'une chaîne ou d'un agent via le paramètre memory :
python

Bonnes pratiques pour la gestion de l'historique

  • Choisir le bon type de mémoire en fonction du cas d'usage : contextes longs, interactions simples, synthèse...

  • Nettoyer ou tronquer régulièrement l'historique pour éviter des coûts de traitement trop élevés.

  • Ajouter des SystemMessage pour guider le comportement du modèle en début d'interaction.

  • Exploiter les types avancés comme FunctionMessage pour intégrer des appels d'API.

Conclusion

LangChain offre une grande flexibilité pour la gestion des historiques conversationnels. En choisissant la bonne mémoire et en structurant judicieusement vos messages, vous pouvez créer des agents plus intelligents, plus cohérents et adaptés à vos besoins. N'hésitez pas à expérimenter les différents types de mémoire pour trouver la stratégie qui convient le mieux à votre application.
Vous hésitez encore ou avez besoin d'un accompagnement spécifique, notre équipe est à votre écoute

Partager avec

💙 Merci d'avoir parcouru l'article jusqu'à la fin !

Romain DE LA SOUCHÈRE

Romain DE LA SOUCHÈRE - Lead Developer, Expert Cloud et DevOps

Ingénieur de formation avec plus de 11 ans d'expérience dans le développement back-end et le data engineering. Expert dans l’industrialisation des projets data dans le cloud.

» En savoir plus

Formations associés

Toutes nos formations

Préparez la certification PL‑300
Préparez la certification PL‑300
24 heures
Débutant
Garantie
Préparez la certification AZ-900
Préparez la certification AZ-900
10 heures
Débutant
Garantie
Préparez la certification DP‑700
Préparez la certification DP‑700
24 heures
Débutant
Garantie
Préparez la certification DP‑900
Préparez la certification DP‑900
10 heures
Débutant
Garantie

DataScientist.fr

By AXI Technologies

128 Rue de la Boétie,
75008, Paris, France

bonjour@datascientist.fr

+33 1 70 39 08 31

+33 6 86 99 34 78

© 2026 DataScientist.fr - AXI Technologies - Tous droits réservés