· 15 min de leitura · ...

IA para tudo é o canhão que mata mosquito: quando usar, quando não usar e quando combinar

IA para tudo é o canhão que mata mosquito: quando usar, quando não usar e quando combinar

Nem todo problema precisa de IA. Muitos têm soluções determinísticas mais rápidas, baratas e confiáveis. Um framework prático para decidir entre IA, não-IA e abordagem híbrida.

IAarquiteturacustosprodutividadedesenvolvimento de software
Indice

Semana passada vi um post no LinkedIn que me fez parar de rolar o feed.

Um desenvolvedor estava orgulhosamente mostrando seu “validador de e-mail inteligente com IA”. O sistema enviava o e-mail digitado pelo usuário para um LLM, que respondia se o formato era válido ou não. O post tinha 200+ likes e comentários do tipo “genial!” e “o futuro é agora”.

Eu fiquei olhando para a tela. Uma expressão regular de uma linha faz exatamente isso. Em 0.001 segundo. Por zero centavos. Com 100% de determinismo.

Aquilo era um canhão para matar um mosquito.

E esse é o problema que vejo se repetindo todos os dias na indústria: estamos tão empolgados com o que a IA pode fazer que esquecemos de perguntar se ela deveria fazer. Não porque IA seja ruim. Ela é extraordinária para os problemas certos. Mas porque existe uma diferença fundamental entre problemas que precisam de IA e problemas que já têm soluções melhores, mais rápidas e mais baratas.

A habilidade mais valiosa de um engenheiro na era da IA não é saber usar o ChatGPT. É saber quando não usar. E saber quando combinar as duas abordagens numa solução híbrida que pega o melhor dos dois mundos.

Neste post, vou te dar um framework prático para nunca mais errar essa decisão. Vamos falar de determinismo, custos, exemplos reais e uma matriz de decisão que você pode aplicar amanhã no seu trabalho.

Determinístico vs não-determinístico: o conceito que muda tudo

Se você entender esse único conceito, já vai tomar decisões melhores que 90% dos engenheiros que trabalham com IA hoje. Não é exagero.

O que é determinístico

Um sistema determinístico é aquele em que a mesma entrada sempre produz a mesma saída. Sem exceção. Sem “depende”. Sem “quase sempre”.

Exemplos que você conhece:

  • 2 + 2 sempre dá 4
  • Uma regex de validação de e-mail sempre retorna true ou false para a mesma string
  • O algoritmo de dígito verificador de CPF sempre valida ou rejeita o mesmo número
  • sort([3, 1, 2]) sempre retorna [1, 2, 3]
  • Um cálculo de imposto com as mesmas alíquotas e base sempre dá o mesmo valor

Essas operações são previsíveis, testáveis (um unit test resolve), rápidas (microsegundos), baratas (custo computacional próximo de zero) e auditáveis (você pode rastrear cada passo).

O que é não-determinístico

Um sistema não-determinístico é aquele em que a mesma entrada pode gerar saídas diferentes, e todas podem ser igualmente válidas.

LLMs são inerentemente não-determinísticos. Mesmo com temperature=0, há variações sutis entre chamadas (por causa de floating point, batching, e otimizações internas). Na prática, se você pedir para um LLM resumir o mesmo texto 10 vezes, vai receber 10 resumos diferentes. Todos podem estar corretos. Nenhum é “o” resumo.

Exemplos de tarefas genuinamente não-determinísticas:

  • Resumir um documento de 50 páginas
  • Traduzir texto preservando tom e contexto cultural
  • Classificar a intenção de um cliente em linguagem natural (“quero cancelar” vs “como faço pra cancelar” vs “cancela essa porcaria”)
  • Gerar copy de marketing
  • Responder perguntas abertas sobre um codebase

Essas tarefas exigem compreensão de linguagem natural, julgamento contextual e capacidade de lidar com ambiguidade. Não existe uma fórmula determinística que resolva isso.

A sacada que pouca gente tem

