Nœuds, arêtes et état
Définissez un état TypedDict, écrivez des fonctions de nœud qui le modifient et reliez-les par des arêtes orientées.
Nœuds, arêtes et état est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
L’objet d’état
Chaque agent LangGraph possède un état typé, généralement un TypedDict :
from typing import TypedDict
from typing_extensions import Annotated
import operator
class AgentState(TypedDict):
messages: Annotated[list, operator.add] # appends instead of replaces
plan: str
answer: strFonctionnement des mises à jour de l’état
Chaque nœud renvoie un dictionnaire partiel. LangGraph :
- Lit l’état actuel
- Appelle le nœud avec celui-ci
- Réintègre le dictionnaire partiel renvoyé
Pour les champs de type liste avec operator.add, les nouveaux éléments sont ajoutés au lieu de remplacer les anciens.
Defining a Node
def planner(state: AgentState) -> dict:
prompt = f'User wants: {state["messages"][-1].content}'
plan = llm.invoke(prompt).content
return {'plan': plan}Registering the Node
from langgraph.graph import StateGraph, END
graph = StateGraph(AgentState)
graph.add_node('planner', planner)Définir les arêtes
Les arêtes statiques s’exécutent sans condition :
graph.set_entry_point('planner')
graph.add_edge('planner', 'researcher')
graph.add_edge('researcher', 'writer')
graph.add_edge('writer', END)Arêtes conditionnelles
Pour effectuer un branchement, enregistrez une fonction qui choisit le nœud suivant :
def route(state: AgentState) -> str:
if state['needs_research']:
return 'researcher'
return 'writer'
graph.add_conditional_edges(
'planner',
route,
{'researcher': 'researcher', 'writer': 'writer'}
)END est particulier
END est le nœud terminal. Toute arête vers END termine le graphe et renvoie l’état actuel.
Compiling the Graph
app = graph.compile()
result = app.invoke({'messages': [...]})
print(result['answer'])Diffuser les mises à jour de l’état
Observez les changements d’état en temps réel :
for event in app.stream({'messages': [...]}):
print(event)
# Each event is the state diff from the just-completed node.Fonctions de réduction
Pour les fusions d’état complexes, utilisez une fonction de réduction personnalisée :
def merge_facts(old, new):
return {**old, **new}
class State(TypedDict):
facts: Annotated[dict, merge_facts]Sous-graphes
Un nœud peut lui-même être un autre graphe compilé — pratique pour les agents hiérarchiques :
subgraph = StateGraph(SubState).compile()
graph.add_node('subprocess', subgraph)Nœuds asynchrones
Les nœuds peuvent être des fonctions asynchrones :
async def fetch_node(state):
data = await fetch_async(state['url'])
return {'data': data}
result = await app.ainvoke({...})Erreurs dans les nœuds
Si un nœud lève une exception, LangGraph propage l’erreur et s’arrête. Interceptez-la dans le nœud si vous souhaitez une gestion élégante :
def safe_search(state):
try:
return {'results': search(state['query'])}
except Exception as e:
return {'error': str(e), 'results': []}Mises à jour de l’état
Que se passe-t-il lorsqu’un nœud renvoie {'plan': '...'} sous forme de dictionnaire ?
Récapitulatif
Définissez un état TypedDict, écrivez des fonctions qui renvoient des mises à jour partielles, ajoutez des nœuds et des arêtes, compilez, puis exécutez. Voilà LangGraph.
Questions Fréquemment Posées
La leçon « Nœuds, arêtes et état » est-elle gratuite ?
Oui — le texte complet de « Nœuds, arêtes et état » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Nœuds, arêtes et état » ?
Définissez un état TypedDict, écrivez des fonctions de nœud qui le modifient et reliez-les par des arêtes orientées. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Agents ?
Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Nœuds, arêtes et état » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?
Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi les graphes surpassent les chaînes linéaires
- Nœuds, arêtes et état
- Routage conditionnel et embranchements
- Conserver l’état d’un graphe (points de contrôle)