0Pricing
AI Agents · Lezione

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:

  1. Pianificare
  2. Cercare informazioni
  3. Se le trova, preparare una risposta; altrimenti, cercare di nuovo
  4. Convalidare
  5. 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

  1. Perché i grafi superano le chain lineari
  2. Nodi, archi e stato
  3. Routing condizionale e branching
  4. Persistenza dello stato del grafo (checkpoint)
← Torna a AI Agents