Base: anatomia do loop|INEMA.CLUB-PRO

Aula 2 · 15 min

Harness: o que fica em volta do modelo

O modelo sozinho só prevê texto: não lembra, não enxerga seus arquivos, não age e não confere. Quem faz o trabalho no Claude Code e no Codex é o harness, o programa em volta do modelo. Quando o agente falha, a pergunta útil quase nunca é "tente de novo": é qual peça do harness está faltando. Nesta aula você faz o inventário do seu.

Começar a aula
Chip de processador no centro de uma carcaça de alumínio escuro, cercado de conectores, cabos, uma trava e um mostrador.

Nesta aula você vai

  1. 1O que o modelo faz sozinho e o que não faz
  2. 2As cinco peças do harness e o loop que as amarra
  3. 3Onde cada peça mora no seu Claude Code e no seu Codex
  4. 4Ler uma falha do agente como peça faltando

Objetivo: listar as peças do harness da sua máquina (contexto, memória, ferramentas, verificação, permissões) e dizer qual delas segura cada falha.

01O modelo e o que fica em volta dele

Clique em cada bloco: o que a peça faz e onde ela mora na sua máquina.

Role a página: cada etapa abaixo acende a sua parte do diagrama.

  1. 1/7

    Contexto

    No início de cada sessão o modelo não sabe nada do seu projeto. O harness carrega as regras (CLAUDE.md no Claude Code, AGENTS.md no Codex), a estrutura de pastas e o que mudou. Você escreve uma vez; ele lê em toda sessão.

  2. 2/7

    Memória

    Quanto mais longa a sessão, mais cheia a janela de contexto. O harness compacta: mantém o objetivo, encolhe os passos antigos. Compactar demais perde detalhe; por isso os loops longos guardam o estado em arquivo (aula 5) e o curso 2 trata das faixas de contexto.

  3. 3/7

    Ferramentas

    O modelo só produz texto. Quando esse texto é um pedido de ferramenta (ler arquivo, rodar comando, editar), o harness executa e devolve o resultado ao modelo. MCP é o jeito padrão de plugar ferramentas de outros sistemas.

  4. 4/7

    Verificação

    Sem verificação o modelo olha o código e diz "parece bom". Com ela, roda o teste e lê o resultado. Resultado real vale mais do que a IA dizer que está bom. É a peça que o loop mais precisa (aulas 1 e 6; curso 1).

  5. 5/7

    Permissões

    O harness confere cada ação antes de executar: editar passa, apagar pergunta. Hooks rodam seus scripts antes e depois das ferramentas; a sandbox limita o que um comando alcança. Em loop sem você olhando, é o que segura o raio de dano (curso 4).

  6. 6/7

    Loop do agente

    Juntando tudo: o modelo pensa e pede uma ferramenta, a permissão confere, o harness roda, o resultado volta, e o ciclo segue até o objetivo. O harness não deixa o modelo mais inteligente; deixa mais útil.

  7. 7/7

    Falhou? Procure a peça

    Esqueceu a regra do projeto: contexto. Perdeu o fio depois de horas: memória. Não conseguiu fazer: ferramenta. Disse pronto sem estar: verificação. Fez o que não devia: permissões.

Claude Code e Codex são harnesses. O mesmo modelo em harnesses diferentes dá resultados diferentes.

02Duas lições de quem constrói harness

De posts de engenharia públicos (pesquisa de 19/10/2026).

1. Pergunte o que falta

No post "Harness engineering", a lição central é: quando o agente falha, perguntar qual capacidade, contexto ou estrutura está faltando, em vez de mandar tentar mais.

Na prática: a correção vai para o harness (uma regra no AGENTS.md, uma ferramenta, um teste), não para um prompt mais enfático.

03Inventário do seu harness

Só leitura: nada é alterado. Rode na sua máquina e anote o que apareceu.

