0Pricing
AI Agents · Lezione

Nodi, archi e stato

Definisca uno stato TypedDict, scriva funzioni nodo che lo modifichino e le colleghi con archi diretti.

Nodi, archi e stato è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 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.

L'oggetto stato

Ogni agente LangGraph ha uno stato tipizzato, solitamente 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: str

Come funzionano gli aggiornamenti dello stato

Ogni nodo restituisce un dict parziale. LangGraph:

  1. Legge lo stato corrente
  2. Chiama il nodo passandogli lo stato
  3. Unisce nuovamente allo stato il dict parziale restituito

Per i campi lista con operator.add, i nuovi elementi vengono aggiunti invece di sovrascrivere quelli esistenti.

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)

Definizione degli archi

Gli archi statici vengono attivati incondizionatamente:

graph.set_entry_point('planner')
graph.add_edge('planner', 'researcher')
graph.add_edge('researcher', 'writer')
graph.add_edge('writer', END)

Archi condizionali

Per creare una diramazione, registra una funzione che seleziona il nodo successivo:

def route(state: AgentState) -> str:
    if state['needs_research']:
        return 'researcher'
    return 'writer'

graph.add_conditional_edges(
    'planner',
    route,
    {'researcher': 'researcher', 'writer': 'writer'}
)

END è speciale

END è il nodo terminale. Qualsiasi arco che porta a END termina il grafo e restituisce lo stato corrente.

Compiling the Graph

app = graph.compile()
result = app.invoke({'messages': [...]})
print(result['answer'])

Streaming degli aggiornamenti dello stato

Osserva lo stato cambiare in tempo reale:

for event in app.stream({'messages': [...]}):
    print(event)
# Each event is the state diff from the just-completed node.

Funzioni reducer

Per unire stati complessi, usa un reducer personalizzato:

def merge_facts(old, new):
    return {**old, **new}

class State(TypedDict):
    facts: Annotated[dict, merge_facts]

Sottografi

Un nodo può essere a sua volta un altro grafo compilato, utile per gli agenti gerarchici:

subgraph = StateGraph(SubState).compile()
graph.add_node('subprocess', subgraph)

Nodi asincroni

I nodi possono essere funzioni asincrone:

async def fetch_node(state):
    data = await fetch_async(state['url'])
    return {'data': data}

result = await app.ainvoke({...})

Errori nei nodi

Se un nodo genera un'eccezione, LangGraph propaga l'errore e si arresta. Cattura l'errore nel nodo se vuoi gestirlo senza interrompere il flusso:

def safe_search(state):
    try:
        return {'results': search(state['query'])}
    except Exception as e:
        return {'error': str(e), 'results': []}

Aggiornamenti dello stato

Che cosa succede quando un nodo restituisce {'plan': '...'} come dict?

Riepilogo

Definisci uno stato TypedDict, scrivi funzioni che restituiscono aggiornamenti parziali, aggiungi nodi e archi, compila ed esegui. Questo è LangGraph.

Domande Frequenti

La lezione «Nodi, archi e stato» è gratuita?

Sì — il testo completo di «Nodi, archi e stato» è 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 «Nodi, archi e stato»?

Definisca uno stato TypedDict, scriva funzioni nodo che lo modifichino e le colleghi con archi diretti. 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 2 di 4.

Quanto tempo richiede la lezione «Nodi, archi e stato»?

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