A camada em volta da LLM
O harness é uma camada de software que constrói o que vai enviar e também transforma a resposta do LLM em ação. O LLM não tem memória, apesar de super inteligente ele não guarda um histórico e não executa ações, ele 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 de treinamento.
Também no artigo anterior fizemos uma tabela de Produto x 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 a mensagem não vai direto para o modelo, existe uma engenharia de software em volta que vai montar o prompt para o envio para o modelo. O que isso quer dizer na prática é que existe um código comum que vai montar as instruções, lista de ferramentas disponíveis, com nome, descrição e formato de argumentos de cada ferramenta, também vai juntar o conteúdo e memória da conversa inteira a cada interação que você faz com o chat, até a última mensagem.
É mais ou menos isso aqui:
Você faz a primeira pergunta ou interação:
"Vamos desenvolver um site".
O "Harness" monta a estrutura que vai enviar para o LLM:
pseudo estrutura
Bloco 01 (PROMPT)
{
"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"]
}
Ele manda esse bloco e obtém a resposta do LLM, que seria, "Sobre o que é o site?", agora quando você faz uma nova interação respondendo "É sobre um portfólio de projetos de um desenvolvedor" ele vai montar um novo bloco "concatenando" a segunda interação com as informações do Bloco 01.
Bloco 02 (PROMPT)
{
"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"]
}
Percebe que na segunda interação o bloco 01 foi inteiro para o LLM novamente, acompanhado da segunda interação? A cada interação o bloco cresce mais, justamente porque a LLM não guarda memória e é necessário enviar tudo novamente, e quem faz isso é o Harness, a tal da engenharia de software em volta da LLM.
E por que isso é importante pra você que é desenvolvedor ou projeta aplicações com "IA"? Ou até mesmo pra você que só "chatea" no seu chat favorito?
Pra você que é usuário, é menos impactante, mas também é relevante pelo motivo de que quanto mais você interage em um chat mais joga texto para a LLM, no começo da conversa a LLM recebe um conjunto pequeno de informações, após algumas interações o conjunto de informações é relativamente maior, se você mistura assuntos a probabilidade de o modelo responder errado aumenta, pode confundir instrução antiga com nova, mas aqui vale uma observação, com a evolução dos modelos isso é cada vez menos impactante, no entanto, merece atenção e conferência.
Pra você que é Dev é muito mais impactante, você vai ter que gerenciar esse contexto, juntar as informações necessárias pra enviar pra 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 é que uma tool é uma função no seu backend. Perceba que no pseudo-prompt "bloco01 e bloco02" existe uma lista de nomes que são chamados de tools [criar_arquivo, buscar_web, criar_diretorio], na realidade não é passado só o nome, são passadas outras propriedades das tools/ferramentas, como descrição e também aquilo que é parâmetro da função. Essas informações são incluídas junto com as outras informações que são enviadas para o LLM.
Calma jovem gafanhoto, eu vou explicar com um exemplo do meu dia a dia.
Eu não curto ficar criando Post-it no Miro, logo, eu não crio, quem cria pra mim é o Harness, com o auxílio da LLM.
Em um trabalho do MBA eu precisava criar alguns desenhos no Miro que representariam um fluxo, eu resolvi usar o Claude.
Eu envio para o chat o que quero conforme a imagem, na imagem também já tem o que o "Harness" faz. Se liga que o próprio chat informa que vai localizar o board e também sinaliza que vai buscar as ferramentas disponíveis. Esse processo só é possível porque antes eu configurei o conector do Miro no Chat, isso é um ponto importante, a LLM não guarda nada dessas informações, quem guarda é o "Harness" ou podemos dizer que é o backend da aplicação do Claude. Percebe também que meu texto tem poucas intruções, a LLM completa maior parte das instruções para que o Harness execute a ação, por isso disse que quem cria os meus postits é o Harness com o Auxílio da LLM.
Olhe na segunda imagem "Tool - board_show" o próprio chat pede pra usar a tool board_show e trava a execução solicitando minha permissão.
Tem duas coisas que essa imagem também mostra, uma é o loop entre harness e LLM e outra que não tá tão explícita é o MCP (Model Context Protocol), mas essas coisas são assuntos pra outro post quando detalharmos e implementarmos o Harness e falarmos de agentes. Seguindo, o board_show mostra a tela abaixo.
-- Board apresentado no chat pela tool board_show

O modelo não executou nada, ele só escreveu um texto estruturado, algo como "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. Aí o modelo é chamado de novo, agora sabendo o que aconteceu. Esse ciclo se repete até a tarefa ser concluída, no caso do Miro foram várias idas e voltas até o fluxo ficar pronto. Esse vai e volta é o loop, assunto do próximo post.
Uma última coisa: você pode usar o mesmo modelo em harnesses diferentes — Cursor, GitHub Copilot, Claude Code — e ter resultados diferentes. Hoje tem muita discussão sobre o melhor modelo, mas também tem muita 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.



Top comments (0)