Caso de uso
Decisions API para roteamento de requisições
Rotear é uma decisão finita: qual fila, qual prioridade, humano ou automação. Uma chamada de decisão devolve a escolha mais a probabilidade de cada opção, então você pode atribuir automaticamente os casos confiantes e mandar o resto para triagem.
Atualizado
Por que o roteamento é um encaixe natural
Rotear faz uma pergunta finita — qual das minhas filas é dona disso — e é exatamente o que um endpoint de decisões responde nativamente. Sem extrair nome de fila de texto gerado, sem engenharia de prompt para impedir que invente uma quinta fila.
A mesma chamada pode carregar várias perguntas sobre o mesmo ticket, então fila, urgência e um indicador de revisão se resolvem numa só ida e volta por 1 crédito.
- Atribuição de fila: billing, platform, account, other
- Prioridade: um score ordenado de baixo a bloqueante
- Escalação: um check noul sobre se um humano deve olhar primeiro
Escreva os criteria como descrições de fila
Cada opção de uma pergunta choice leva uma descrição curta do que pertence a ela. Escreva como faria um briefing para um novo analista de triagem — essas descrições são sua política de roteamento.
Sempre inclua uma opção 'other' ou 'unclear'. Dar ao modelo uma saída honesta evita que tickets ambíguos caiam na fila errada com aparência de confiança.
Uma chamada: fila mais urgência
Envie o texto do ticket como state e faça duas perguntas: um choice para o time responsável e um score para a urgência. A resposta traz answers.team.choice, answers.urgency.score e uma probabilidade por opção nas duas.
Choice + score numa requisição
// Route a ticket: ask for team + urgency in one call,
// then gate the automation on confidence.
const res = await fetch("https://decisions-api.net/api/v1/decisions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "decisions-1",
state: "Payments fail with a 500 since your last deploy. Enterprise plan customer.",
questions: {
team: {
type: "choice",
instructions: "Which queue should handle this request?",
criteria: {
payments: "Billing, charges, or payment failures.",
platform: "Deploys, infrastructure, or API errors.",
account: "Login, SSO, or permissions.",
other: "Unclear or out of scope.",
},
},
urgency: {
type: "score",
instructions: "How urgent is this for the customer?",
criteria: ["can wait", "normal queue", "needs attention today", "blocking revenue"],
},
},
}),
});
const { answers } = await res.json();
// Illustrative response: answers.team -> { choice: "payments", confidence: 0.84 }
// answers.urgency -> { score: 3, confidence: 0.79 } (0 = lowest level)
if (answers.team.confidence >= 0.8 && answers.team.choice !== "other") {
assignToQueue(answers.team.choice, { priority: answers.urgency.score });
} else {
assignToQueue("human_triage", { note: "low confidence" });
}Condicione a atribuição automática à confiança
A distribuição de probabilidades é o que torna o roteamento seguro de automatizar. Um ponto de partida razoável: aplique o roteamento quando a confiança for 0.8 ou mais, e mande o resto para uma fila de triagem humana.
Ajuste o limiar com seu próprio histórico de tickets — o valor certo depende do custo de um ticket mal roteado versus um atrasado.
Encaminhe requisições entre modelos
O mesmo padrão escolhe qual modelo deve responder. Faça uma pergunta choice com opções como fast_model (requisições factuais curtas ou de formatação), strong_model (raciocínio em várias etapas, código, contexto longo) e human (jurídico, reembolsos ou qualquer coisa que um modelo não deveria responder sozinho). Cada opção retorna com uma probabilidade, então você vê o quão disputada foi a escolha.
Faça o gate da mesma forma: quando a confiança é baixa, encaminhe a requisição para uma pessoa ou um caminho mais seguro em vez de confiar na opção vencedora — a probabilidade da segunda opção mostra o quão apertada foi a decisão.
Custo e volume
Uma chamada bem-sucedida custa 1 crédito, com 1 ou 6 perguntas. Para um backlog de tickets históricos, a ferramenta batch do painel roda a mesma forma de requisição sobre CSV ou JSONL.
FAQ
Para quantas filas posso rotear?
Uma pergunta choice aceita de 2 a 8 opções. Se você roteia para mais filas, divida a decisão: uma primeira chamada escolhe o departamento, uma segunda escolhe o time dentro dele.
Posso rotear por urgência na mesma chamada?
Sim — adicione uma pergunta score com descrições de níveis ordenadas. Uma chamada comporta até 6 perguntas, então fila, urgência e um indicador de escalação se resolvem juntos.
E quando o ticket é ambíguo?
A resposta inclui uma probabilidade por opção. Quando as duas primeiras estão próximas — digamos 0.45 contra 0.42 — trate o ticket como ambíguo e roteie para triagem humana em vez de confiar no vencedor.
Funciona com tickets em outros idiomas?
Escreva o state e as descrições das opções no idioma dos seus tickets, e mantenha as chaves das opções em ASCII para o código de roteamento ficar legível.
Ele pode escolher qual LLM responde a uma requisição?
Sim — torne os modelos as opções de uma pergunta choice e descreva no que cada um é bom. Encaminhe os casos de baixa confiança para o modelo mais forte.
Roteie um ticket agora
Uma decisão de teste grátis para novos visitantes — cole um ticket real no playground e leia as probabilidades.