Skip to content
Learni
Voir tous les tutoriels
Intelligence Artificielle

Comment construire un agent avec LangGraph en 2026

Read in English

Introduction

LangGraph permet de modéliser des applications LLM sous forme de graphes, offrant un contrôle total sur le flux d'exécution des agents. Contrairement aux chaînes linéaires, il gère les états, les boucles et les décisions conditionnelles de manière explicite. Ce tutoriel vous apprend les fondations pour créer un agent simple qui répond à des questions tout en conservant un historique. Idéal pour les projets nécessitant fiabilité et traçabilité.

Prérequis

  • Python 3.10 ou supérieur
  • Connaissances de base en Python et API LLM
  • Clé API OpenAI ou équivalente
  • Environnement virtuel recommandé

Installation des dépendances

terminal
python -m venv venv
source venv/bin/activate
pip install langgraph langchain langchain-openai

Cette commande crée un environnement isolé et installe LangGraph avec les dépendances LangChain nécessaires pour interagir avec les modèles LLM.

Définition de l'état du graphe

state.py
from typing import TypedDict, Annotated

from langgraph.graph import add_messages

class AgentState(TypedDict):
    messages: Annotated[list, add_messages]

L'état AgentState définit la structure partagée entre les nœuds. add_messages permet de concaténer automatiquement les messages sans duplication.

Création du premier nœud

nodes.py
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

def chatbot(state: AgentState):
    response = llm.invoke(state["messages"])
    return {"messages": [response]}

Ce nœud simple appelle le modèle LLM et retourne la réponse dans l'état. Il sert de point d'entrée pour la génération de texte.

Construction et compilation du graphe

graph.py
from langgraph.graph import StateGraph, START, END

builder = StateGraph(AgentState)
builder.add_node("chatbot", chatbot)
builder.add_edge(START, "chatbot")
builder.add_edge("chatbot", END)

graph = builder.compile()

StateGraph assemble les nœuds et les connexions. START et END définissent le début et la fin du flux. compile() produit un graphe exécutable.

Exécution du graphe

main.py
from state import AgentState
from graph import graph

initial_state = {"messages": [("user", "Bonjour, comment ça va ?")]}
result = graph.invoke(initial_state)
print(result["messages"][-1].content)

Ce script initialise l'état avec un message utilisateur, exécute le graphe et affiche la réponse finale du modèle.

Bonnes pratiques

  • Toujours typer explicitement l'état avec TypedDict
  • Utiliser des noms de nœuds descriptifs
  • Tester chaque nœud indépendamment avant d'assembler le graphe
  • Versionner les prompts dans des fichiers séparés
  • Ajouter des checkpoints pour la persistance dès que possible

Erreurs courantes à éviter

  • Oublier d'annoter les messages avec add_messages provoque des écrasements d'état
  • Ne pas gérer les erreurs d'API LLM peut bloquer tout le graphe
  • Créer des cycles infinis sans condition de sortie
  • Ignorer la validation des entrées utilisateur

Pour aller plus loin

Découvrez nos formations LangGraph avancées pour maîtriser les agents multi-acteurs et la persistance d'état.