Pourquoi les chaînes LLM simples ne suffisent plus
LangChain a popularisé les "chains" : une séquence linéaire d'appels LLM. Mais les tâches complexes nécessitent des boucles de réflexion, des décisions conditionnelles et la capacité de revenir en arrière si un outil échoue. C'est ce que LangGraph apporte avec son modèle de graphe d'états.
Concepts clés de LangGraph
- State : un objet TypedDict qui persiste tout au long de l'exécution du graphe
- Nodes : des fonctions Python qui modifient l'état
- Edges : des transitions conditionnelles entre nœuds
- Checkpointing : sauvegarde de l'état pour reprendre ou débugger
Pattern ReAct (Reason + Act)
Le pattern ReAct alterne entre :
- Thought : le LLM réfléchit à ce qu'il faut faire
- Action : il appelle un outil (recherche web, calcul, API)
- Observation : il observe le résultat de l'outil
- ...jusqu'à atteindre un état final
Cas pratique : agent de veille technologique
Notre agent utilise 4 outils : web_search, fetch_page, summarize, classify_relevance. Il reçoit une liste de sujets à surveiller, scrape les sources pertinentes chaque matin, résume et classe les articles, puis génère un rapport Markdown envoyé par email.
Multi-agent : quand un seul agent ne suffit pas
Pour les workflows très complexes, on décompose en plusieurs agents spécialisés avec un "supervisor" qui délègue les sous-tâches. LangGraph supporte nativement ce pattern avec des sous-graphes.