A maioria das pessoas está tentando consertar agentes de IA na camada errada.
Quando um agente falha, elas reescrevem o prompt. Quando ele falha de novo, adicionam mais instruções, trocam de modelo, aumentam a janela de contexto ou conectam outra ferramenta.
E então os mesmos problemas voltam.
O agente esquece uma decisão importante. Usa a ferramenta errada. Perde o fio da meada do que aconteceu três passos atrás. Diz que a tarefa foi concluída sem conferir o resultado. Tenta repetir a mesma ação que falhou até acabar o orçamento.
O problema nem sempre é o modelo.
O problema é o ambiente ao redor dele.
Esse ambiente é o harness.
Harness Engineering (Engenharia de Harness) é a prática de construir o sistema ao redor de um modelo, definindo o que ele pode ver, o que pode fazer, do que se lembra, o que conta como sucesso e o que acontece quando algo dá errado.
Um prompt melhor pode aprimorar uma única resposta.
Um harness melhor aprimora todas as execuções.
Siga meu Substack para mais análises práticas sobre agentes de IA, automação e sistemas em produção:
1. O Modelo Não É o Agente
Um modelo consegue raciocinar, gerar, comparar e escolher.
Isso não faz dele um agente confiável.
Um agente de verdade também precisa encontrar o contexto certo, usar ferramentas, preservar estado, respeitar permissões, verificar o próprio trabalho e se recuperar quando o ambiente se comporta de forma diferente do esperado.
O modelo é apenas o motor de raciocínio.
O harness é tudo aquilo que transforma esse raciocínio em execução real.
1SOLICITAÇÃO DO USUÁRIO2 |3 v4+-----------------------------+5| HARNESS |6| |7| contrato contexto |8| ferramentas estado |9| política verificação |10| rastros recuperação |11+-----------------------------+12 |13 v14 MODELO15 |16 v17AMBIENTE REAL
Coloque o mesmo modelo dentro de um chat e ele responderá perguntas.

Coloque-o dentro de um repositório com acesso a terminal, testes, ferramentas de navegador, memória do projeto, permissões controladas e um ciclo de revisão, e ele conseguirá entregar trabalho real.
O modelo não mudou.
O harness mudou.
2. Transforme Toda Solicitação em um Contrato
A linguagem natural é flexível.
A execução autônoma não deveria ser.
Uma solicitação como:
Melhore o fluxo de onboarding.
funciona bem quando há um humano sentado ao lado do modelo.
Mas é péssima como instrução de produção.
Antes de o agente agir, transforme a solicitação em um contrato de tarefa delimitado.

1objetivo: reduzir o abandono no onboarding23entradas:4 - briefing do produto5 - dados de analytics6 - repositório78restrições:9 - preservar a autenticação10 - não alterar o schema do banco de dados11 - manter o comportamento atual no mobile1213entregável:14 - pull request revisável1516concluído_quando:17 - testes passarem18 - evento de analytics disparar corretamente19 - fluxo desktop passar na revisão20 - fluxo mobile passar na revisão2122aprovação_necessária:23 - deploy em produção
A parte mais importante é o concluído_quando.
Sem isso, o agente pode resolver uma versão um pouco mais fácil do problema e ainda assim afirmar, cheio de confiança, que a tarefa foi concluída.
Com isso, a conclusão passa a ser mensurável.
O agente não deveria perguntar:
O que eu faço agora?
Ele deveria perguntar:
Qual ação aproxima o ambiente atual do resultado contratado?
Esse é um ciclo muito mais forte.
3. Dê ao Agente um Mapa, Não uma Janela de Contexto Gigante
Uma reação comum aos erros de um agente é dar mais contexto ao modelo.
Mais documentação.
Mais histórico de conversa.
Mais arquivos.
Mais saídas de ferramentas.
No fim, o agente recebe tudo e entende menos.
Contexto não é armazenamento.
É um orçamento de atenção.

