LangGraph: add_node, add_edge & add_conditional_edges în LangChain & LangGraph

Definește nodurile de lucru (funcțiile Python) și muchiile de rutare (fixe sau condiționale) care dictează încotro merge execuția agentului.

Sintaxă & invocare Python
from langgraph.prebuilt import ToolNode, tools_condition

workflow.add_node('agent', apel_model)
workflow.add_node('tools', ToolNode(unelte))
workflow.add_edge(START, 'agent')
workflow.add_conditional_edges('agent', tools_condition)
workflow.add_edge('tools', 'agent')

Descriere & Utilizare

Orice graf din LangGraph este compus din două elemente: Nodes (Noduri) – care fac munca propriu-zisă – și Edges (Muchii) – care decid ce nod urmează să fie executat.

Un nod adăugat cu .add_node('nume', functie) este o simplă funcție Python care primește starea curentă (state) și returnează un dicționar cu actualizările stării.

Muchiile normale (.add_edge('tools', 'agent')) creează o tranziție obligatorie: după ce uneltele s-au executat, fluxul se întoarce întotdeauna la agent pentru ca acesta să interpreteze rezultatul.

Muchiile condiționale (.add_conditional_edges()) evaluează o funcție de decizie: dacă ultimul mesaj al LLM-ului conține tool_calls, trimite fluxul către nodul 'tools'; dacă nu, trimite fluxul către END și livrează răspunsul final utilizatorului.

Cum să o reții ușor

💡 Ca o cale ferată cu gări și macazuri automate: trenul pleacă din gara centrală (`START`), ajunge la dispecerat (`agent`), iar macazul inteligent (`conditional_edge`) verifică dacă trenul are marfă de descărcat în atelier (`tools`) sau dacă poate merge direct la destinația finală (`END`).

Opțiuni și parametri tehnici

  • Nodul agent invocă llm_cu_unelte.invoke(state['messages']).
  • Funcția predefinită tools_condition inspectează ultimul mesaj din stare.
  • ToolNode execută în paralel toate funcțiile Python cerute de LLM și împachetează rezultatele în obiecte ToolMessage.

Exemple practice și cazuri de utilizare

  • Funcție de nod agent: def apel_model(state: AgentState):
    return {'messages': [llm_cu_unelte.invoke(state['messages'])]}
  • Rutare condițională personalizată: workflow.add_conditional_edges('verificare', decide_pasul, {'aprobat': 'publicare', 'respins': 'rescriere'})

Sfaturi de configurare & capcane

Poți vizualiza oricând diagrama grafică a agentului tău generând o imagine Mermaid direct din Python: print(app.get_graph().draw_mermaid()).

Comenzi și ghiduri înrudite