Smart Cost Routing
Introducao
O Smart Cost Routing analisa a complexidade e a intencao de cada prompt, e entao seleciona o modelo mais barato capaz de lidar bem com a tarefa. Ele combina dados curados de benchmarks, feedback em tempo real dos seus usuarios e exploracao multi-armed bandit para melhorar continuamente as decisoes de roteamento.
O resultado: voce paga menos pela mesma qualidade de resposta. Perguntas simples vao para modelos baratos. Problemas complexos permanecem no seu modelo padrao. Tudo entre os dois extremos e roteado para a opcao de melhor custo-beneficio, validada por scores de benchmarks e desempenho historico.
Como Funciona
Cada requisicao passa por seis estagios antes de chamar o provedor:
Requisicao → Classificacao de Complexidade e Intencao → Filtragem de Candidatos → Pontuacao → Selecao → Chamada ao Provedor → Loop de Feedback- Classificacao de Complexidade pontua o prompt em uma escala de 0 a 1 usando heuristicas ponderadas.
- Deteccao de Intencao identifica o tipo de tarefa (codigo, matematica, raciocinio, geral).
- Filtragem de Candidatos remove modelos muito caros ou com qualidade muito baixa.
- Pontuacao classifica os candidatos restantes usando dados de benchmarks, historico de feedback e economia de custo.
- Selecao escolhe um modelo via estrategia exploit/explore.
- Loop de Feedback registra dados de resultado que melhoram decisoes futuras.
Classificacao de Complexidade
Cada prompt recebe um score de complexidade entre 0 e 1 baseado em uma analise heuristica ponderada. Cada sinal e normalizado para um intervalo de 0 a 1 e multiplicado pelo seu peso.
| Sinal | Peso | Como e Medido |
|---|---|---|
| Numero de mensagens | 30% | Normalizado de 1 a 5 mensagens |
| Tamanho do system prompt | 25% | Normalizado de 0 a 300 tokens |
| Uso de ferramentas | 20% | Binario: 1 se ferramentas presentes, 0 caso contrario |
| Blocos de codigo | 15% | Binario: 1 se ``` detectado no conteudo, 0 caso contrario |
| Contagem de tokens | 5% | Normalizado de 10 a 500 tokens |
| Saida JSON | 5% | Binario: 1 se response_format definido, 0 caso contrario |
A soma ponderada mapeia para um dos tres niveis:
| Nivel | Faixa de Score | Comportamento |
|---|---|---|
| Simples | < 0.3 | Roteia para o modelo viavel mais barato |
| Moderado | 0.3 - 0.7 | Roteia para o modelo de melhor custo-beneficio |
| Complexo | > 0.7 | Usa o modelo padrao (sem roteamento) |
Prompts complexos sempre ignoram o Smart Cost Routing e vao direto para o modelo padrao configurado.
Deteccao de Intencao
Em paralelo com a pontuacao de complexidade, o classificador detecta o tipo de tarefa escaneando o conteudo das mensagens em busca de palavras-chave e sinais estruturais. A intencao detectada determina quais benchmarks sao mais importantes ao pontuar modelos candidatos.
| Intencao | Detectada A Partir De | Prioridade |
|---|---|---|
| Codigo | Blocos de codigo, function, def, class, import, compile, debug, refactor | Mais alta |
| Matematica | ∫, ∑, integral, equation, derivative, calculate, probability, theorem | Alta |
| Raciocinio | Uso de ferramentas, step by step, analyze, reason, compare, evaluate | Media |
| Geral | Padrao quando nenhuma intencao especifica e detectada | Mais baixa |
A prioridade determina qual intencao vence quando multiplas sao detectadas. Um prompt contendo blocos de codigo e a palavra analyze e classificado como Codigo, nao Raciocinio.
Inteligencia de Modelos: Dados de Benchmarks
Este e o nucleo do Smart Cost Routing. O sistema mantem um banco de dados curado de capacidades de modelos, pontuados em benchmarks padronizados. Esses dados impulsionam a estimativa de qualidade que torna as decisoes de roteamento possiveis.
De Onde Obtemos os Dados de Benchmarks
Os scores de benchmarks sao agregados de multiplas fontes autoritativas e cruzados para garantir precisao:
- Documentacao dos provedores (model cards oficiais da OpenAI, Anthropic, Google, etc.)
- HuggingFace Open LLM Leaderboard
- Epoch AI Benchmarks
- Artificial Analysis
- LLM Stats / Klu AI / Onyx Leaderboards
Quando as fontes divergem, usamos os numeros oficiais do provedor como referencia primaria e sinalizamos discrepancias para revisao manual.
Quais Benchmarks Rastreamos
Cada benchmark mede uma capacidade especifica. O sistema de roteamento usa diferentes benchmarks dependendo da intencao detectada.
| Benchmark | O Que Mede | Usado Para Intencao |
|---|---|---|
| MMLU | Conhecimento geral em 57 disciplinas | Geral, Raciocinio |
| GPQA | Q&A de nivel pos-graduacao | Raciocinio, Matematica |
| HumanEval | Geracao de codigo Python (pass@1) | Codigo |
| SWE-bench | Resolucao de issues reais do GitHub | Codigo |
| LiveCodeBench | Problemas de programacao contemporaneos | Codigo |
| MATH | Matematica de nivel competicao | Matematica |
| AIME 2025 | Problemas do American Invitational Math Exam | Matematica |
| MMLU-Pro | Variante mais dificil do MMLU com 10 opcoes | Raciocinio |
| IFEval | Precisao no seguimento de instrucoes | Geral |
| HellaSwag | Raciocinio de senso comum | Geral |
| ARC | AI2 Reasoning Challenge | Raciocinio |
Cobertura: 27 dos 51 modelos rastreados possuem dados de benchmarks atualmente. Modelos sem dados de benchmarks recebem um score padrao de 0.5 (neutro, sem bonus nem penalizacao).
Como os Dados Sao Curados
O sistema de agregacao Midas busca dados de precos e benchmarks para todos os modelos suportados. Cada entrada de modelo contem:
- Precos: custo de tokens de entrada, saida e cache
- Benchmarks: normalizados em escala de 0 a 1 para comparacao entre modelos
- Capacidades: janela de contexto, suporte multimodal, chamada de funcoes
- Pontos fortes e fracos: notas qualitativas por modelo
- Recomendacoes: casos de uso sugeridos
Os dados sao atualizados sempre que os provedores publicam novidades. O dataset completo e embutido no binario do gateway em tempo de build, permitindo consultas com latencia zero e sem chamadas de API externas durante o roteamento de requisicoes.
Score de Qualidade Ponderado por Benchmarks
O score de qualidade para um dado modelo e intencao e calculado como uma media ponderada dos scores de benchmarks disponiveis:
benchmark_score = Σ(vᵢ × wᵢ) / Σ(wᵢ)Onde vᵢ e o score do modelo no benchmark i e wᵢ e o peso daquele benchmark para a intencao detectada. O denominador soma apenas os pesos dos benchmarks que estao realmente presentes para o modelo, de forma que benchmarks ausentes nao penalizam o score.
Tabelas de Pesos por Intencao
Intencao Codigo:
| Benchmark | Peso |
|---|---|
| HumanEval | 35% |
| SWE-bench | 30% |
| LiveCodeBench | 20% |
| MMLU | 10% |
| IFEval | 5% |
Intencao Matematica:
| Benchmark | Peso |
|---|---|
| MATH | 40% |
| GPQA | 25% |
| MMLU | 15% |
| AIME 2025 | 15% |
| ARC | 5% |
Intencao Raciocinio:
| Benchmark | Peso |
|---|---|
| GPQA | 30% |
| MMLU | 25% |
| MATH | 20% |
| MMLU-Pro | 15% |
| ARC | 10% |
Intencao Geral:
| Benchmark | Peso |
|---|---|
| MMLU | 30% |
| GPQA | 15% |
| HumanEval | 15% |
| MATH | 15% |
| IFEval | 15% |
| HellaSwag | 10% |
Exemplo Pratico
GPT-4o com intencao Codigo:
Suponha que o GPT-4o tenha estes scores de benchmark: HumanEval = 0.902, MMLU = 0.887. SWE-bench e LiveCodeBench nao estao disponiveis para este modelo.
| Benchmark | Score | Peso | Contribuicao |
|---|---|---|---|
| HumanEval | 0.902 | 0.35 | 0.3157 |
| SWE-bench | — | — | ignorado |
| LiveCodeBench | — | — | ignorado |
| MMLU | 0.887 | 0.10 | 0.0887 |
| IFEval | — | — | ignorado |
Soma das contribuicoes: 0.3157 + 0.0887 = 0.4044 Soma dos pesos disponiveis: 0.35 + 0.10 = 0.45
Score de qualidade = 0.4044 / 0.45 = 0.898
Algoritmo de Selecao de Modelos
Filtragem de Candidatos
Antes da pontuacao, o pool de candidatos e reduzido:
- Lista de provedores: Apenas modelos habilitados na lista de provedores do Smart Cost Routing sao considerados.
- Teto de custo: O
avg_token_costdeve ser menor ou igual ao custo do modelo padrao. O Smart Cost Routing nunca roteia para um modelo mais caro. - Piso de qualidade: O score de qualidade do modelo (de feedback de sessao, feedback automatico, avaliacao manual e/ou benchmarks com pesos dinamicos) deve atingir ou exceder o
min_quality.
Estrategia de Selecao
O sistema usa uma abordagem multi-armed bandit:
Exploit (90% das requisicoes): Seleciona o candidato com maior score. O score de exploit combina tres fatores:
score = (taxa_de_sucesso × 0.4) + (qualidade × 0.4) + (economia × 0.2)Um modelo precisa de pelo menos 10 requisicoes completadas antes de ser elegivel para exploitation. Ate la, e tratado como nao explorado.
Explore (10% das requisicoes): Seleciona o candidato menos testado para coletar dados de desempenho. Isso evita que o sistema fique preso em um otimo local e garante que novos modelos recebam uma avaliacao justa.
Bypass: Se nenhum candidato sobreviver a filtragem, ou se o prompt for classificado como Complexo, o modelo padrao e usado sem roteamento.
O Ciclo Auto-Corretivo
O Smart Cost Routing melhora ao longo do tempo atraves de um loop de feedback multi-sinal. O sinal de qualidade combina quatro fontes com pesos dinamicos:
- Feedback de sessao (NPS dos usuarios finais) — maior confianca quando disponivel
- Feedback automatico (scoring heuristico + LLM por requisicao) — baseline automatizado
- Avaliacao manual (positivo/negativo do admin) — alta confianca, baixo volume
- Scores de benchmark — fallback quando nao existe feedback
Quando feedback de sessao existe (>10 sessoes), ele recebe 50% do peso de qualidade. Quando apenas feedback automatico existe, ele recebe 50%. Quando nao existe feedback algum, benchmarks sao usados a 100%. Isso significa que o sistema comeca com padroes razoaveis e converge para sinais do mundo real conforme os dados se acumulam.
Modelos que consistentemente recebem feedback negativo veem seus scores de qualidade cairem e eventualmente ficam abaixo do limite minimo de qualidade, sendo removidos do pool de candidatos. Isso cria um sistema auto-corretivo: decisoes de roteamento ruins geram feedback negativo, que impede o mesmo erro de acontecer novamente.
Para detalhes sobre como enviar feedback e como ele e processado, consulte Feedback.
Configuracao
- Acesse Routing no dashboard.
- Crie ou edite uma regra de roteamento.
- Ative o Smart Cost Routing.
- Configure os seguintes parametros:
- Taxa de Exploracao: Porcentagem de requisicoes usadas para testar modelos menos explorados (padrao: 10%).
- Qualidade Minima: Score minimo aceitavel de qualidade para um modelo candidato (padrao: 70%).
- Provedores: Restrinja quais provedores e modelos podem ser usados como alvos de roteamento.
Monitoramento
Cada resposta roteada pelo Smart Cost Routing inclui headers que informam o que aconteceu:
| Header | Descricao |
|---|---|
Floopy-Smart-Cost-Decision | Se a requisicao foi roteada (routed), ignorada (bypass) ou usou o padrao (default) |
Floopy-Model | O modelo que realmente serviu a requisicao |
Use esses headers na sua aplicacao para registrar decisoes de roteamento, construir dashboards ou disparar alertas quando o comportamento de roteamento mudar inesperadamente.
Disponibilidade
O Smart Cost Routing esta disponivel no plano Pro.