A pergunta que a maioria dos engenheiros faz é: “a IA consegue resolver isso?”

A resposta é quase sempre sim. LLMs são generalistas poderosos. Eles conseguem validar um e-mail. Conseguem formatar uma data. Conseguem converter CSV para JSON.

Mas a pergunta certa é outra: “esse problema exige não-determinismo?”

Se a resposta for não, se a mesma entrada deve sempre gerar a mesma saída, você está pagando tokens por algo que uma função faz de graça.

CaracterísticaDeterminísticoNão-determinístico (LLM)
Mesma entrada = mesma saídaSempreQuase nunca
Custo por execuçãoFrações de centavoCentavos a dólares
Latência< 10ms500ms a 30s
TestabilidadeUnit test = resolvidoEvals, benchmarks, incerteza
AuditabilidadeTrace completo”Depende do prompt”
Lida com ambiguidadeNãoSim
Lida com novidadeNãoSim

O problema do hype: IA em tudo

Exemplos reais de exagero

Eu coleciono esses exemplos. Não por maldade, mas porque cada um deles é uma oportunidade de aprendizado. Veja se você reconhece algum:

Validar formato de e-mail com LLM:

# O que fazem:
response = llm.chat("Is this a valid email? user@example.com")
# ~500 tokens, ~$0.0015, ~800ms

# O que deveriam fazer:
import re
is_valid = bool(re.match(r'^[\w.-]+@[\w.-]+\.\w+$', email))
# 0 tokens, $0.00, <1ms

Formatar data de ISO para dd/mm/yyyy:

# O que fazem:
response = llm.chat("Convert 2026-03-30 to dd/mm/yyyy format")
# ~200 tokens, ~$0.0006, ~600ms

# O que deveriam fazer:
from datetime import datetime
formatted = datetime.strptime("2026-03-30", "%Y-%m-%d").strftime("%d/%m/%Y")
# 0 tokens, $0.00, <1ms

Classificar status HTTP como sucesso ou erro:

# O que fazem:
response = llm.chat(f"Is HTTP status {status} a success or error?")

# O que deveriam fazer:
is_error = status >= 400

Converter CSV para JSON:

# O que fazem:
response = llm.chat(f"Convert this CSV to JSON:\n{csv_data}")

# O que deveriam fazer:
import pandas as pd
result = pd.read_csv("data.csv").to_json(orient="records")

Cada um desses exemplos tem algo em comum: o problema é 100% determinístico. Não existe ambiguidade. Não existe julgamento. Não existe variação aceitável na saída. É input -> output, sempre igual.

Por que isso acontece

Quatro razões principais:

Resume-driven development. “Usa IA” fica bonito no LinkedIn e no currículo. O incentivo é usar IA mesmo quando não faz sentido.

Pressão de investidores e gestores. “A gente precisa de uma história de IA.” Startups colocam IA em tudo para justificar valuations. Empresas grandes criam “iniciativas de IA” para mostrar inovação.

Desconhecimento de alternativas. Uma geração inteira de desenvolvedores aprendeu a programar com IA. Muitos nunca precisaram descobrir que dateutil parseia datas, que Zod valida schemas, que fasttext detecta idiomas. Quando sua única ferramenta é um LLM, todo problema parece um prompt.

O problema do martelo e do prego. Quando você acabou de aprender a usar uma ferramenta poderosa, a tentação de usá-la para tudo é enorme. LLMs são o martelo mais sofisticado que já existiu, mas nem todo problema é um prego.

O custo do exagero

Eu já escrevi em detalhe sobre o custo invisível dos tokens desperdiçados. Mas vale reforçar com um cálculo rápido.

Digamos que sua aplicação valida e-mails de usuários via LLM. São 10.000 validações por dia. Cada chamada consome ~500 tokens de entrada + saída. Com Claude Sonnet a $3/milhão de tokens de entrada e $15/milhão de saída:

  • Custo mensal com LLM: ~$450
  • Custo mensal com regex: $0.00
  • Latência com LLM: 500ms a 2s por validação
  • Latência com regex: < 1ms por validação

