
LangGraph: framework open-source per orchestrazione agenti AI
Scheda enciclopedica sul framework a grafi diretti con stato per costruire agenti LLM affidabili e multi-step
Cos'è
LangGraph è un framework open-source, rilasciato sotto licenza MIT e mantenuto da LangChain Inc., dedicato all'orchestrazione di agenti e workflow basati su modelli di linguaggio (LLM). A differenza di librerie che offrono agenti preconfezionati con architettura chiusa, LangGraph fornisce primitive di basso livello per modellare l'esecuzione di un agente come un grafo diretto con stato: i nodi rappresentano passi computazionali, mentre gli archi definiscono il flusso di controllo, inclusi rami condizionali e cicli.
Il framework è distribuito principalmente in Python, con un SDK anche per JavaScript/TypeScript, e può essere utilizzato insieme a LangChain oppure in modo indipendente. La sua ambizione è fornire un runtime affidabile per workflow agentici di lunga durata, in cui è necessario mantenere il contesto, gestire fallimenti, sospendere l'esecuzione per intervento umano e riprendere da un punto preciso.
Il problema che risolve
Costruire agenti LLM che eseguano compiti non banali richiede più di una singola chiamata a un modello. L'agente deve spesso: ragionare in più passaggi, invocare strumenti esterni, valutare il risultato, tornare sui propri passi se il risultato è insufficiente e coordinare più agenti specializzati. I framework che espongono solo catene lineari (DAG) gestiscono bene flussi predefiniti, ma falliscono quando il comportamento deve essere ciclico, condizionale o reattivo allo stato interno.
LangGraph risolve questo problema introducendo un modello esplicito di macchina a stati finiti. Lo sviluppatore definisce lo schema dello stato, i nodi che lo leggono e lo aggiornano, e gli archi che determinano il prossimo nodo in base allo stato corrente. Questa esplicitatezza rende il comportamento dell'agente più controllabile, debuggabile e adattabile a regole aziendali specifiche.
Come funziona
Il cuore di LangGraph è la classe StateGraph, parametrizzata da uno schema di stato. Lo schema è tipicamente un TypedDict Python (o un equivalente in TypeScript) in cui ogni campo può essere dotato di un reducer, cioè una funzione che decide come fondere aggiornamenti concorrenti. Per esempio, una lista di messaggi può essere estesa invece che sovrascritta.
I tre elementi costitutivi sono:
- State: struttura dati condivisa che rappresenta lo snapshot corrente del workflow. Include messaggi, risultati intermedi, metadati e qualsiasi altra informazione necessaria ai nodi.
- Nodes: funzioni eseguibili che ricevono lo stato, effettuano un'operazione (chiamata a LLM, invocazione di tool, calcolo deterministico) e restituiscono un aggiornamento dello stato.
- Edges: regole di transizione. Possono essere normali (sempre da un nodo a un altro), condizionali (scelgono il prossimo nodo in base allo stato) o punti di ingresso/uscita (
START,END).