Retour au fil

Ajouter de la mémoire à un agent LangChain météo et recherche web : un agent conscient du contexte avec InMemorySaver

La partie 4 ajoute une mémoire à court terme à un agent LangChain qui gère déjà la météo actuelle, les prévisions à trois jours et la recherche web ; elle montre comment LangGraph InMemorySaver conserve le nom et la ville dans le même thread, l'isole entre les threads, démontre le flux en ligne de commande et annonce la prochaine étape : une pile FastAPI plus Streamlit.

Importé dans Nodesdaily : (UTC+03:00)
Voir sur YouTube — CUCClKcQwWc
Options de lecture

La lecture vocale n’est pas disponible dans ce navigateur.

Loupe à concepts

Choisissez un terme technique de cette vue pour lire sa définition générale, un exemple pédagogique et son usage dans l’article.

Aucun terme de notre glossaire n’a été trouvé dans cette vue. Le glossaire ne couvre pas encore tous les termes.

La partie 4 complète un agent LangChain qui gère déjà la météo actuelle, les prévisions à trois jours et la recherche web en ajoutant une couche de mémoire. Les épisodes précédents ont connecté les outils météo et de recherche, et celui-ci s'attaque à l'état de conversation manquant, en montrant avec une courte démonstration en direct pourquoi cette couche supplémentaire est importante.

Le coût du fonctionnement sans mémoire est illustré dans deux petits dialogues : on indique à l'agent le prénom Yemi et, lorsqu'on lui redemande quel est le prénom, il répond qu'il ne le sait pas ; de même, après avoir demandé la météo à Seattle puis dit et demain, il perd le contexte de la ville. Le problème n'est pas l'oubli du modèle mais l'absence de magasin d'état, si bien que chaque appel repart de zéro.

La solution vient de LangGraph avec InMemorySaver. La vidéo l'importe avec from langgraph.checkpoint.memory import InMemorySaver, l'instancie comme checkpointer et le transmet au graphe à la compilation avec compile(checkpointer=checkpointer). Sous cette forme, la mémoire ne vit que dans la mémoire du processus, présentée comme une structure conçue pour le prototypage et le débogage rapides.

La clé qui sépare les contextes est thread_id. Les appels transportent thread_id dans configurable lors de l'invocation du graphe ; des appels consécutifs avec le même identifiant poursuivent le même thread, tandis qu'un identifiant différent ouvre une nouvelle session. Ainsi, un seul agent peut distinguer de nombreux dialogues et conserver l'historique de chaque session sans les mélanger.

La démonstration en direct s'exécute en ligne de commande via main.py. Dans le même thread, une fois le prénom Yemi donné, une deuxième question sur le prénom obtient une réponse correcte avec Yemi, tandis que fermer le processus et redémarrer avec un nouveau thread_id fait retourner à la même question que le prénom est inconnu, confirmant l'isolation. L'hôte souligne que la mémoire durable sera abordée ensuite et que la solution actuelle est limitée à la session.

Le contexte météo est corrigé de la même manière. Juste après avoir demandé quel temps fait-il à Seattle, dire et demain fait désormais retenir la ville à l'agent et renvoyer une prévision pour le 4 septembre. Le fossé de compréhension laissé ouvert dans l'épisode précédent se referme sans invite supplémentaire ni répétition de la ville, et l'appel d'outil se déclenche avec le bon paramètre.

La vidéo précise que la ligne de commande est la dernière étape de cette phase et fait évoluer l'architecture. Le plan est de construire une couche API multi-utilisateurs avec FastAPI et d'y superposer une interface de chat légère avec Streamlit. Cela sort l'agent du terminal, sert chaque session avec son propre historique via REST et transforme le projet en quelque chose de démontrable.

Visualization: nodesdaily AI

Commentaire de l’IA

""Je vois cela comme le moment le plus honnête du prototype ; quand la perte de contexte apparaît dans une exécution réelle plutôt qu'en théorie, la mémoire cesse d'être une fonctionnalité abstraite pour devenir un besoin pratique, c'est pourquoi je trouve le choix de commencer avec InMemorySaver judicieux.""

Évaluation de l’IA

Pour défendre l'argument inverse : les critiques qui affirment qu'InMemorySaver n'est pas prêt pour la production et qu'un saver adossé à Postgres aurait dû être utilisé dès le départ soulèvent une préoccupation légitime. Pourtant, il s'agit de la quatrième étape d'un tutoriel dont l'objectif est d'enseigner le concept sous sa forme la plus simple ; ajouter la durabilité trop tôt obscurcirait l'idée de thread et de checkpointer, augmenterait la charge cognitive et brouillerait la notion de contexte pour les débutants.

Ce que la vidéo ne teste pas est également clair : la disparition de la mémoire au redémarrage, la croissance du nombre de threads et la stratégie de nettoyage, la gestion des erreurs et les délais d'attente, la latence de la recherche web et les limites de débit, ainsi que la source de données et la précision de l'outil de prévision à trois jours ne sont pas mesurés. La mémoire inter-sessions avec Store pour les préférences à long terme et le coût de l'isolation des sessions côté FastAPI sont également laissés de côté à ce stade.

Deux niveaux doivent être distingués. Le fait qu'InMemorySaver soit réservé au débogage et aux tests est écrit directement dans la documentation de LangGraph, qui recommande Postgres pour la production, et le modèle de service multi-utilisateurs FastAPI plus Streamlit correspond exactement à l'exemple agent-service-toolkit de l'équipe LangGraph. En revanche, les détails des outils météo et de prévision reposent sur la démonstration en ligne de commande de la vidéo ; sans dépôt ouvert, ils sont difficiles à vérifier de manière indépendante et les chiffres proviennent d'une source unique.

Mon verdict est le suivant : quiconque construit un premier agent LangChain et voit le contexte de la ville et du prénom disparaître dans le même chat devrait considérer cet épisode comme une fondation, et pour le prototypage, InMemorySaver est un point de départ idéal. Si vous visez un produit multi-utilisateurs durable, utilisez cette vidéo comme tremplin et passez immédiatement à un checkpointer Postgres et à une couche Store, sinon chaque redémarrage effacera les dialogues et les problèmes d'isolation s'accumuleront à grande échelle.

Sources

7 liens ; aucun autre article publié ne les cite. Stories sharing a link do not confirm each other; a source's origin is not inferred from how often it is cited.

programmation · ajout · memoire · langchain · meteo · recherche · nodesdaily

Suivre le sujet

Avant cet article

Un court ordre de lecture des articles antérieurs reliés à cet événement par un éditeur.

Preuves et sources

Consultez les passages autorisés, leurs versions et leur origine.

KAYNAKLARLA OKU

Bu haberi açalım.

Hesap kontrol ediliyor…