O eval harness que uso para lançar agentes de IA sem medo
Lançar agentes sem medo vem de uma única coisa: um harness de avaliação. Um conjunto fixo de casos de teste avaliados, pontuados automaticamente (asserções mais um juiz LLM), executado antes de cada mudança de prompt ou modelo. Se a pontuação se mantém, você lança. O conjunto de testes é construído a partir de falhas reais de produção.
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
✓ Verifique sua caixa de entrada — clique no link de confirmação para concluir o cadastro.
✓ Inscrição concluída!
✓ Você já está na lista.
Atualizado em junho de 2026.
TL;DR: A razão pela qual consigo mudar um prompt ou trocar um modelo em um agente ao vivo sem prender a respiração é uma única coisa: um harness de avaliação. Um conjunto fixo de casos de teste avaliados, pontuados automaticamente — asserções rígidas onde consigo escrevê-las, um juiz LLM onde não consigo — executado antes de cada mudança. A pontuação se mantém, eu lanço. A pontuação cai, eu não lanço. O conjunto de testes não é sintético; é construído a partir de falhas reais de produção, então cada bug vira um teste de regressão permanente.
Leitura do operador: Ao longo de mais de 100 agentes, a diferença entre os que toco com confiança e os que me dão medo é se eles têm avaliações. Sem harness de avaliação, cada ajuste de prompt é uma aposta. Um harness de avaliação transforma “acho que isto está melhor” em “isto está mensuravelmente 4 pontos melhor e não quebrou nada”. É todo o destravamento.
Você não lançaria código sem testes. As pessoas lançam agentes sem avaliações o tempo todo e depois se perguntam por que um “minúsculo ajuste de prompt” quebrou a produção. Um harness de avaliação é a suíte de testes para software não determinístico. Aqui está o que eu realmente executo.
Índice
Abrir Índice
- Comece com um conjunto de testes construído a partir de falhas reais
- Pontue primeiro com asserções, depois com um juiz LLM
- Execute o harness antes de cada mudança
- Defina um portão de regressão e deixe-o bloquear
- Considere o não determinismo na pontuação
- Feche o ciclo com monitoramento de produção
- Perguntas frequentes
Comece com um conjunto de testes construído a partir de falhas reais
O harness só é tão bom quanto seus casos de teste, e os melhores casos de teste vêm da produção, não da sua imaginação. Toda vez que um agente falha no mundo real, capturo a entrada exata (registro cada execução com um trace ID — veja como depurar um agente em produção) e a transformo em um caso de avaliação:
interface EvalCase {
id: string;
input: AgentInput; // a entrada exata de produção
expected?: string; // verdade de referência, quando há uma
assertions: Assertion[]; // checagens rígidas que devem passar
rubric?: string; // para o juiz LLM, quando a saída é aberta
}Duas práticas importam aqui. Puxe da produção, para que suas avaliações testem o que realmente quebra, não o que você imaginou que poderia. E cubra o leque — o caminho feliz, os casos extremos, as entradas adversariais e as entradas vazias/malformadas que causam falhas silenciosas. Um conjunto de testes de 30 a 50 casos bem escolhidos pega muito mais do que 500 preguiçosos. Prefiro ter 40 casos que representem cada um um modo de falha real do que mil que testem todos o mesmo caminho fácil.
Pontue primeiro com asserções, depois com um juiz LLM
Nem toda saída precisa de um modelo para avaliá-la. Recorro ao avaliador mais barato que funcione.
Asserções rígidas para tudo o que é estruturado. A saída faz parse como JSON válido? Contém o campo obrigatório? A data extraída está dentro do intervalo? Chamou a ferramenta certa com os argumentos certos? Essas são determinísticas, gratuitas e inequívocas — escreva quantas conseguir.
const assertions: Assertion[] = [
(out) => isValidJSON(out),
(out) => parse(out).category in ALLOWED_CATEGORIES,
(out) => parse(out).confidence >= 0 && parse(out).confidence <= 1,
];Um juiz LLM para o resto aberto — tom, utilidade, “isto realmente respondeu à pergunta”. Aqui você dá a um modelo a entrada, a saída e uma rubrica, e pede que ele pontue. Duas regras mantêm o juiz honesto: torne a rubrica específica (uma escala de 1 a 5 com âncoras descritas vence “avalie a qualidade”), e use um modelo forte como juiz — julgar é uma tarefa de raciocínio, então este é um lugar onde pago com prazer pelo Sonnet mesmo quando o próprio agente roda no Haiku conforme a matemática de custos. Uma rubrica vaga ou um juiz fraco te dá ruído que parece sinal.
Execute o harness antes de cada mudança
O harness existe para responder a uma pergunta: esta mudança tornou o agente melhor ou pior? Então o executo antes de cada edição de prompt, troca de modelo ou mudança de ferramenta.
# baseline na main
npm run eval -- --suite=booking-agent > baseline.json
# faça a mudança, depois reexecute
npm run eval -- --suite=booking-agent > candidate.json
# compare
npm run eval:diff baseline.json candidate.jsonO diff mostra a pontuação agregada, o passa/falha por caso e — crucialmente — quais casos específicos regrediram. Um agregado que sobe enquanto três casos quebram silenciosamente não é uma melhoria; é uma troca que quero ver e aprovar, não uma que passa despercebida. Vigiar o diff por caso é como você evita “consertei uma coisa, quebrei outras duas”, o modo de falha que faz as pessoas terem medo dos próprios prompts.
Defina um portão de regressão e deixe-o bloquear
Assim que você confia no harness, ligue-o ao caminho para a produção como um portão. Minha regra é direta: uma mudança que derruba a pontuação abaixo do limiar da baseline não é lançada. Não “vou ver isso depois” — está bloqueada, igual a um teste de CI que falha.
const PASS_THRESHOLD = 0.90; // 90% dos casos devem passar
if (candidate.passRate < PASS_THRESHOLD || candidate.passRate < baseline.passRate) {
throw new Error(`Eval regression: ${candidate.passRate} < ${baseline.passRate}`);
}É isso que converte as avaliações de um luxo opcional naquilo que permite você se mover rápido. O portão é o que torna “lançar sem medo” literalmente verdadeiro: o pior cenário para uma mudança ruim é uma execução de avaliação em vermelho, não um incidente de produção. E como o conjunto de testes cresce toda vez que algo quebra, o portão fica mais rígido e mais protetor ao longo do tempo, por conta própria.
Considere o não determinismo na pontuação
Uma sutileza que faz as pessoas tropeçarem: a mesma entrada pode pontuar de forma diferente entre execuções porque o modelo amostra de modo distinto. Se você executa cada caso uma única vez, verá regressões fantasma — um caso que “quebrou” e que na verdade é só ruído de amostragem.
Duas mitigações. Execute as avaliações a temperature: 0 para reduzir a variância (não a eliminará por completo). E para os casos que você viu oscilar, execute-os N vezes e pegue a taxa de aprovação, não um único passa/falha. Um caso que passa 9 de 10 está em melhor forma do que um que passa 5 de 10, mesmo que ambos possam mostrar uma única execução verde. É o mesmo princípio de volume-sobre-anedota que uso ao depurar falhas intermitentes — uma execução é uma opinião, cinquenta execuções são dados.
Feche o ciclo com monitoramento de produção
O harness de avaliação testa contra casos conhecidos. A produção lança casos inéditos. Então o ciclo é: monitore o comportamento ao vivo, capture um novo modo de falha, transforme-o em um caso de avaliação, conserte-o, e agora ele está permanentemente protegido. O lado do monitoramento — rastrear a taxa de sucesso, a validade da saída e o custo por execução no tráfego ao vivo — é o que abordo em como meço se um agente de IA está realmente funcionando. Avaliações e monitoramento são duas metades do mesmo sistema: o monitoramento encontra os bugs, as avaliações garantem que eles permaneçam mortos.
Esse ciclo de feedback é o verdadeiro produto. Qualquer conjunto de avaliação isolado fica obsoleto; um processo que converte cada falha de produção em um teste permanente fica mais forte a cada semana. É assim que um agente passa de “assustador de tocar” para algo que vou refatorar numa tarde de sexta-feira sem pestanejar.
Perguntas frequentes
O que entra em um conjunto de avaliação para um agente de IA?
Entradas reais de produção transformadas em casos avaliados — caminho feliz, casos extremos, entradas adversariais e malformadas — cada um com asserções rígidas e, para saídas abertas, uma rubrica de juiz LLM. De 30 a 50 casos extraídos de falhas reais vencem centenas de sintéticos que testam todos o caminho fácil.
Devo usar um LLM para avaliar as saídas do agente?
Use asserções rígidas sempre que a saída for estruturada (JSON válido, campo correto, chamada de ferramenta certa) — são gratuitas e determinísticas. Reserve um juiz LLM para qualidades abertas como tom e utilidade, com uma rubrica específica e um modelo juiz forte para obter sinal, não ruído.
Como impeço uma mudança de prompt de quebrar a produção silenciosamente?
Execute o harness de avaliação antes de cada mudança e faça o diff contra uma baseline, observando as regressões por caso, não apenas a pontuação agregada. Depois condicione os deploys ao resultado para que qualquer mudança que caia abaixo do limiar da baseline seja bloqueada como um teste que falha.
Como lido com o não determinismo nas avaliações?
Execute a temperatura 0 para reduzir a variância e, para os casos que oscilam, execute-os várias vezes e pontue a taxa de aprovação em vez de uma única execução. Um caso que passa 9 de 10 vezes é mais saudável do que um que passa 5 de 10, mesmo que uma única execução mostre ambos verdes.
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
✓ Verifique sua caixa de entrada — clique no link de confirmação para concluir o cadastro.
✓ Inscrição concluída!
✓ Você já está na lista.
Posts relacionados
Agentes Claude vs. Zapier: o que eu uso e quando
Zapier move dados entre apps segundo uma regra. Um agente Claude julga entradas bagunçadas. Veja como eu escolho entre os dois na prática.
AI AgentsQuando NÃO construir um agente de IA
Os cinco sinais de que um agente de IA é a ferramenta errada, e a escada de alternativas mais simples que tento antes de escrever código de agente.
AI AgentsContext engineering: o que entra na janela de contexto
A engenharia de prompt pergunta como formular um pedido. A engenharia de contexto pergunta o que o agente precisa saber.
Receba o manual de IA na sua caixa de entrada
Toda quarta-feira. 28.400+ operadores. Zero enrolação.
Verifique sua caixa de entrada.
Enviamos um e-mail de confirmação — clique no link para concluir sua inscrição. Verifique o spam se não o vir em um minuto.
Você está inscrito.
Bem-vindo — a próxima edição chega em breve à sua caixa de entrada.
Você já está na lista — fique de olho toda quarta-feira.