Base: anatomia do loop|INEMA.CLUB-PRO

Aula 1 · 15 min

O loop em 5 peças: objetivo, estado, ação, verificação, parada

Todo loop de agente que funciona tem as mesmas cinco peças, do /goal ao laço de shell. Quando um loop falha, quase sempre falta uma: não diz onde quer chegar, esquece onde estava, se aprova sozinho ou não sabe parar. Aqui você aprende a enxergar as cinco e roda um loop de brinquedo, sem modelo, que as mostra.

Começar a aula
Cabo preto trançado passando por cinco presilhas de metal diferentes sobre uma chapa escura.

Nesta aula você vai

  1. 1As cinco peças e a pergunta que cada uma responde
  2. 2Qual peça falta quando o loop gira à toa ou para cedo
  3. 3Um loop de brinquedo em bash que para pelo teste ou pelo teto
  4. 4Onde cada peça é aprofundada nos seis cursos

Objetivo: identificar as 5 peças em qualquer loop de agente e rodar um loop de brinquedo que para sozinho pelo teste ou pelo teto.

01As cinco peças de todo loop

Clique em cada bloco: a pergunta que a peça responde e o que acontece quando ela falta.

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

  1. 1/6

    Objetivo

    Uma frase com um fim que dá para checar: um arquivo com 5 linhas, uma suíte de testes passando, uma fila vazia. Sem isso o loop não tem como saber que acabou, e para quando a cota acaba ou quando o modelo acha que já está bom.

  2. 2/6

    Estado

    O que já foi feito, o que falta e como retomar. Num loop longo o contexto do modelo é compactado, resetado ou trocado de sessão; o que só está na conversa se perde. Por isso o estado mora fora do modelo (aula 5).

  3. 3/6

    Ação

    O que o agente faz neste ciclo: editar um arquivo, rodar um comando, pedir uma ferramenta. Passo pequeno é passo verificável; cinco mudanças de uma vez não dizem qual delas quebrou.

  4. 4/6

    Verificação

    Quem diz que o passo deu certo é um comando, não a opinião do agente: o teste roda e imprime "6 passed", o wc conta 5 linhas. É a peça que mais falta e a que mais custa quando falta. A escala de 0 a 4 está na aula 6; como montar o avaliador, no curso 1.

  5. 5/6

    Parada

    Duas saídas, sempre: a boa (o objetivo foi verificado) e a de segurança (bateu um teto ou parou de avançar). Loop sem teto é o que gira a noite toda no mesmo teste quebrado. Os cinco tetos estão na aula 7.

  6. 6/6

    Cinco perguntas por ciclo

    Onde quero chegar? Onde estou? Qual o próximo passo? Deu certo, com prova? Paro ou continuo? O loop que responde as cinco com arquivo e comando trabalha sozinho; o que responde com a memória do modelo depende de sorte.

Vale para um laço de shell, para o /goal do Claude Code, para o codex exec dentro de um script e para os nove agentes do LOOP-R.

02Qual peça falta?

Quatro sintomas que todo mundo já viu, e a peça que resolve.

1. Diz "pronto" sem prova

O agente termina com um resumo confiante e o teste nem rodou. O objetivo existia, mas ninguém conferiu.

Correção: a parada depende de um comando que imprime o resultado, e a prova aparece na saída.

Antes → depois"deixe os testes passando" → "python3 -m pytest -q imprime 6 passed"

03As cinco peças em 15 linhas de bash

Sem modelo nenhum: a "ação" é uma linha de shell. O objetivo é ver as peças, não o agente.

