O bloco Router usa um modelo para escolher um de vários caminhos com base no conteúdo que lê. Cada rota que você define adiciona sua própria porta de saída, e o modelo escolhe a rota cuja descrição melhor se encaixa. Use quando a decisão precisa entender intenção ou texto não estruturado. Quando a decisão é uma regra simples, use um Condition.
Router vs Condition. Um Router lê contexto com um modelo e escolhe uma rota por significado, então serve para roteamento baseado em intenção ("mande este ticket para o time certo") e texto variável. Um Condition avalia expressões booleanas sem modelo, então serve para dados estruturados e regras exatas. O Router custa tokens por execução; o Condition é grátis e mais rápido.
Configuração
Context
O texto que o Router analisa para decidir. Geralmente uma saída anterior, como <start.input> ou <agent.content>.
Routes
Cada rota é um title e uma description de quando escolhê-la ("Route here for pricing and purchasing questions"). Toda rota adiciona uma porta de saída separada no bloco; conecte cada uma ao caminho daquela rota. O modelo lê o contexto e seleciona a rota cuja descrição melhor se encaixa.
Model
O modelo que toma a decisão, com padrão claude-sonnet-4-6. Modelos de raciocínio mais fortes roteiam com mais precisão; um modelo mais rápido e barato serve quando as rotas são claramente distintas. Digite ou escolha qualquer modelo suportado, ou um local via Ollama ou VLLM. No Zoen hospedado a API key é fornecida para você.
Saídas
| Saída | O que é |
|---|---|
<router.selectedRoute> | O id da rota que o modelo escolheu |
<router.reasoning> | Uma explicação curta de por que escolheu aquela rota |
<router.context> | O contexto que foi analisado |
<router.model> | O modelo que decidiu |
<router.tokens> | Uso de tokens |
<router.cost> | Custo estimado da chamada |
<router.selectedPath> | O bloco de destino para o qual o workflow roteou |
Quando nenhuma rota se encaixa no contexto, o Router retorna NO_MATCH e toma o error path em vez de chutar. Conecte o error path para um fallback.
Exemplos
Triagem de um ticket de suporte
O Router lê <start.input>, escolhe a rota cuja descrição bate e roda só aquele caminho.
Classificar feedback
O Router separa feedback recebido em feedback de produto ou bug report, cada um tratado pelo seu próprio bloco filho Workflow.
Qualificar um lead
O Router manda leads enterprise para um agente de vendas e todo o resto para um workflow de onboarding self-serve.
Boas práticas
- Escreva descrições de rota claras e específicas. A descrição é o que o modelo usa para matching, então deixe os critérios explícitos.
- Mantenha rotas mutuamente exclusivas. Descrições sobrepostas tornam a escolha ambígua e o roteamento menos confiável.
- Conecte o error path. Trate
NO_MATCHem vez de deixar a execução falhar em silêncio. - Use Condition quando puder. Se a decisão é uma checagem booleana em dados estruturados, o bloco Condition é grátis, mais rápido e determinístico.