Guia

O que é um harness de agente de IA e o que ele faz

Invisible Work9 min de leitura

Em uma frase

Harness (ou scaffold) é o sistema que permite a um modelo agir como agente: processa as entradas, orquestra as chamadas de ferramenta e devolve os resultados. Quando se avalia “um agente”, avalia-se o modelo e o harness trabalhando juntos.

O que é um harness, sem jargão

Harness (também chamado de scaffold) é o sistema que permite a um modelo agir como agente: processa as entradas, orquestra as chamadas de ferramenta e devolve os resultados.

Um agente trabalha em vários turnos, chama ferramentas, altera o estado do ambiente e se adapta ao que encontra. Quem organiza isso não é o modelo sozinho. Por isso a Anthropic escreve que, ao avaliar “um agente”, o que se avalia é o harness e o modelo trabalhando juntos. O Claude Code é um exemplo de harness flexível, e a Anthropic usou as peças básicas dele, pelo Agent SDK, para montar o harness de agentes de longa duração descrito adiante.

O agente é o modelo mais o harnessNo centro, o modelo. Em volta, dentro de uma moldura tracejada chamada harness, seis peças ligadas ao modelo: instruções, ferramentas, orquestração das chamadas, gestão de contexto com compactação, verificação com testes e estado entre sessões com notas e histórico do git. O modelo mais o harness formam o agente.harnessmodelo + harness = agentemodelolê e escreve textoinstruçõesferramentasorquestraçãodas chamadasgestão de contexto(compactação)verificação(testes)estado entre sessões(notas, git)
Peças que a Anthropic descreve nos harnesses que usa. As seis juntas, com o modelo, são o agente: avaliar um agente é avaliar os dois trabalhando juntos.

Dois harness

A palavra tem outro uso comum. O harness de avaliação é a infraestrutura que roda os testes de um agente, e o harness do agente é o que este guia explica. Para o primeiro, veja O que são evals de IA.

O que acontece quando o harness é simples demais

O melhor retrato do que o harness faz vem de um experimento da Anthropic com agentes que trabalham por horas ou dias. O problema de fundo é que o agente trabalha em sessões e cada sessão começa sem memória da anterior, como engenheiros que entram em turnos sem saber o que aconteceu no turno anterior. A janela de contexto é limitada e a maioria dos projetos complexos não cabe em uma só.

Mesmo com um modelo de fronteira e com compactação de contexto, a Anthropic relata que o agente, recebendo só um pedido de alto nível como “construa um clone do claude.ai”, não chegava a um aplicativo de qualidade de produção. As falhas apareceram de três formas.

Sessões sem memória e o caderno compartilhadoTrês sessões lado a lado. A primeira prepara o terreno com um script de inicialização, a lista de funcionalidades e o primeiro commit. As seguintes começam sem memória: leem o caderno, testam, fazem uma funcionalidade, registram o progresso e fazem commit. Abaixo, um caderno compartilhado com notas de progresso, histórico do git e lista de funcionalidades liga todas as sessões, com setas de escrita e de leitura.sessão 1prepara o terreno:init.sh, lista defeatures, 1º commitsessão 2lê o caderno, testa,faz 1 feature,registra e dá commitsessão Ncomeça sem memória:lê o caderno denovo, e segueescrevelêcaderno compartilhadonotas de progresso · histórico do git · lista de features(cada uma marcada como passa ou não passa)
O problema descrito pela Anthropic: cada sessão do agente começa sem lembrar da anterior, como engenheiros que trabalham em turnos. A solução é o caderno: o progresso fica em arquivos e no histórico do git, e cada sessão começa lendo e termina escrevendo.
  1. Tentar fazer tudo de uma vez

    O agente tentava entregar o aplicativo inteiro e ficava sem contexto no meio, deixando a próxima sessão com uma funcionalidade pela metade e sem registro do que havia sido feito.

  2. Declarar vitória cedo

    Mais adiante, uma nova sessão olhava o que já existia, via progresso e dava o trabalho por terminado.

  3. Marcar como pronto sem testar de verdade

    O agente alterava o código e até rodava testes, mas não percebia que a funcionalidade não funcionava de ponta a ponta. Melhorou quando recebeu ferramentas de automação de navegador e a instrução de testar como um usuário.

O que a Anthropic fez no harness

A solução foi dividir o trabalho em duas partes. A primeira sessão usa um prompt especial, de um agente inicializador, que prepara o ambiente: um script para subir o servidor de desenvolvimento, um arquivo de progresso e um primeiro commit no git. As sessões seguintes fazem progresso em passos pequenos e deixam artefatos claros para a próxima. O sistema, as ferramentas e o harness são os mesmos; só o prompt inicial muda.

  1. Lista de funcionalidades

    O inicializador escreve, a partir do pedido do usuário, uma lista de requisitos de ponta a ponta (mais de 200 no exemplo do clone), todos marcados como “falhando” no início. Os agentes só podem mudar o campo de status. A Anthropic escolheu JSON porque o modelo altera arquivos JSON de forma inadequada com menos frequência do que arquivos Markdown.

  2. Uma funcionalidade por vez

    Cada sessão trabalha em uma só e termina deixando o ambiente limpo, no estado em que poderia ser integrado ao código principal.

  3. Commit e nota de progresso

    Ao fim, o agente faz um commit com mensagem descritiva e escreve um resumo no arquivo de progresso. O git permite desfazer mudanças ruins e voltar a um estado que funcionava.

  4. Começar lendo e testando

    Toda sessão começa vendo em que pasta está, lendo o histórico do git e o arquivo de progresso, escolhendo a funcionalidade de maior prioridade e rodando um teste básico para ver se o aplicativo ficou quebrado.

A Anthropic também registra o que ficou em aberto: não se sabe se um único agente de uso geral é o melhor em todos os contextos ou se agentes especializados, como um de testes ou um de limpeza de código, fariam melhor, e o experimento foi otimizado para desenvolvimento de aplicações web.

Nossa leitura: contratar um agente é contratar um harness

Esta parte é opinião da Invisible Work, não da fonte. Se o resultado de um agente depende do modelo e do harness juntos, quem compra ou contrata “um agente” está comprando os dois, e só o primeiro costuma aparecer na conversa. O harness é onde vivem decisões que o cliente sente depois: onde o agente guarda o que já fez, como ele checa que terminou, o que você consegue ver do que ele fez e o que acontece quando o modelo é trocado.

Isso se liga a dois outros guias. Para saber se um harness funciona, é preciso medir, e é para isso que servem os evals. E o risco que Gartner e Forrester apontam nos engenheiros que trabalham dentro do cliente, o de a equipe virar operadora de uma caixa-preta, vale para o harness: está descrito em O que é um Forward Deployed Engineer.

Perguntas para quem vai contratar ou construir um agente

São perguntas nossas, e não um padrão de mercado.

Antes de colocar um agente para trabalhar

  1. Onde o agente guarda o que já fez quando uma sessão termina, e quem consegue ler?
  2. Como ele verifica que terminou, e quem confere de verdade?
  3. Conseguimos ver tudo o que ele fez, passo a passo?
  4. O que muda se trocarmos de modelo, e como descobrimos?

Continue lendo