loop-brinquedo.sh
#!/usr/bin/env bash
# Loop de brinquedo: as 5 peças sem modelo nenhum. O "agente" é uma linha de shell.
set -u
OBJETIVO=5                         # 1. objetivo: saida.txt com 5 linhas
ESTADO=estado.txt                  # 2. estado: fica num arquivo, não na memória
MAX_CICLOS=8                       # 5. parada: teto de ciclos
touch saida.txt
ciclo=$(cat "$ESTADO" 2>/dev/null || echo 0)
while true; do
  feitas=$(wc -l < saida.txt)      # 4. verificação: um comando, antes de agir
  echo "ciclo $ciclo: $feitas de $OBJETIVO linhas"
  if [ "$feitas" -ge "$OBJETIVO" ]; then echo "PRONTO no ciclo $ciclo"; exit 0; fi
  if [ "$ciclo" -ge "$MAX_CICLOS" ]; then echo "PARADO: teto de $MAX_CICLOS ciclos"; exit 2; fi
  ciclo=$((ciclo + 1)); echo "$ciclo" > "$ESTADO"
  echo "item $ciclo" >> saida.txt  # 3. ação
done
Terminal · rodar numa pasta vazia
mkdir -p ~/ensaio-loop/pecas && cd ~/ensaio-loop/pecas
# cole o script acima em loop-brinquedo.sh e rode:
bash loop-brinquedo.sh; echo "rc=$?"
bash loop-brinquedo.sh; echo "rc=$?"   # de novo: já está pronto, não age
Exemplo do repositório
$ bash loop-brinquedo.sh; echo "rc=$?"
ciclo 0: 0 de 5 linhas
ciclo 1: 1 de 5 linhas
ciclo 2: 2 de 5 linhas
ciclo 3: 3 de 5 linhas
ciclo 4: 4 de 5 linhas
ciclo 5: 5 de 5 linhas
PRONTO no ciclo 5
rc=0

$ bash loop-brinquedo.sh; echo "rc=$?"
ciclo 5: 5 de 5 linhas
PRONTO no ciclo 5
rc=0

A segunda rodada não acrescenta nada: o estado está no arquivo e a verificação vem antes da ação.

04Onde cada peça é aprofundada

Este curso dá a anatomia; os outros cinco aprofundam uma peça cada. Verificação: curso 1 (avaliador separado, testes congelados, reward hacking). Estado e objetivo numa execução de horas: curso 2 (o kit de sete arquivos e o goal.md).

Ação dividida entre vários agentes: curso 3. Limites do que o agente pode fazer: curso 4. E o loop que melhora o próprio processo, com promoção e rollback: curso 5.

05Prática

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

E1 · O loop de brinquedo para pelo teste

10 min

Crie ~/ensaio-loop/pecas, cole o loop-brinquedo.sh e rode duas vezes seguidas.

Pronto quando: A primeira rodada termina com PRONTO no ciclo 5 e rc=0; a segunda imprime só ciclo 5: 5 de 5 linhas e PRONTO no ciclo 5, e wc -l < saida.txt → 5.

E2 · O loop para pelo teto

5 min

Apague saida.txt e estado.txt, troque OBJETIVO=5 por OBJETIVO=20 e rode de novo.

Pronto quando: A última linha é PARADO: teto de 8 ciclos e echo $? logo depois → 2.

E3 · Diagnóstico de um loop seu

15 min

Pegue o último pedido longo que você fez ao Claude Code ou ao Codex. Num arquivo pecas.md, escreva uma linha por peça, começando por objetivo:, estado:, ação:, verificação: e parada:, dizendo o que fazia esse papel, ou faltou. Escreva as marcas exatamente assim, em português: o grep do "pronto quando" procura por elas.

Pronto quando: grep -ciE '^(objetivo|estado|ação|verificação|parada):' pecas.md → 5, e pelo menos uma linha diz "faltou" ou aponta um comando de verdade.

06Teste da aula

Pergunta 1 de 4

O agente terminou dizendo "implementei e está tudo funcionando", mas nenhum teste aparece na saída. Qual peça faltou?competência

07Em três frases

Cinco peçasObjetivo, estado, ação, verificação e parada: todo loop que funciona tem as cinco.
Comando, não opiniãoQuem decide que um passo deu certo é uma saída de comando; quem decide parar é o teste ou um teto.
Duas saídasPronto pela verificação ou parado pelo teto, com código de saída diferente para cada uma.

Para ir além

Próxima aula