
Por que seu agente de IA queima 10.000 tokens em matemática que poderia fazer em 1ms
O Cadeia-de-Pensamento de $3,000
No mês passado, o agente de IA de uma equipe de e-commerce gerenciou seus testes A/B. Três variantes. O agente observou os dados de conversão, raciocinou sobre qual variante estava vencendo e alocou o tráfego. A cadeia de pensamento era linda:
"A variante B mostra uma taxa de conversão de 4,2% contra 3,8% da A. No entanto, a variante C tem um tamanho de amostra menor (n=340), então eu devo alocar mais tráfego lá para significância estatística antes de tirar conclusões. Por enquanto, vou direcionar 60% do tráfego para B como o líder atual."
Reflexivo. Medido. Errado.
Três semanas e $3,000 em conversões perdidas depois, um cientista de dados júnior rodou os números reais através de um bandido de amostragem de Thompson. A variante C foi a vencedora -- por uma ampla margem. Sua taxa de conversão de 66,7% em uma amostra pequena não era ruído. Era um sinal que qualquer algoritmo de exploração-exploração teria captado no primeiro dia.
O agente não cometeu um erro de cálculo. Ele nunca calculou nada. Ele narrava como um cálculo poderia parecer, e a narrativa soava razoável o suficiente para que ninguém a questionasse.
Isso não é uma falha isolada. É uma falha arquitetônica sistemática em como construímos agentes de IA hoje, e está custando dinheiro real às equipes em produção agora.
O Modo de Falha Invisível
O que torna essa categoria de bug aterrorizante é que é indetectável ao ler a saída.
Quando um agente alucina um fato, você pode verificar o fato. Quando ele escreve código com bugs, os testes falham. Mas quando ele produz um raciocínio matemático que soa plausível? A cadeia de pensamento é a evidência, e a evidência parece à prova de balas.
Aqui está o mecanismo de falha específico: LLMs tratam a incerteza como uma razão para ser cauteloso. Quando o agente viu a variante C com apenas 340 observações, seus dados de treinamento -- cheios de sabedoria humana sobre "não tirar conclusões precipitadas" e "precisar de tamanhos de amostra maiores" -- disseram-lhe para ser cauteloso. Alocar menos tráfego. Esperar e ver.
Mas na tomada de decisão sequencial sob incerteza, essa intuição é provavelmente subótima. Todo o campo dos bandos de braços múltiplos existe por causa de uma verdade matemática que contradiz a intuição humana: quando você está incerto sobre uma opção, deve explorá-la mais, não menos. O ganho potencial de informação ao puxar um braço incerto supera o arrependimento esperado.
A amostragem de Thompson lida com isso de forma elegante. Ela modela cada braço como uma distribuição Beta (para resultados binários como conversões). Para a variante C com 8 sucessos e 4 falhas, a posterior é Beta(9, 5) -- uma distribuição com alta variância, mas uma média de 0,64. Quando você amostra dessas distribuições, o braço de alta variância é selecionado com mais frequência exatamente porque a incerteza pode se resolver favoravelmente. Isso não é imprudência. Isso é exploração matematicamente ótima.
O LLM não pode fazer isso. Não porque é estúpido, mas porque amostrar de uma distribuição Beta e comparar as amostras entre os braços é uma computação, não uma tarefa de raciocínio. Pedir a um LLM para fazer isso é como pedir a um poeta para multiplicar matrizes. O poeta pode escrever algo bonito sobre multiplicação de matrizes. Não será correto.
Isso importa porque o modo de falha é invisível. A saída passa em todos os testes de vibração. A cadeia de raciocínio lê como algo que um analista inteligente escreveria. A única maneira de pegá-lo é rodar a matemática real -- o que levanta a óbvia questão: por que não rodar a matemática real em primeiro lugar?
A Arquitetura Que Corrige Isso
A correção não é substituir agentes. É dar a eles as ferramentas certas.
O padrão é simples: LLM raciocina, algoritmo computa, LLM interpreta.
O agente ainda faz o que realmente é bom -- entender o contexto, decidir qual ferramenta invocar, gerar relatórios legíveis por humanos, explicar resultados para as partes interessadas. Ele apenas para de fingir ser um matemático.
Aqui está como o fluxo corrigido se parece para cenários comuns:
Teste A/B: O agente vê dados de conversão, chama um endpoint de bandido de braços múltiplos, obtém o braço matematicamente ótimo para puxar a seguir. O agente decide quando executar o teste e como explicar o resultado. O algoritmo decide qual braço vence.
Agendamento: O agente recebe um conjunto de tarefas com restrições (prazo, dependências, limites de recursos), chama um solucionador de programação linear, obtém o cronograma ótimo. O agente lida com o contexto humano complicado -- "esta reunião é tecnicamente opcional, mas politicamente obrigatória." O solucionador lida com a otimização combinatória.
Avaliação de Risco: O agente identifica que uma decisão precisa de análise probabilística, chama uma simulação de Monte Carlo, obtém intervalos de confiança reais. Sem mais "eu estimo uma probabilidade de 70%" tirada do equivalente estatístico do nada.
Detecção de Anomalias: O agente monitora fluxos de dados, chama um algoritmo de detecção com limites estatísticos adequados, obtém anomalias sinalizadas com Z-scores e p-valores em vez de "isso parece incomum."
A chave é a percepção: algoritmos determinísticos são commodities. Amostragem de Thompson, Simplex, Monte Carlo -- esses são problemas resolvidos. Cada agente que precisa deles está atualmente resolvendo-os mal através de um raciocínio caro em tokens. E se eles fossem apenas... chamadas de API?
Experimente: A Correção do Teste A/B
Vamos tornar isso concreto. Aqui está o exato cenário de teste A/B da abertura, rodado através de um endpoint de amostragem de Thompson real:
curl -X POST https://oraclaw-api.onrender.com/api/v1/optimize/bandit \
-H "Content-Type: application/json" \
-d '{
"arms": [
{"id": "A", "name": "Controle", "pulls": 500, "totalReward": 175},
{"id": "B", "name": "Variante B", "pulls": 300, "totalReward": 126},
{"id": "C", "name": "Variante C", "pulls": 12, "totalReward": 8}
],
"algorithm": "thompson"
}'
A resposta chega em menos de 5ms. A amostragem de Thompson seleciona Variante C -- o braço pouco explorado com o maior potencial. O algoritmo amostra da posterior Beta de cada braço:
- Braço A: Beta(176, 326) -- distribuição apertada em torno de 0,35
- Braço B: Beta(127, 175) -- distribuição apertada em torno de 0,42
- Braço C: Beta(9, 5) -- distribuição ampla, média 0,64
A alta variância no Braço C significa que suas amostras frequentemente superam as de B. Isso não é um bug; isso é exploração ótima. O algoritmo quer aprender mais sobre C porque o valor esperado da informação é mais alto lá.
Compare os resultados:
| Métrica | Raciocínio LLM | Algoritmo |
|---|---|---|
| Braço selecionado | B (viés de confirmação) | C (exploração ótima) |
| Tempo para identificar o vencedor | Nunca (preso em B) | ~48 horas |
| Aumento de conversão | 0% (braço errado) | +23% (braço correto) |
| Tokens consumidos | ~2,000 por decisão | 0 |
| Latência | 800ms (ida e volta da API + inferência) | <5ms |
O LLM gastou 2,000 tokens chegando à resposta errada. O algoritmo gastou zero tokens chegando à resposta certa. Multiplique isso por cada decisão que um agente toma em produção, e você começa a ver por que essa arquitetura importa.
Para Usuários do MCP: Configuração em 3 Linhas
Se você está construindo agentes com Claude, G
Empresas brasileiras podem perder dinheiro devido a falhas na tomada de decisão de agentes de IA. A implementação de algoritmos matemáticos para otimização pode melhorar a eficiência e reduzir custos. É crucial entender como integrar LLMs com ferramentas de cálculo para evitar erros.