Em vez de despejar o projeto inteiro em cada execução, dê ao agente um mapa pequeno mostrando onde estão as informações úteis.
1MAPA DO PROJETO23regras do produto -> docs/product/4arquitetura -> docs/architecture.md5frontend -> apps/web/6backend -> services/api/7testes -> tests/8comandos -> docs/commands.md9segurança -> docs/security.md
Depois, expanda apenas quando necessário.
1TAREFA2 |3 v4MAPA DO PROJETO5 |6 v7SISTEMA RELEVANTE8 |9 v10ARQUIVOS EXATOS11 |12 v13INSTRUÇÕES LOCAIS
O material original descreve isso como divulgação progressiva: o harness deve carregar mais informações porque a tarefa precisa delas, e não simplesmente porque a informação existe.
O objetivo não é ter o máximo de contexto.
O objetivo é ter o máximo de sinal útil.
4. Coloque um Gateway Entre o Modelo e Suas Ferramentas
Um modelo com vinte ferramentas não é automaticamente vinte vezes mais capaz.
Ele pode apenas ter vinte maneiras a mais de falhar.
Toda ferramenta deveria ter um contrato.
1FERRAMENTA: edit_file23ENTRADAS4caminho5patch67PRÉ-CONDIÇÕES8o caminho existe9o caminho está dentro do workspace1011SUCESSO12patch aplicado13diff retornado1415FALHA16erro estruturado17nenhuma sobrescrita parcial1819RISCO20reversível
Assim, o caminho de execução passa a ser:
1MODELO PROPÕE2 |3 v4GATEWAY VALIDA5 |6 v7POLÍTICA AUTORIZA8 |9 v10FERRAMENTA EXECUTA11 |12 v13HARNESS REGISTRA O RESULTADO
O modelo decide qual ação quer tomar.
O harness decide se essa ação é válida, permitida e segura.

Essa distinção se torna crítica quando as ferramentas podem enviar mensagens, modificar a produção, gastar dinheiro ou apagar dados.
Um bom gateway de ferramentas também pode adicionar timeouts, validar argumentos, restringir caminhos de arquivo, normalizar erros e tornar as tentativas seguras.
Boas ferramentas reduzem o número de coisas que o modelo precisa adivinhar.
5. Tire a Memória de Dentro da Conversa
A conversa não deveria ser o registro oficial do sistema.
Agentes de longa duração acabam atingindo limites de contexto, travando, reiniciando ou passando o trabalho para outra sessão.
Se cada decisão importante existir apenas dentro do histórico, o fluxo de trabalho fica frágil.
Armazene o estado duradouro separadamente.

1{2 "task_id": "feature_042",3 "status": "verificando",4 "current_step": "mobile_check",56 "completed": [7 "implementação",8 "testes_unitários",9 "desktop_check"10 ],1112 "decisions": [13 "reutilizar endpoint de exportação existente",14 "manter o formato de data atual"15 ],1617 "artifacts": [18 "export.csv",19 "desktop-after.png"20 ],2122 "open_risks": [23 "a barra de ferramentas mobile pode transbordar"24 ],2526 "next_action": "renderizar viewport mobile"27}
Um sistema útil separa a memória em quatro categorias:
1FATOS2conhecimento estável34DECISÕES5o que foi escolhido e por quê67ESTADO8em que ponto a execução atual está910LIÇÕES11falhas que devem afetar execuções futuras
A próxima sessão do agente deve herdar o estado do trabalho, e não uma história comprimida sobre a conversa anterior.
6. Faça da Evidência o Portão para a Conclusão
Um agente dizendo "pronto" não é prova de que o trabalho acabou.

É apenas mais uma saída do modelo.
O harness precisa de evidências observáveis.
1AFIRMAÇÃO EVIDÊNCIA23"bug corrigido" teste que falhava agora passa45"a página funciona" fluxo no navegador concluído67"os dados estão certos" valores batem com a fonte89"a migração é segura" dry run + rollback passaram1011"tarefa concluída" todos os critérios de aceite passaram
Use verificações determinísticas primeiro.
1sintaxe2 |3 v4tipos5 |6 v7testes focados8 |9 v10testes de integração11 |12 v13revisão visual / semântica14 |15 v16aprovação humana
Não peça para outro modelo responder algo que um compilador, teste, schema ou query de banco de dados possa provar.
Use modelos para julgamento.
Use sistemas determinísticos para fatos.
O modelo cria o artefato.
O ambiente gera evidências sobre o artefato.
O harness decide se a evidência é suficiente.
7. Separe Quem Constrói de Quem Verifica
Existe outro problema na autorrevisão.
O agente que cometeu o erro costuma levar as mesmas premissas para a revisão.

Uma arquitetura mais robusta separa o executor do verificador.
1CONSTRUTOR2 |3 v4cria o candidato5 |6 v7VERIFICADOR8 |9 +-- confere o contrato10 +-- busca casos ausentes11 +-- testa afirmações sem base12 +-- tenta quebrar o resultado13 |14 +------ PASSOU ------> ACEITAR15 |16 +------ FALHOU ------> DEVOLVER EVIDÊNCIA
O verificador não deveria perguntar:
Isso parece bom?
Ele deveria perguntar:
O que tornaria isso inaceitável?
Isso transforma a revisão: de uma simples confirmação para uma tentativa de refutação.
O material original recomenda explicitamente dar à verificação seus próprios critérios de rejeição e independência suficiente para desafiar as premissas que geraram o primeiro resultado.
8. Tire as Permissões de Dentro do Modelo
Algumas regras nunca deveriam depender de o modelo lembrar delas.
1nunca publique sem aprovação2nunca exponha secrets3nunca ultrapasse o limite de gastos4nunca escreva fora do workspace5nunca diga que os testes passaram se eles não rodaram
Isso não são sugestões de prompt.

