Objectif : Comprendre LangGraph pour des agents avec loops et décisions complexes.
Théorie (15 min) :
- Lire : LangGraph Intro
- LangGraph = Extension de LangChain pour les agents stateful (graphes d'états)
- Concepts : Nodes (étapes), Edges (transitions), State (données partagées), Checkpoints
Pratique (45 min) :
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
class AgentState(TypedDict):
messages: Annotated[list, operator.add]
next_action: str
def research_node(state: AgentState):
# L'agent cherche des informations
return {"messages": [...], "next_action": "answer"}
def answer_node(state: AgentState):
# L'agent formule la réponse finale
return {"messages": [...], "next_action": END}
# Construire le graphe
workflow = StateGraph(AgentState)
workflow.add_node("research", research_node)
workflow.add_node("answer", answer_node)
workflow.add_edge("research", "answer")
workflow.set_entry_point("research")
app = workflow.compile()
- Créer un graphe simple à 2 nodes : "research" → "answer"
- Ajouter une conditionnelle : Si la recherche trouve des données → répondre, sinon → chercher encore
- Visualiser le graphe avec
app.get_graph().draw_png()
Checkpoint : Tu comprends l'architecture LangGraph.