← Voltar aos artigos
Série Harness e agentes de IA · Parte 4 de 4

Como medir se o seu harness funciona

Sem número, "melhorou" é opinião. Como medir a task, o texto e o próprio harness, como montar uma versão mínima em uma tarde — e por que nenhuma métrica substitui julgamento.

Métricas Avaliação Qualidade Engenharia com IA

Você montou regras, agentes e gates. Três meses depois, alguém pergunta: isso está ajudando? Se a resposta é "acho que sim", você tem um problema, porque um harness sem medição não consegue ser melhorado com segurança nem simplificado com coragem. E, como mostrei no artigo sobre harness, o custo de manter é justamente o que faz um harness envelhecer mal.

Este artigo mostra como medir em três camadas, como montar uma versão mínima sem infraestrutura, e onde as métricas enganam.

Ilustração de um robô analista diante de três painéis holográficos: um arquivo de código com semáforo, um documento sob lupa com medidores e gráficos de antes e depois
Medir a task, o texto e o próprio harness: três instrumentos para saber se está ajudando.
📖
Por que medir o harness, e não só o código

Medir o código diz se esta entrega ficou boa. Medir o harness diz se o processo está ajudando. São perguntas diferentes: um harness ruim pode produzir uma entrega boa por sorte, e um harness bom pode produzir uma ruim num caso difícil. Só a série de medições, ao longo do tempo, separa sorte de processo.

As três camadas

Cada camada mede uma coisa diferente, em um momento diferente do processo:

Camada O que mede Quando Pergunta que responde
1. A task A qualidade de uma entrega Ao fechar cada task "Esta entrega está pronta?"
2. O texto A clareza de spec e design Antes de existir código "Dá para implementar sem adivinhar?"
3. O harness O efeito de uma mudança no processo Ao mudar o harness "Essa mudança ajudou ou só pareceu ajudar?"

Camada 1: a task fecha com número

Cada task de implementação gera um Quality Score em cinco eixos, cada um com semáforo. Eixo vermelho bloqueia: a task não é marcada como concluída, mesmo que o código "pareça" pronto.

Eixo O que checa
Backend Arquitetura, padrões e testes do lado do servidor
Frontend Componentes, estados e acessibilidade da interface
Coerência As duas pontas conversam (mesmos contratos e tipos), o que o harness chama de bridge
Fidelidade ao spec Cada regra do spec tem implementação e teste
Build e testes Compila sem warning, testes passam, com evidência

Eixo que não se aplica (um módulo sem frontend, por exemplo) fica fora da tabela e da média, para não distorcer o resultado.

Semáforo: verde a partir de 90, amarelo a partir de 75, vermelho abaixo disso. Verde e amarelo prosseguem; vermelho volta para implementação e, passando do teto de tentativas, escala para o humano.

O que torna isso útil é que o número não depende de quem implementou concordar que está bom. Um detalhe de engenharia que vale copiar: os limites do semáforo vivem num arquivo de configuração, não espalhados em prompts. Quando o texto de uma regra e a configuração divergem, a configuração vence. Assim você ajusta um número num lugar só.

Camada 2: a clareza do texto entra na conta

Essa foi a que mais me surpreendeu. Dá para pontuar a clareza de uma spec ou de um design antes de existir uma linha de código, com um Assertiveness Score de três partes:

Componente Peso O que mede
Ausência de ambiguidade 0,40 Penaliza termos vagos
Completude 0,35 As seções esperadas para aquele tipo de documento estão lá
Aderência de formato 0,25 Segue o formato combinado

O componente de maior peso é o que mais ensina. Veja termos que quase sempre escondem uma decisão não tomada:

Termo vago Por que é um problema Como reescrever
"quando possível" Possível para quem, e quando? Listar as condições exatas
"se necessário" Quem decide que é necessário? Definir o gatilho
"tratar adequadamente" Adequado segundo qual critério? Descrever o comportamento esperado
"rápido", "simples" Não dá para testar Dar um limite mensurável

Um exemplo do antes e depois:

ANTES:  O sistema deve validar o CNPJ quando possível e tratar erros adequadamente.

