Roteamento condicional e ramificações
Utilize add_conditional_edges para encaminhar com base no estado — o agente decide para onde ir em seguida.
Roteamento condicional e ramificações é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Por que usar arestas condicionais?
Agentes reais tomam decisões. Depois de uma etapa, a próxima depende do estado atual. As arestas condicionais codificam essa lógica.
Adicionando uma aresta condicional
Três elementos: nó de origem, função de roteamento e mapa de destinos:
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'
}
)Assinaturas das funções de roteamento
O roteador recebe o estado completo e retorna uma string (ou uma lista de strings para ramificações paralelas).
Laços para o próprio nó
Uma aresta pode retornar ao mesmo nó — isso é usado para novas tentativas:
graph.add_conditional_edges(
'validator',
lambda s: 'retry' if not s['valid'] else 'done',
{'retry': 'planner', 'done': END}
)Ramificações paralelas
Retorne uma lista de nomes de nós para executar vários nós subsequentes em paralelo:
def fan_out(state):
return ['search_news', 'search_arxiv', 'search_github']
graph.add_conditional_edges('planner', fan_out)Unindo ramificações paralelas
As ramificações paralelas convergem novamente em um nó subsequente comum. As mesclagens de estado combinam suas saídas (use redutores para listas/dicionários).
Roteamento com chamadas de ferramentas
Padrão clássico: depois que o LLM responde, verifique tool_calls e faça o roteamento de acordo:
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})Roteamento para vários destinos
Lógica de 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')Roteamento com chamadas de LLM
Você pode usar um LLM para decidir para onde ir em seguida:
def llm_router(state):
decision = llm.invoke(f'Route this to: search, calculate, or end?\nState: {state}').content.strip()
return decision # 'search' / 'calculate' / ENDEvite laços infinitos
Sem um contador de etapas, um agente pode executar um laço para sempre. Adicione um contador ao estado:
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 1Visualizando ramificações
O diagrama Mermaid de um grafo com arestas condicionais mostra losangos de decisão — útil para revisão:
print(app.get_graph().draw_mermaid())Arestas condicionais
O que a função de roteamento em add_conditional_edges retorna?
Recapitulação
As arestas condicionais permitem que os agentes tomem decisões. Adicione um contador de etapas para evitar laços e visualize o grafo para manter o controle.
Perguntas Frequentes
A aula “Roteamento condicional e ramificações” é grátis?
Sim — o texto completo de “Roteamento condicional e ramificações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Roteamento condicional e ramificações”?
Utilize add_conditional_edges para encaminhar com base no estado — o agente decide para onde ir em seguida. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Roteamento condicional e ramificações”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que os grafos superam as cadeias lineares
- Nós, arestas e estado
- Roteamento condicional e ramificações
- Persistindo o estado do grafo (pontos de verificação)