Perché i grafi superano le chain lineari
Gli agenti reali hanno bisogno di cicli, tentativi e condizioni: DAG e grafi esprimono ciò che le chain non possono esprimere.
Perché i grafi superano le chain lineari è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Dove le chain mostrano i loro limiti
Le chain LCEL sono ideali per flussi lineari: A -> B -> C. Entrano in difficoltà quando ti servono:
- Loop (riprovare fino al successo)
- Diramazioni condizionali (decidere tra A e B in base allo stato)
- Pause con intervento umano
- Stato persistente tra le chiamate
I veri agenti sono grafi
Gli agenti prendono decisioni passo dopo passo. Un agente reale potrebbe:
- Pianificare
- Cercare informazioni
- Se le trova, preparare una risposta; altrimenti, cercare di nuovo
- Convalidare
- Se non è valida, correggerla; altrimenti, restituirla
Questo è un grafo, non una linea.
Introduzione a LangGraph
LangGraph, creato dal team di LangChain, permette di definire gli agenti come grafi:
- Nodi — funzioni che leggono e aggiornano lo stato
- Archi — quale nodo viene eseguito successivamente
- Stato — dict condiviso e persistente
Nodes Are Just Functions
from langgraph.graph import StateGraph
class AgentState(TypedDict):
messages: list
plan: str
answer: str
def plan_step(state: AgentState) -> AgentState:
plan = generate_plan(state['messages'])
return {'plan': plan}Edges Connect Nodes
from langgraph.graph import StateGraph, END
graph = StateGraph(AgentState)
graph.add_node('plan', plan_step)
graph.add_node('search', search_step)
graph.add_node('answer', answer_step)
graph.set_entry_point('plan')
graph.add_edge('plan', 'search')
graph.add_edge('search', 'answer')
graph.add_edge('answer', END)
app = graph.compile()Running the Graph
result = app.invoke({'messages': [{'role': 'user', 'content': 'What is RAG?'}]})
print(result['answer'])Gli aggiornamenti dello stato vengono uniti
Quando un nodo restituisce un dict parziale, LangGraph lo unisce allo stato. Non devi riscrivere l'intero stato a ogni passaggio.
Diramazioni condizionali
Usa add_conditional_edges per instradare il flusso in base allo stato:
def needs_more_info(state):
if state['confidence'] < 0.7:
return 'search'
return 'answer'
graph.add_conditional_edges('plan', needs_more_info, {
'search': 'search',
'answer': 'answer'
})Loops Are Just Edges Back
graph.add_edge('search', 'plan') # loop back to planner
# The planner decides if more search is needed.Visualizzazione
LangGraph genera diagrammi Mermaid del tuo grafo, utili per eseguire il debug della struttura:
from IPython.display import Image
Image(app.get_graph().draw_mermaid_png())Rispetto ai loop while scritti a mano
Potresti ottenere lo stesso risultato con un loop while in Python. LangGraph aggiunge:
- Una struttura del grafo esplicita (visualizzabile)
- Checkpoint integrati
- Streaming degli aggiornamenti dello stato
- Primitive per l'intervento umano
LangGraph + LCEL
I nodi possono essere qualsiasi oggetto chiamabile, incluse le chain LCEL. Puoi combinarli liberamente:
summarise_chain = prompt | model | parser
def summarise_node(state):
return {'summary': summarise_chain.invoke(state['text'])}Quando usare un grafo
Quale scenario trae il maggior vantaggio da LangGraph rispetto a una chain LCEL lineare?
Riepilogo
I grafi sono migliori delle chain quando servono loop, diramazioni, persistenza o intervento umano. LangGraph fornisce la struttura necessaria.
Domande Frequenti
La lezione «Perché i grafi superano le chain lineari» è gratuita?
Sì — il testo completo di «Perché i grafi superano le chain lineari» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Perché i grafi superano le chain lineari»?
Gli agenti reali hanno bisogno di cicli, tentativi e condizioni: DAG e grafi esprimono ciò che le chain non possono esprimere. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Perché i grafi superano le chain lineari»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché i grafi superano le chain lineari
- Nodi, archi e stato
- Routing condizionale e branching
- Persistenza dello stato del grafo (checkpoint)