Routing condizionale e branching
Utilizzi add_conditional_edges per distribuire il flusso in base allo stato: sarà l'agente a decidere dove procedere.
Routing condizionale e branching è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 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.
Perché usare gli archi condizionali?
Gli agenti reali prendono decisioni. Dopo un passaggio, quello successivo dipende dallo stato corrente. Gli archi condizionali codificano questa logica.
Aggiunta di un arco condizionale
Servono tre elementi: nodo di origine, funzione di routing e mappa delle destinazioni:
def route_after_planning(state: AgentState) -> str:
if state.get('confidence', 0) > 0.8:
return 'execute'
return 'replan'
graph.add_conditional_edges(
'planner',
route_after_planning,
{
'execute': 'executor',
'replan': 'planner'
}
)Firme delle funzioni di routing
Il router riceve lo stato completo e restituisce una stringa (o un elenco di stringhe per le diramazioni parallele).
Self-loop
Un arco può tornare allo stesso nodo, ad esempio per eseguire dei retry:
graph.add_conditional_edges(
'validator',
lambda s: 'retry' if not s['valid'] else 'done',
{'retry': 'planner', 'done': END}
)Diramazioni parallele
Restituisci un elenco di nomi di nodi per eseguire in parallelo più nodi a valle:
def fan_out(state):
return ['search_news', 'search_arxiv', 'search_github']
graph.add_conditional_edges('planner', fan_out)Unione delle diramazioni parallele
Le diramazioni parallele si riuniscono in un nodo comune a valle. L'unione dello stato combina i relativi output (usa reducer per liste e dict).
Routing in base alle chiamate agli strumenti
Schema classico: dopo la risposta dell'LLM, controlla la presenza di tool_calls e instrada il flusso di conseguenza:
def should_use_tool(state):
last_msg = state['messages'][-1]
if last_msg.tool_calls:
return 'tools'
return END
graph.add_conditional_edges('agent', should_use_tool, {'tools': 'tools', END: END})Routing a più vie
Logica switch-case:
def route_by_intent(state):
intent = classify(state['messages'][-1])
return {'q': 'qa_agent', 'order': 'order_agent', 'support': 'support_agent'}.get(intent, 'fallback')Routing con chiamate LLM
Puoi usare un LLM per decidere dove procedere:
def llm_router(state):
decision = llm.invoke(f'Route this to: search, calculate, or end?\nState: {state}').content.strip()
return decision # 'search' / 'calculate' / ENDEvita i loop infiniti
Senza un contatore dei passaggi, un agente può eseguire un loop all'infinito. Aggiungi un contatore allo stato:
class State(TypedDict):
step: int
...
def route(state):
if state['step'] >= MAX_STEPS:
return END
return 'continue'Increment Counter Reducer
def add(old: int, new: int) -> int:
return old + new
class State(TypedDict):
step: Annotated[int, add]
def any_node(state):
return {'step': 1} # increments by 1Visualizzazione delle diramazioni
Il diagramma Mermaid di un grafo con archi condizionali mostra rombi decisionali, utili per la revisione:
print(app.get_graph().draw_mermaid())Archi condizionali
Che cosa restituisce la funzione router in add_conditional_edges?
Riepilogo
Gli archi condizionali permettono agli agenti di prendere decisioni. Aggiungi un contatore dei passaggi per evitare i loop e visualizza il grafo per mantenere il controllo.
Domande Frequenti
La lezione «Routing condizionale e branching» è gratuita?
Sì — il testo completo di «Routing condizionale e branching» è 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 «Routing condizionale e branching»?
Utilizzi add_conditional_edges per distribuire il flusso in base allo stato: sarà l'agente a decidere dove procedere. 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 3 di 4.
Quanto tempo richiede la lezione «Routing condizionale e branching»?
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)