Reference

Router

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ídaO 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_MATCH em 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.

Common Questions

Ele envia seu contexto e a descrição de cada rota a um modelo, que seleciona a rota cuja descrição melhor bate. O modelo é instruído a preferir escolher uma rota a retornar nada, e só retorna NO_MATCH quando o contexto não se relaciona a nenhuma rota.
O modelo retorna NO_MATCH e o Router direciona a execução para o error path. Conecte um error handler lá para um fallback gracioso em vez de deixar o workflow falhar em silêncio.
Sim. Ele faz uma chamada a modelo em toda decisão de roteamento, o que consome tokens. Monitore com <router.tokens> e <router.cost>. Se seu roteamento puder ser expresso como condições booleanas, use o bloco Condition — é grátis e mais rápido.
Sim. A saída reasoning (<router.reasoning>) contém uma breve explicação de por que a rota selecionada foi escolhida, o que é útil para debugar decisões de roteamento.
Não há limite rígido, e cada rota adiciona sua própria porta de saída. Lembre que mais rotas com descrições sobrepostas são mais difíceis para o modelo distinguir, então busque rotas claras e mutuamente exclusivas.

On this page