São políticas.
Uma escada simples de permissões:
1BAIXO RISCO23ler4buscar5inspecionar67-> automático89REVERSÍVEL1011editar workspace12rodar testes13criar rascunho1415-> automático + rastro1617EFEITO EXTERNO1819enviar20fazer deploy21comprar2223-> aprovação necessária2425IRREVERSÍVEL / SENSÍVEL2627apagar dados28rotacionar credenciais29publicar globalmente3031-> bloqueio rígido ou proibido
Quanto maior a consequência, mais forte o controle.
O modelo pode recomendar a ação.
O harness a autoriza.
A ferramenta a executa.
Autonomia não é ausência de controle.
É liberdade dentro de um limite imposto.
9. Pare de Tentar Novamente às Cegas
Uma das piores políticas de recuperação é:
Algo falhou. Tente de novo.
Se nada muda, o sistema está apenas pagando para reproduzir a mesma falha.
As falhas devem ser classificadas primeiro.

1TIMEOUT DA FERRAMENTA2-> tentar novamente com backoff34ARGUMENTOS INVÁLIDOS5-> corrigir a chamada da ferramenta67CONTEXTO AUSENTE8-> buscar a fonte que falta910TESTE FALHOU11-> inspecionar o comportamento com falha1213PERMISSÃO NEGADA14-> solicitar aprovação1516REQUISITOS CONFLITANTES17-> escalar1819FALHA REPETIDA SEM MUDANÇA20-> parar
Um ciclo de agente útil se parece com isto:
1OBSERVAR2 |3 v4DECIDIR5 |6 v7AGIR8 |9 v10MEDIR11 |12 +---- ACEITAR13 |14 +---- CORRIGIR15 |16 +---- ESCALAR17 |18 +---- PARAR
Todo ciclo deve ter limites de tentativas, tempo, gastos e escopo destrutivo.
Um agente confiável precisa saber como continuar.
Mas também precisa saber quando uma nova tentativa já não vale a pena.
10. Transforme Instruções Repetidas em Infraestrutura
Imagine que o prompt contenha:
Sempre rode o formatador.
Essa regra fica muito mais forte se o formatador rodar automaticamente.
Imagine que as instruções digam:
Código de UI não pode acessar o banco de dados diretamente.
Isso fica muito mais forte como um teste de arquitetura que falha quando a regra é quebrada.
A progressão se parece com isto:
1EXPLICAÇÃO2 |3 v4CHECKLIST5 |6 v7TEMPLATE8 |9 v10VERIFICAÇÃO AUTOMÁTICA11 |12 v13POLÍTICA IMPOSTA
O prompt deve explicar o julgamento.
O harness deve impor as invariantes.
Cada erro recorrente deveria descer um degrau nessa escada.
Com o tempo, o modelo não precisa mais lembrar da lição.
O ambiente lembra por ele.
11. Registre a Execução
Um artefato final perfeito pode esconder um caminho de execução terrível.
Talvez o agente tenha acessado a fonte errada.
Talvez tenha ignorado um comando que falhou.
Talvez tenha repetido uma ação externa duas vezes.
Talvez tenha gasto dez vezes o orçamento previsto.
Talvez tenha chegado à resposta certa pelo motivo errado.
Registre informações suficientes para reconstruir o que aconteceu.
109:14 contrato de tarefa criado209:15 architecture.md carregado309:17 checkout.ts editado409:18 teste focado falhou509:21 implementação corrigida609:22 teste focado passou709:24 teste de integração passou809:25 deploy bloqueado: aprovação necessária
Rastros úteis incluem fontes de contexto, chamadas de ferramentas, mudanças de estado, resultados de verificação, motivos de novas tentativas, decisões de aprovação, custo e latência.
A ideia não é coletar logs por diversão.
A ideia é localizar a falha.
Se o passo 18 quebrar, você deve conseguir corrigir o passo 18.
Você não deveria precisar reproduzir a execução inteira.
12. Dê um Recibo a Cada Execução
Não obrigue o humano a revisar um histórico de quarenta mensagens.
Compile o resultado em um recibo curto.
1OBJETIVO23Corrigir aplicação duplicada de cupom.45ALTERADO67validação do checkout8teste de regressão910VERIFICADO1112lint passou13testes unitários passaram14teste de integração passou1516NÃO VERIFICADO1718provedor de pagamento em produção1920RISCOS2122cliente mobile legado indisponível2324APROVAÇÃO NECESSÁRIA2526deploy para staging
Isso não é um resumo do que o modelo afirma ter acontecido.
É um resumo do que o harness consegue provar que aconteceu.
Essa distinção torna o recibo útil para revisões, passagens de bastão e sessões futuras do agente.
13. Faça Cada Falha Melhorar o Harness
A maioria das equipes corrige o resultado que falhou.
A abordagem melhor é corrigir o sistema que permitiu a falha.
1CONTEXTO AUSENTE2-> melhorar o mapa do projeto34FERRAMENTA ERRADA5-> melhorar o roteamento ou o contrato da ferramenta67SAÍDA RUIM8-> adicionar validador910LOOP REPETIDO11-> adicionar limite de tentativas1213AÇÃO INSEGURA14-> adicionar portão de permissão1516DECISÃO PERDIDA17-> persistir o estado1819FALHA DESCONHECIDA20-> melhorar o rastreamento
É aqui que o Harness Engineering começa a gerar juros compostos.
Um resultado corrigido ajuda uma execução.
Um harness corrigido melhora todas as execuções seguintes.
Os melhores sistemas de agentes ficam mais confiáveis porque os erros deixam infraestrutura para trás.
14. Comece com o Menor Harness Útil
Você não precisa de uma plataforma gigantesca de orquestração para começar.
Construa em camadas.
1NÍVEL 023prompt4modelo56NÍVEL 178contrato de tarefa9mapa do projeto10ferramentas1112NÍVEL 21314estado estruturado15verificação16loop delimitado1718NÍVEL 31920permissões21rastros22recuperação23portões humanos
Uma tarefa curta de pesquisa pode precisar apenas de um prompt e uma revisão.
Uma tarefa de programação de seis horas, com acesso a arquivos, rede e capacidade de deploy, exige muito mais.
Adicione complexidade quando a superfície de falha justificar.
Não porque arquitetura de agentes pareça legal.
O Checklist do Harness Engineering
Antes de dar autonomia real a um agente, pergunte-se:
1[ ] O sucesso está definido antes da execução?23[ ] O agente consegue achar o contexto certo4 sem carregar tudo?56[ ] Toda ferramenta tem um propósito claro,7 schema e estado de falha?89[ ] As decisões importantes são armazenadas10 fora da conversa?1112[ ] A conclusão exige evidências?1314[ ] Ações arriscadas são protegidas por políticas?1516[ ] Todo loop tem um limite de tentativas?1718[ ] A execução pode ser retomada após uma interrupção?1920[ ] Você consegue reconstruir cada ação importante?2122[ ] A falha melhora alguma regra, ferramenta,23 teste, mapa ou permissão?2425[ ] A alteração final pode ser revertida?
Se várias respostas forem "não", um modelo mais potente não vai tornar o agente confiável automaticamente.
Pode apenas tornar a falha mais rápida e mais cara.
A Verdadeira Mudança
A engenharia de prompt pergunta:
O que devo dizer ao modelo?
A engenharia de contexto pergunta:
O que o modelo deveria saber neste exato momento?
A engenharia de harness pergunta:
Qual sistema permite que o modelo aja, verifique seu trabalho, se recupere de falhas e opere com segurança?
1PROMPT2-> instrução34CONTEXTO5-> visão de trabalho67HARNESS8-> ambiente operacional910LOOP11-> correção local1213GRAFO14-> coordenação
Os modelos vão continuar mudando.
A vantagem duradoura vive ao redor deles.
Seus contratos melhoram.
Suas ferramentas melhoram.
Seus testes melhoram.
Seu estado fica mais limpo.
Suas permissões ficam mais seguras.
Sua lógica de recuperação fica mais inteligente.
Suas falhas viram infraestrutura.
É assim que modelos capazes se tornam agentes confiáveis.
Isso é Harness Engineering.
Se Você Chegou Até Aqui
Salve este guia nos favoritos.
Siga-me no X: x.com/0xjmori
Inscreva-se no meu Substack: substack.com/@lunarresearcher
Envie este artigo para alguém que ainda está tentando resolver toda falha de agente com um prompt mais longo.



![[Pedido de Desculpas] Eu Não Recomendo Mais Freelancing Para Ter Independência.](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1790615558140_ndvona_HTQ9s6laYAAX4J7.jpg)

