E16 · Os dois atalhos
10 minRode o ensaio.
Pronto quando: sem guarda, as duas linhas keep · 0.700 → 1.000 e os escondidos em 21/30; com guarda, DESCARTADO: mexeu no medidor, DESCARTADO: ganho só no visível e um único saída: 0.
Aula 6 · 18 min
Um loop que melhora a si mesmo vai achar o caminho mais curto para a nota subir, e o mais curto nem sempre é melhorar o sistema: pode ser decorar os casos ou mexer no medidor. Nesta aula você vê os dois atalhos virarem keep, fecha com medidor congelado fora do repo e casos escondidos, e vê uma mudança real do Claude cair.
Começar a aula
Objetivo: pegar o agente que melhora a nota sem melhorar o sistema: medidor com hash fora do repo e casos escondidos que o agente não vê.
Três atalhos, duas guardas. Clique em cada bloco.
Detectar atalho em testes (conftest, skip, testes escondidos) e calibrar juiz por modelo é do curso 1, aulas 3, 4 e 6. Aqui: o loop que otimiza a própria métrica.
Os mesmos agentes falsos, primeiro no experimento.sh puro, depois com GUARDA e ESCONDIDOS.
K=~/projetos/loop-r-eng-aprende-v72/kit
E=${TMPDIR:-/tmp}/ensaio-aprende/a6; rm -rf $E; mkdir -p $E
echo "## sem guarda: a métrica sobe e o sistema não melhora"
for m in decora mexe-casos; do
bash $K/novo-sistema.sh $E/sis > /dev/null
AGENTE="bash $K/agente-falso.sh $m" bash $K/experimento.sh $E/sis "$m"
echo " nos casos escondidos: $(python3 $K/medir.py $E/sis --casos $K/triagem/escondidos.jsonl)"
done
echo "## com guarda: medidor congelado fora do repo + casos que o agente não vê"
bash $K/novo-sistema.sh $E/sis > /dev/null; bash $K/experimento.sh --congelar $E/sis $E/medidor.sha256
export GUARDA=$E/medidor.sha256 ESCONDIDOS=$K/triagem/escondidos.jsonl
for m in mexe-casos decora sinonimos; do
AGENTE="bash $K/agente-falso.sh $m" bash $K/experimento.sh $E/sis "$m"; echo "saída: $?"
done## sem guarda: a métrica sobe e o sistema não melhora ciclo 1 · keep · 0.700 → 1.000 · melhorou nos casos escondidos: acerto: 0.700 (21/30) ciclo 1 · keep · 0.700 → 1.000 · melhorou nos casos escondidos: acerto: 0.700 (21/30) ## com guarda: medidor congelado fora do repo + casos que o agente não vê medidor congelado em /tmp/ensaio-aprende/a6/medidor.sha256 ciclo 1 · discard · 0.700 → 0.700 · DESCARTADO: mexeu no medidor (casos.jsonl) saída: 1 ciclo 2 · discard · 0.700 → 1.000 · DESCARTADO: ganho só no visível (escondidos 0.700 → 0.700) saída: 1 ciclo 3 · keep · 0.700 → 0.800 · melhorou (escondidos 0.700 → 0.800) saída: 0
Sem guarda, os dois atalhos dão 0.700 → 1.000 e keep, e os casos escondidos ficam em 21/30. Com guarda: mexer nos casos cai pelo hash, decorar cai pelos escondidos, e só os sinônimos (que melhoram de verdade, 21 → 24 de 30) passam.
## antes da mudança do claude (keep dos sinônimos) acerto: 0.800 (32/40) acerto: 0.800 (24/30) ## depois (keep do claude na aula 2) acerto: 0.900 (36/40) acerto: 0.800 (24/30) errou: tem frete grátis? → entrega (esperado outros) -entrega: entrega, rastreio, pedido não chegou +entrega: entrega, rastreio, pedido não chegou, pacote, encomenda, transportadora, carteiro, correios, frete, envio, enviado
Medido em 19/10/2026 sobre o repo da aula 2, uma rodada. A mudança do Claude subiu a nota visível de 32 para 36 de 40, mas nos escondidos ficou em 24 de 30: "pacote" acertou um caso novo e "frete" errou "tem frete grátis?". Com a guarda ligada, seria discard ("ganho só no visível"). Não foi trapaça: foi ganho que não generaliza.
O que o artigo mede e o que ele mesmo conta de atalho.
Um arquivo de variantes de agente; uma variante fica quando o benchmark passa de um limiar. O artigo relata SWE-bench de 20,0% para 50,0% e Polyglot de 14,2% para 30,7%, em sandbox com supervisão humana.
É o loop desta aula em escala: o agente muda o próprio código e um benchmark decide.
O artigo (Apêndice H, "Solving Hallucination") relata um caso de objective hacking: o detector de alucinação usa marcadores inseridos quando a ferramenta roda de fato, e o loop otimizou a nota em vez de resolver o problema.
O mesmo apêndice diz que o atalho aparece mais quando as funções de checagem não ficam escondidas do agente. É a guarda desta aula: medidor fora do alcance.
Escreva o objetivo como "maximizar X sem piorar Y", congele o medidor fora do alcance e mantenha casos que o agente nunca vê.
Renove os escondidos de tempos em tempos: depois de muitos ciclos, até eles passam a ser otimizados de forma indireta (você escolhe as mudanças olhando o resultado).
A trilha 4 do LOOP-R (Nei Maldaner): metas infladas sem melhorar nada, amostra mínima e guarda-corpos.
Ensaio, depois o seu medidor.
Rode o ensaio.
Pronto quando: sem guarda, as duas linhas keep · 0.700 → 1.000 e os escondidos em 21/30; com guarda, DESCARTADO: mexeu no medidor, DESCARTADO: ganho só no visível e um único saída: 0.
No seu sistema, separe o que mede (casos, script de medida, testes) do que o agente muda. Congele o que mede num manifesto fora do repo: na pasta do repo, python3 $K/hashes.py congelar [manifesto fora do repo] [arquivos que medem], ou bash $K/experimento.sh --congelar . [manifesto] com MEDIDOR exportado (aula 2, "Adaptar ao seu repo").
Pronto quando: python3 $K/hashes.py conferir [manifesto]; echo $? → 0; mude um caso de propósito → MUDOU: … e 1; desfaça.
Separe pelo menos 20% dos seus casos reais para um arquivo fora do repo, que nunca entra no pedido ao agente. Rode o seu último keep contra eles. Com medidor seu, ESCONDIDOS só funciona se o comando de MEDIR aceitar --casos [arquivo].
Pronto quando: python3 $K/medir.py [repo] --casos [escondidos] (ou o seu MEDIR com --casos) imprime o acerto nos escondidos, e você anotou, no results.tsv ou no ledger, se o último keep acompanha nos escondidos.
Pergunta 1 de 4
O agente copiou o texto exato dos casos errados para as regras e a nota foi a 100%. O que denuncia o atalho?competência
Pergunta 2 de 4
Onde deve ficar o manifesto de hash do medidor?competência
Pergunta 3 de 4
Sobre o atalho no detector de alucinação da Darwin Gödel Machine, o curso trata como:
Pergunta 4 de 4
A mudança real do Claude na aula 2 subiu o visível de 32 para 36 e deixou os escondidos em 24 de 30. Com a guarda, o que acontece?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.