São $5.400 por ano jogados fora. Em uma operação determinística. Que uma regex resolve melhor.

E o custo não é só financeiro. Cada chamada de LLM em produção adiciona uma dependência não-determinística ao seu sistema. Significa que seus testes ficam mais frágeis, seus SLAs de latência ficam mais difíceis de cumprir, e seu sistema fica mais complexo de debugar.

Artigos, ferramentas e soluções que já existem

Antes de abrir o ChatGPT para resolver um problema, pesquise 10 minutos. A quantidade de problemas “de IA” que já têm soluções determinísticas prontas, testadas e gratuitas é impressionante.

Problema”Solução IA”Alternativa determinística
Detecção de idiomaClassificação via LLMlangdetect, fasttext (99.4% de acurácia)
Análise de sentimento básicaPrompt para LLMVADER, TextBlob, modelos leves do HuggingFace
Reconhecimento de entidades (NER)Extração via LLMspaCy NER, Stanford NER
Formatação de código”AI code beautifier”Prettier, Black, gofmt, rustfmt
Validação de dadosVerificação via LLMJSON Schema, Zod, Pydantic
Similaridade de textoComparação via LLMTF-IDF + similaridade coseno, Levenshtein
Parsing de datasExtração via LLMdateutil, chrono-node
Extração de URLsPrompt para LLMExpressões regulares
Busca full-text”Busca semântica com IA”PostgreSQL FTS, Elasticsearch, Meilisearch

O paper Toolformer (Schick et al., 2023) demonstrou algo fascinante: o próprio modelo de linguagem aprende a delegar tarefas para ferramentas determinísticas quando estas são mais eficientes. O LLM aprende que calcular 593 * 847 é melhor feito por uma calculadora do que por ele mesmo. Se até o modelo reconhece isso, por que nós não reconhecemos?

Use IA para construir, não para executar

Essa é a distinção mais importante do post.

Usar IA para ajudar a encontrar e implementar a solução determinística é excelente. Perguntar ao Claude “qual é a melhor regex para validar telefones brasileiros?” é um uso brilhante de IA. Ele te ajuda a escrever código mais rápido, descobre bibliotecas que você não conhecia, sugere abordagens melhores.

Mas o artefato de produção, o código que roda em produção atendendo milhares de requisições, deve ser a regex, a função, a biblioteca. Não a chamada de API.

Use IA como ferramenta de desenvolvimento. Não como ferramenta de execução para problemas determinísticos.

A abordagem híbrida: o melhor dos dois mundos

Nem tudo é preto ou branco. Muitos problemas reais têm uma parte determinística e uma parte que exige julgamento. É aí que entra a abordagem híbrida, e é onde mora a engenharia de verdade.

Quando o híbrido faz sentido

O padrão mais comum é o que eu chamo de funil: a IA pega o caos (input não-estruturado, linguagem natural, ambiguidade) e estreita em categorias estruturadas. Depois, código determinístico pega essas categorias e executa com precisão e velocidade.

IA transforma o nebuloso em concreto. Código determinístico executa o concreto com zero margem de erro.

Arquiteturas híbridas reais

1. Suporte ao cliente

O cliente escreve: “tô tentando cancelar esse negócio faz duas semanas e ninguém resolve”. Isso é linguagem natural, cheia de contexto emocional e ambiguidade.

  • IA: classifica a intenção (cancelamento), detecta o sentimento (frustrado), identifica urgência (alta)
  • Determinístico: roteia para a fila de retenção, aplica as regras de SLA, dispara o workflow de cancelamento, registra no CRM

A IA faz o que só ela pode fazer (entender linguagem natural). O código faz o que faz melhor (executar regras de negócio sem erro).

2. Processamento de notas fiscais