DEPOIS: O sistema deve validar o CNPJ no cadastro de fornecedores.
        - Aceitar com e sem máscara (12.345.678/0001-95 e 12345678000195).
        - Rejeitar CNPJ com dígitos verificadores inválidos, com a mensagem
          "CNPJ inválido".
        - Se o CNPJ já existir, devolver o erro "CNPJ já cadastrado" sem
          gravar nada.

A versão "antes" parece razoável e passaria numa leitura rápida. Tem três decisões escondidas, e cada uma seria adivinhada pelo próximo agente, ou pelo próximo desenvolvedor humano. Pontuar o texto pega esse problema na fase mais barata.

Camada 3: o próprio harness é avaliado

A camada que fecha o ciclo. Como saber se uma mudança no harness (uma skill nova, um hook removido, uma fase reordenada) ajudou? Um conjunto fixo de cenários representativos roda antes e depois da mudança, e cada cenário recebe um score único de 0 a 1:

Eixo Peso O que checa
Fidelidade 0,30 Cobriu o que foi pedido: nem menos, nem escopo extra
Funciona de ponta a ponta 0,30 Existe evidência real de que funciona, não só "compila"
Padrões 0,20 Aderência a arquitetura, testes e convenções
Custo 0,20 Agentes e tokens proporcionais ao tamanho do pedido

Repare que custo é um eixo. Um harness que entrega perfeito gastando dez vezes mais do que o pedido justifica está reprovado por outro motivo, e isso é fácil de esquecer quando só se olha a qualidade.

Outro ponto de engenharia: parte de cada eixo é checagem determinística de script (o build passou, o arquivo de evidência existe, quantos agentes foram disparados), e só a parte subjetiva pede julgamento. Separar as duas coisas reduz o custo de avaliar e fecha a porta para um avaliador "relevar" uma violação objetiva porque o resto pareceu bom.

Evidência: a palavra de quem fez não conta

Em modo estrito (implementação e correção de bug), a validação exige evidência real de build e teste: um arquivo gerado pela execução, não a frase "eu rodei e passou". Em revisão, refatoração, documentação e análise, a evidência é opcional. Escolher o rigor conforme o tipo de mudança evita exigir prova onde ela não faz sentido.

Uma versão mínima, em uma tarde

Você não precisa de 21 cenários nem de infraestrutura para começar. O caminho mais curto:

  1. Escolha 5 tarefas reais que o seu time já fez, de tamanhos diferentes. Guarde o pedido original de cada uma.
  2. Defina três perguntas por tarefa: o build passou? Cobriu o que foi pedido sem escopo extra? Quantos agentes e quanto tempo gastou?
  3. Rode as 5 tarefas com o harness atual e anote as respostas. Essa é a sua linha de base.
  4. Mude uma coisa (remova uma regra, um gate, um papel) e rode as mesmas 5 tarefas de novo.
  5. Compare. Se a qualidade se manteve e o custo caiu, a peça era peso morto. Se a qualidade caiu, ela ajudava.

Faça a mudança num branch, nunca direto no que o time usa. E mude uma coisa por vez: se mudar três, não saberá qual causou o efeito.

🎯
A regra para remover qualquer componente

Nunca remova por "acho que não ajuda mais". Rode os mesmos cenários com e sem o componente, compare a média e só então decida: manter, remover ou simplificar.

O que os números não dizem

Métrica ajuda a sinalizar padrão, mas não decide sozinha se algo está pronto. Os limites que preciso deixar claros:

Para estudar mais

💡
Em breve, mais artigos

Vamos publicar novos artigos, cada um aprofundando um ponto estratégico deste tema. Se houver algum que você gostaria de ver primeiro, me diga.

Série: Harness e agentes de IA · 4 partes
  1. 1
    O que eu construíA história por trás: o problema, o fluxo que montei e as armadilhas de usar harness como bandeira.
  2. 2
    Harness de IAA base conceitual: anatomia, harness da ferramenta contra o seu, níveis de maturidade e custo de manter.
  3. 3
    Multiagente na práticaQuando usar vários agentes, padrões de organização, um exemplo completo e os modos de falha.
  4. 4
    Como medir o harnessAs três camadas de medição e uma versão mínima para começar em uma tarde.Você está aqui
💬
Quer trocar ideia sobre isso? Se você tem uma experiência parecida — ou uma forma diferente de estruturar isso — me manda uma mensagem no LinkedIn ou fale comigo por aqui.