LangGraph est devenu le standard pour construire des agents IA robustes en production. Dans ce tutoriel pas à pas, vous allez créer un agent capable d'analyser des données, de chercher des informations et de rédiger un rapport, avec un système de mémoire et de contrôle humain intégré.

Pourquoi LangGraph plutôt que LangChain simple

LangChain est excellent pour les pipelines linéaires : entrée, traitement, sortie. Mais un vrai agent a besoin de boucles, de conditions, de mémoire persistante et de points de contrôle humain. LangGraph modélise tout ça comme un graphe orienté. C'est plus de code au départ, mais infiniment plus puissant et maintenable.

Architecture LangGraph
Modèle graphe d'un agent LangGraph : noeuds, arêtes et état partagé
30 min
pour avoir un premier agent fonctionnel
Python 3.10+
requis, aucune autre dépendance lourde
Production-ready
avec les bonnes pratiques intégrées dès le départ

Installation et configuration

Commencez par installer les dépendances : pip install langgraph langchain langchain-openai. Configurez votre clé API OpenAI ou Anthropic dans les variables d'environnement.

Définir l'état de l'agent

L'état est le coeur de LangGraph. C'est le dictionnaire partagé entre tous les noeuds du graphe. Définissez-le avec TypedDict pour avoir une auto-complétion et une validation. Pour notre agent d'analyse : messages (historique), données_analysées, rapport_final, étape_courante.

Créer les noeuds

Chaque noeud est une fonction Python qui prend l'état en entrée et retourne un dict avec les clés à mettre à jour. Noeud 1 : collecte_données. Noeud 2 : analyse. Noeud 3 : rédaction_rapport. Noeud 4 : validation_humaine (optionnel mais recommandé).

Best practice : chaque noeud doit faire une seule chose. Un noeud qui collecte ET analyse ET rédige est un anti-pattern. La séparation des responsabilités est la clé de la maintenabilité.

Connecter les noeuds : le graphe

On crée le graphe avec StateGraph(MonEtat), on ajoute les noeuds avec add_node(), puis on définit les arêtes avec add_edge() pour les transitions inconditionnelles et add_conditional_edges() pour les décisions dynamiques.

Ajouter la mémoire

Pour un agent avec mémoire persistante entre les sessions, LangGraph supporte nativement PostgreSQL et SQLite via des checkpointers. Une seule ligne de configuration, et votre agent se souvient des conversations précédentes.

Le point de contrôle humain

Ajoutez interrupt_before=['validation_humaine'] lors de la compilation du graphe. L'agent s'arrête avant ce noeud, attend votre approbation, puis continue. Indispensable pour les agents qui prennent des actions irréversibles.

Tester et monitorer

Utilisez LangSmith pour tracer chaque exécution : quels noeuds ont été appelés, dans quel ordre, avec quelles entrées et sorties. En production, c'est indispensable pour débugger et améliorer votre agent.

LangGraph Agents IA Python Tutoriel LangChain Production

Avec toute mon attention,

Sylvie Wendkuni NITIEMA
Fondatrice & Data Scientist · DataSAI