0Pricing
AI Agents · Aula

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' / END

Evite 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 1

Visualizando 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

  1. Por que os grafos superam as cadeias lineares
  2. Nós, arestas e estado
  3. Roteamento condicional e ramificações
  4. Persistindo o estado do grafo (pontos de verificação)
← Voltar para AI Agents