Uma nota fiscal em PDF é um documento semi-estruturado. Campos em posições variáveis, formatos inconsistentes entre fornecedores.

  • IA: extrai campos do PDF (OCR + LLM): CNPJ, valor total, itens, datas
  • Determinístico: valida o dígito verificador do CNPJ, confere cálculos de imposto (ISS, ICMS), verifica formato das datas, insere no ERP

Se você fizesse tudo com IA, pagaria tokens para verificar um dígito verificador, uma operação aritmética. Com a abordagem híbrida, a IA só faz a extração (a parte genuinamente difícil), e o código determinístico faz a validação (a parte trivial mas crítica).

3. Moderação de conteúdo

  • Determinístico primeiro: blocklist de palavras proibidas, regex para padrões conhecidos de spam, verificação de links maliciosos contra base de dados
  • IA só para o que sobra: texto que passou nos filtros determinísticos mas é ambíguo: sarcasmo, contexto cultural, conteúdo borderline

Resultado: a IA é chamada apenas para 20-30% dos casos. Os outros 70-80% são resolvidos por regras determinísticas em milissegundos. A economia de tokens é brutal.

4. Code review

  • Determinístico: ESLint, Prettier, mypy, tsc para formatação, tipos e padrões de código
  • IA: revisão de lógica de negócio, qualidade de nomes, decisões arquiteturais, bugs sutis

Não faz sentido gastar tokens para que um LLM te diga que você esqueceu um ponto-e-vírgula. O ESLint faz isso em milissegundos. Mas faz total sentido usar IA para perguntar “essa abstração faz sentido aqui?”. Isso exige julgamento.

A vantagem de custo do híbrido

Vamos pegar o exemplo de processamento de notas fiscais. 10.000 notas por mês:

AbordagemCusto/notaCusto mensalLatência média
100% IA (extração + validação + inserção)$0.05$5008s
Híbrida (IA extrai, código valida/insere)$0.015$1503s
Economia70%$350/mês62%

A abordagem híbrida é mais barata, mais rápida e mais confiável. A parte determinística (validação, cálculos) nunca erra. A IA é usada apenas onde é insubstituível.

Framework de decisão: IA, não-IA ou híbrido

Agora vamos ao que interessa. Um framework prático que você pode aplicar amanhã, em qualquer reunião de planejamento, para decidir a abordagem certa.

As cinco perguntas

Para qualquer tarefa, faça estas cinco perguntas:

1. A mesma entrada exige sempre a mesma saída? Se sim, forte sinal para determinístico. Se a saída pode variar e todas as variações são aceitáveis, forte sinal para IA.

2. Existe uma solução open-source comprovada? Se sim, use. Não reinvente a roda com tokens. Use IA para te ajudar a implementar mais rápido, mas o artefato final é a biblioteca.

3. A tarefa requer compreensão de linguagem natural ou ambiguidade? Se sim, IA ou híbrido. Se não, quase certamente determinístico.

4. Vai rodar em escala em produção (>1.000 chamadas/dia)? Se sim, custo e latência importam muito. Favoreça determinístico para tudo que puder ser determinístico.

5. Uma resposta errada é perigosa ou apenas inconveniente? Se perigosa (financeiro, médico, jurídico, segurança), o caminho crítico deve ser determinístico. IA pode auxiliar, mas a decisão final precisa ser auditável e reproduzível.

A matriz de decisão

PerguntaSe SimSe Não
Mesma entrada = mesma saída?+2 para determinístico+2 para IA
Solução open-source existe?+2 para determinístico+1 para IA
Requer linguagem natural?+2 para IA+1 para determinístico
Roda em escala?+1 para determinísticoNeutro
Erro é perigoso?+1 para determinísticoNeutro

Interpretação:

  • Score determinístico >= 4: vá de determinístico
  • Score IA >= 4: vá de IA
  • Scores mistos: abordagem híbrida. Identifique quais partes são determinísticas e quais precisam de IA

O fluxograma na prática

