Harness Engineering
Tudo em volta de um agente de IA — guides + sensors que tornam o LLM confiável
Agent = Model + Harness (Martin Fowler). O modelo é não-determinístico e sem contexto. Tudo que vira o output dele em algo confiável — system prompts, retrieval, ferramentas, testes, guardrails, signals de feedback — é o harness. Em times sérios, o harness é onde mora 90% do trabalho de engenharia.
O que conta como "harness"
- System prompts — instruções iniciais que definem comportamento
- Tools / function calling — as ações que o agente pode tomar
- Retrieval — RAG, code search, vector DB
- Guardrails — validação de input/output, content filtering
- Eval suite — testes que rodam continuamente medindo qualidade
- Telemetry — observability específica de LLM (latency, tokens, custo, qualidade)
- Loop control — quando parar, quando escalar pra humano
- Memory — short-term (contexto) e long-term (vetor)
Por que harness importa mais que o modelo
| Sem harness | Com harness |
|---|---|
| Output varia entre runs | Output validado e padronizado |
| Alucinação não é detectada | Sensors flagam alucinação antes de chegar ao usuário |
| Sem contexto do código real | Retrieval injeta contexto relevante |
| Sem garantia de formato | Schema forçado (JSON, tool call estruturado) |
| Custo descontrolado | Token budget por sessão; modelo certo pra tarefa certa |
| Falha silenciosa | Eval contínuo; alarme em regressão de qualidade |
Feedforward vs Feedback
Guides (feedforward): previne o problema. Docs, system prompt, exemplos few-shot, schema. Acontece antes da geração.
Sensors (feedback): observa a saída e age. Eval, linter, type checker, teste estrutural. Acontece depois.
Sensors (feedback): observa a saída e age. Eval, linter, type checker, teste estrutural. Acontece depois.
Computacional vs Inferencial
| Tipo | Característica | Exemplo |
|---|---|---|
| Computacional | Determinístico, rápido (ms-s) | Linter, type check, schema validator, structural test |
| Inferencial | Probabilístico, mais lento, semântico | LLM-as-judge avaliando coerência; outro agente revisando código |
Use computacional primeiro (cheap, rápido). Use inferencial onde só semântica resolve.
Por que o trabalho de engenharia em sistemas com LLM é majoritariamente harness?
O modelo é commodity intercambiável — Claude, GPT, Gemini fazem 80% das mesmas tarefas com qualidade similar. O diferencial vem do harness: como você dá contexto certo, como valida saída, como detecta regressão, como controla custo, como integra com o restante do sistema. Trocar modelo é uma linha de config; reescrever harness é projeto de meses. Investir em harness é investir no que dura.