Terminal · contexto e memória
ls -la ~/.claude/CLAUDE.md ~/.codex/AGENTS.md 2>&1
wc -l ~/.claude/CLAUDE.md ~/.codex/AGENTS.md 2>/dev/null
ls CLAUDE.md AGENTS.md 2>&1   # no projeto atual
Terminal · ferramentas (MCP) e skills
claude mcp list
ls ~/.claude/skills 2>/dev/null | wc -l
Terminal · permissões e hooks do Claude Code (usuário e projeto; rode na pasta do projeto)
python3 - <<'PY'
import json, pathlib
for p in (pathlib.Path.home() / ".claude/settings.json",   # usuário
          pathlib.Path(".claude/settings.json"),            # projeto (vai para o git)
          pathlib.Path(".claude/settings.local.json")):     # projeto, só nesta máquina
    if not p.exists():
        print(f"{p}: não existe")
        continue
    d = json.loads(p.read_text())
    perm = d.get("permissions", {})
    print(f"{p}: hooks {sorted(d.get('hooks', {})) or 'nenhum'} · allow {len(perm.get('allow', []))} · deny {len(perm.get('deny', []))}")
PY
Terminal · sandbox e aprovação do Codex
grep -nE '^(sandbox_mode|approval_policy)' ~/.codex/config.toml || echo "padrão do Codex (sem chave no config)"
harness.md · modelo para preencher
# Meu harness — <data>
contexto: <arquivos de regras que o agente lê ao começar>
memória: <como guardo o que não pode se perder: handoff, arquivos de estado, nada>
ferramentas: <MCP e skills que uso de verdade>
verificação: <o comando que prova que deu certo no meu projeto principal>
permissões: <hooks e regras allow/deny; sandbox do Codex>
peça mais fraca: <qual e por quê>

04Vídeo: o harness por dentro

Contexto, memória, ferramentas, verificação, permissões e o loop do agente, uma peça por capítulo (10/10/2026).

AI harness: quem faz o trabalho da IA · 8 min 15 sPágina do vídeo com roteiro →

05Prática

Na sua máquina. Só passe para o próximo quando o "pronto quando" for verdade.

E1 · Inventário

15 min

Rode os quatro blocos do inventário e preencha o harness.md com o que apareceu, uma linha por peça. Escreva as marcas do começo da linha exatamente como estão no modelo: o grep do "pronto quando" procura por elas.

Pronto quando: grep -cE '^(contexto|memória|ferramentas|verificação|permissões):' harness.md → 5, e grep -c '<' harness.md → 0 (nenhum marcador do modelo ficou sem preencher).

E2 · O contexto é lido mesmo?

10 min

Acrescente ao CLAUDE.md (ou AGENTS.md) do projeto uma regra fácil de conferir, por exemplo "toda resposta termina com a palavra CONFERIDO". Abra uma sessão nova e peça qualquer coisa.

Pronto quando: A resposta da sessão nova termina com CONFERIDO sem você pedir. Depois apague a regra: grep -c CONFERIDO CLAUDE.md → 0.

E3 · Uma falha, uma peça

10 min

Lembre de uma falha real do agente nas últimas semanas. Escreva em harness.md a linha "peça mais fraca:" com a peça dona da falha e a correção que vai para o harness, não para o prompt.

Pronto quando: grep '^peça mais fraca:' harness.md → uma linha que cita uma das cinco peças e um arquivo, comando ou ferramenta concreta.

06Teste da aula

Pergunta 1 de 4

Toda sessão nova o agente esquece que o projeto usa pnpm e roda npm. Qual peça do harness resolve?competência

07Em três frases

O modelo decide, o harness fazContexto, memória, ferramentas, verificação e permissões ficam em volta do modelo e o loop as amarra.
Falha tem donaAntes de tentar de novo, pergunte qual peça faltou e corrija no harness.
Reavalie a cada modeloCada peça codifica uma suposição sobre o modelo; modelo novo pede revisão.

Para ir além

Aula anteriorPróxima aula