Quando estou avaliando um problema no dia a dia, meu processo mental é mais simples:

  1. Uma regex, algoritmo ou biblioteca resolve? Se sim: pronto, sem IA. Próximo problema.
  2. Precisa entender linguagem humana ou lidar com ambiguidade? Se não: provavelmente determinístico. Procure a biblioteca certa.
  3. Tem as duas coisas? Híbrido: IA para a parte fuzzy, determinístico para o resto.
  4. É puramente criativo ou generativo? IA completa.

Esse fluxograma cabe num post-it. Cole na sua mesa. Compartilhe com seu time. Eu garanto que vai economizar dinheiro e evitar over-engineering.

Exemplos do dia a dia: cada abordagem em ação

Para consolidar tudo, aqui vai uma tabela de referência rápida com exemplos reais organizados por abordagem:

Não-IA (determinístico)

TarefaSolução
Validação de input (e-mail, CPF, telefone, URL)Regex, algoritmos de check digit
Conversão de formato (CSV -> JSON, datas)Bibliotecas nativas da linguagem
Cálculos matemáticos (impostos, juros, câmbio)Fórmulas implementadas em código
Formatação e linting de códigoPrettier, ESLint, Black, gofmt
Roteamento de URLs e status HTTPSwitch/case, lookup tables
Tarefas agendadas e cron jobscrontab, Celery, BullMQ
Busca por texto exato ou full-textPostgreSQL FTS, Elasticsearch

IA completa

TarefaPor quê IA
Resumir documentos longosRequer compreensão e síntese
Gerar copy de marketingRequer criatividade e tom
Traduzir com contexto culturalVai além de substituição palavra-por-palavra
Responder perguntas abertas sobre códigoRequer raciocínio sobre contexto
Brainstorming e ideaçãoRequer pensamento divergente

Híbrido

TarefaIA fazDeterminístico faz
Suporte ao clienteClassifica intenção e sentimentoRoteia, aplica regras, executa workflows
Processamento de documentosExtrai campos de PDFsValida dados, calcula, insere no sistema
Moderação de conteúdoJulga casos ambíguosFiltra por blocklist, regex, links maliciosos
Code reviewAnalisa lógica e arquiteturaLinting, tipos, formatação
Busca inteligenteReranking semânticoBusca full-text, filtros estruturados
Enriquecimento de dadosNormaliza inputs bagunçadosValida, deduplica, armazena

Conclusão: a melhor IA é a que você não precisa chamar

Lembra do validador de e-mail com IA do começo do post?

Aquele desenvolvedor não é incompetente. Ele provavelmente é bom no que faz. O problema é que ninguém ensinou a ele a pergunta certa: “esse problema exige não-determinismo?”

Se a resposta for sim, use IA. Ela é a melhor ferramenta que a humanidade já criou para lidar com ambiguidade, linguagem natural e julgamento contextual.

Se a resposta for não, use código determinístico. É mais rápido, mais barato, mais confiável e mais fácil de testar.

Se a resposta for “em parte”, combine os dois. Deixe cada um fazer o que faz melhor.

A ironia é que este post segue exatamente essa filosofia. A pesquisa, a estrutura e a redação tiveram assistência de IA, uma tarefa criativa e não-determinística. Mas os exemplos de código, as tabelas de custo e o framework de decisão são determinísticos: fatos, números e lógica que não mudam entre execuções.

Eu já escrevi sobre como os fundamentos são a base de tudo na era da IA. Saber quando usar e quando não usar IA é um fundamento. Talvez o mais importante de todos.

Porque no final das contas, a habilidade mais sênior que um engenheiro pode ter hoje não é dominar prompts ou fine-tuning. É olhar para um problema e reconhecer: “isso aqui não precisa de IA. Uma regex resolve.”

Guarde o canhão para os problemas que realmente precisam dele. Para os mosquitos, um mata-moscas funciona perfeitamente.

Fique por dentro

Receba artigos sobre arquitetura de software, IA e projetos open source direto no seu e-mail.