O Que É um Harness¶
No uso atual, um agent harness é tudo que envolve o modelo, exceto o modelo em si: execução de ferramentas, memória e estado, orquestração, guardrails e observabilidade.
Agent = Model + Harness
Um bom harness é o que transforma um LLM genérico em um sistema capaz de rodar workflows longos e complexos com confiabilidade. É a diferença entre um modelo que desiste depois de um turno e um que termina o trabalho.
As seis camadas¶
flowchart TB
API["Camada de API<br/><small>ponto de entrada, streaming</small>"]
ORC["Camada de Orquestração<br/><small>planos, loops, replanejamento</small>"]
TOOL["Camada de Ferramentas / MCP<br/><small>ferramentas, skills, schema</small>"]
MEM["Camada de Memória / Contexto<br/><small>logs, artefatos duráveis, RAG</small>"]
EXE["Camada de Execução / Sandbox<br/><small>rodar código, isolamento, cotas</small>"]
OBS["Camada de Observabilidade<br/><small>eventos, traces, auditoria</small>"]
API --> ORC --> TOOL --> EXE
ORC --> MEM
ORC --> OBS
Onde o Leopold entra¶
O Claude Code já é um harness forte para um único turno interativo. Ele tem as ferramentas, a execução e um sistema de permissões. O que falta para trabalho longo e sem supervisão é exatamente o que o Leopold adiciona:
flowchart LR
subgraph CC["Claude Code (um turno)"]
T[Ferramentas] --- E[Execução] --- P[Permissões]
end
subgraph LEO["Leopold (longa duração)"]
DEC["Decisor<br/>(seu charter)"]
CON["Continuidade<br/>(stop hook / driver)"]
GUARD["Guardrails<br/>(git travado)"]
end
CC --> LEO
- um decisor (seu charter), para que o agente tenha autoridade de escolher em vez de perguntar,
- continuidade (um stop hook, ou o driver do SDK), para que um turno concluído emende no próximo item,
- guardrails (um gate de chamadas de ferramenta), para que a autonomia nunca toque no seu git.
Veja o mapeamento completo na Visão Geral da Arquitetura.