O que é Harness?
A camada em volta da LLM
O harness é uma camada de software que constrói o que vai enviar para o modelo e também transforma a resposta do LLM em ação. O LLM não tem memória: apesar de superinteligente, ele não guarda histórico e não executa ações - apenas sinaliza o que fazer, e o harness executa. Podemos dizer que o harness decide o que vai para o modelo e como vai.
Se você leu o artigo anterior, vai lembrar que o modelo recebe texto, processa e devolve respostas de acordo com os pesos calibrados a partir do treinamento. Também fizemos uma tabela de Produto × Modelo: o produto implementa o Harness; ChatGPT, Claude Code, Cursor, Codex implementam toda a engenharia em volta do LLM.
O caminho da sua mensagem no ChatGPT
Você envia sua mensagem, mas ela não vai direto para o modelo. Existe uma engenharia de software em volta que monta o prompt para envio. Na prática, há um código comum que:
- Monta as instruções
- Lista as ferramentas disponíveis (nome, descrição e formato de argumentos de cada uma)
- Junta o conteúdo e a memória da conversa inteira a cada interação, até a última mensagem
Exemplo: primeira interação
Usuário: "Vamos desenvolver um site"
Harness monta a estrutura (Bloco 01):
{
"system": "Você é o GPT criado pela OpenAI. A data de hoje é 16/09/2026, localização...",
"interação-01": "Vamos desenvolver um site",
"tools": ["criar_arquivo", "buscar_web", "criar_diretorio"]
}
O LLM responde: "Sobre o que é o site?"
Exemplo: segunda interação
Usuário: "É sobre um portfólio de projetos de um desenvolvedor"
Harness monta novo bloco concatenando a segunda interação com o Bloco 01 (Bloco 02):
{
"system": "Você é o GPT criado pela OpenAI. A data de hoje é 16/09/2026, localização...",
"interação-01": "Vamos desenvolver um site",
"resposta-chat-01": "Sobre o que é o site?",
"interação-02": "É sobre um portfólio de projetos de um desenvolvedor",
"tools": ["criar_arquivo", "buscar_web", "criar_diretorio"]
}
Perceba que na segunda interação o Bloco 01 vai inteiro para o LLM novamente, acompanhado da nova interação. A cada interação o bloco cresce, justamente porque o LLM não guarda memória e é necessário enviar tudo de novo - e quem faz isso é o Harness.
Por que isso importa?
Para usuários
É menos impactante, mas relevante: quanto mais você interage, mais texto vai para o LLM. No começo o conjunto de informações é pequeno; após várias interações fica maior. Se você mistura assuntos, a probabilidade de o modelo responder errado aumenta (pode confundir instrução antiga com nova). Com a evolução dos modelos isso é cada vez menos impactante, mas merece atenção.
Para desenvolvedores
É muito mais impactante. Você terá que:
- Gerenciar esse contexto
- Juntar as informações necessárias para enviar ao LLM
- Orquestrar ações ao receber as respostas e devolver ao usuário
Tudo isso fica na responsabilidade de quem constrói aplicações integradas à IA. Por isso é tão importante saber o que ocorre em volta da IA.
Tools
O ponto central: uma tool é uma função no seu backend.
Nos pseudo-prompts acima, a lista tools contém nomes como criar_arquivo, buscar_web, criar_diretorio. Na realidade, não é passado só o nome - são incluídas descrição e parâmetros da função, tudo enviado junto ao LLM.
Exemplo prático: criando Post-its no Miro via Claude
Não gosto de criar Post-its manualmente no Miro; o Harness (com auxílio do LLM) faz isso por mim.
- Configuração prévia: Conectei o Miro no chat. A LLM não guarda essa informação - quem guarda é o Harness (o backend do Claude).
- Minha solicitação: Envio o que quero (poucas instruções). A LLM completa a maior parte para que o Harness execute.
- Tool
board_show: O chat pede para usar a toolboard_showe trava a execução solicitando minha permissão.- Isso mostra o loop entre Harness e LLM
- Também envolve o MCP (Model Context Protocol) - assunto para outro post
- Execução: O modelo não executou nada; apenas escreveu um texto estruturado tipo "quero chamar board_show com essa URL". Quem executou foi o Harness, que pegou o retorno e jogou de volta no contexto como mais uma mensagem.
- Ciclo: O modelo é chamado de novo, agora sabendo o que aconteceu. O ciclo se repete até a tarefa concluir (no caso do Miro, várias idas e voltas até o fluxo ficar pronto).
Esse vai-e-vem é o loop - assunto do próximo post.
Harnesses diferentes, resultados diferentes
Você pode usar o mesmo modelo em harnesses diferentes - Cursor, GitHub Copilot, Claude Code - e ter resultados diferentes. Hoje há muita discussão sobre o melhor modelo, mas também sobre o melhor Harness.
Espero que esses dois primeiros posts sobre LLM e Harness, conceitos básicos de Inteligência Artificial, ajudem a compreender e seguir nos próximos. No próximo post falaremos de loop, MCP e uma breve introdução a agentes.
Comments
No comments yet. Start the discussion.