O multiagente mais útil tem dois papéis: um faz, outro confere. O gerador sempre diz "pronto"; quem decide é um avaliador separado que olha só o artefato e devolve um parecer. Nesta aula você liga os dois num laço com teto de rodadas, primeiro com um gerador falso que mente e depois com o Claude de verdade.
Terminal · ensaio sem cota (gerador falso que erra e depois corrige)
cd ~/treino-multi && chmod +x gera-avalia.sh && rm -f saudacao.txt
E=${TMPDIR:-/tmp}/ensaio-multi/gera; rm -rf $E && mkdir -p $E
cat > $E/gerador-falso.sh <<'SH'
#!/usr/bin/env bash
entrada=$(cat)
case "$entrada" in
*reprovou*) echo "Olá, comunidade INEMA" > saudacao.txt ;; # 2ª vez: leu o parecer
*) printf 'Olá comunidade INEMA\n\n' > saudacao.txt ;; # 1ª vez: vírgula e linha a mais
esac
echo "Pronto! saudacao.txt criado conforme pedido."
SH
chmod +x $E/gerador-falso.sh
GERADOR=$E/gerador-falso.sh ./gera-avalia.sh goal-saudacao.md "Crie saudacao.txt com uma linha: Olá, comunidade INEMA"
echo "saída: $?"
Terminal · real, com o Claude como gerador
cd ~/treino-multi && rm -f saudacao.txt
./gera-avalia.sh goal-saudacao.md "Crie saudacao.txt com uma linha: Olá, comunidade INEMA" < /dev/null
echo "saída: $?"; cat saudacao.txt
Exemplo do repositório
## ensaio (gerador falso)
rodada 1 · gerador diz: Pronto! saudacao.txt criado conforme pedido.
rodada 1 · avaliador: 0/2 critérios OK → REPROVADO
rodada 2 · gerador diz: Pronto! saudacao.txt criado conforme pedido.
rodada 2 · avaliador: 2/2 critérios OK → APROVADO
saída: 0
## real (Claude como gerador)
rodada 1 · gerador diz: Terminei: criei o `saudacao.txt`. Conferi o arquivo e ele tem uma linha só: `Olá, comunidade INEMA`. Não fiz commit.
rodada 1 · avaliador: 2/2 critérios OK → APROVADO
saída: 0
Olá, comunidade INEMA
Na rodada 1 do ensaio o gerador disse "pronto" com a vírgula faltando e uma linha a mais; o avaliador reprovou os dois critérios. Os títulos com ## separam as duas execuções.
Um gerador que ignora o parecer (sempre grava "Olá comunidade") nunca passa. O teto de rodadas encerra com código 2:
Três rodadas sem avanço é a mesma regra de parada do curso 2: chame o humano.
Com o saudacao.txt certo de uma rodada anterior ainda em disco e um gerador que sai com erro, a primeira versão do script aprovaria a sobra. A versão acima reprova a rodada sem avaliar:
Esse defeito foi achado pela revisão do Codex na aula 7, rodada sobre este mesmo script.
03 · Dentro da sessão: o time de três papéis
A receita R2 do projeto de treino faz o mesmo laço com subagentes.
1. planejador
Devolve até 5 passos e os critérios no formato comando → saída esperada, mais os riscos que pedem confirmação.
No kit, roda num nível topo; ferramentas Read, Grep, Glob.
2. executor
Segue o plano um passo por vez e mostra a saída real de cada comando de prova. Pode editar.
No kit, nível executor; é o único papel com Write e Edit.
3. revisor
Roda cada critério, compara com a saída real e termina em APROVADO ou FALTA: com a lista.
No kit, nível menor. Tem Bash para rodar os critérios, e por isso consegue gravar (aula 2).
4. Como pedir
Numa sessão aberta em ~/treino-multi: "Use o time: o planejador planeja, o executor faz e o revisor confere. Tarefa: [sua tarefa]".
A prova da receita: a resposta termina com APROVADO e o arquivo pedido existe.
04 · Prática
O ensaio prova o laço; a rodada real prova que ele funciona com um modelo.
E7 · O laço com gerador falso
10 min
Salve gera-avalia.sh e goal-saudacao.md e rode o ensaio. Depois troque o gerador falso por um que nunca corrige.
Pronto quando: o ensaio termina em rodada 2 · avaliador: 2/2 critérios OK → APROVADO e saída: 0; o teimoso termina em PARADO: 3 rodadas sem aprovação e saída: 2.
E8 · O laço com o Claude
10 min
Antes, faça commit do goal (git add goal-saudacao.md && git commit -qm goal), para o git acusar se ele mudar. Rode a versão real. Depois escreva um goal seu, com 2 ou 3 critérios, para uma tarefa pequena do seu projeto, e rode de novo.
Pronto quando: as duas rodadas terminam com → APROVADO e saída: 0 em até 3 rodadas, e git diff --exit-code -- goal-saudacao.md → código 0 (o gerador não mexeu nos critérios).
05 · Teste da aula
Pergunta 1 de 4
O gerador escreveu "Pronto! criado conforme pedido". O que isso decide?competência
Correto
No ensaio, a frase veio junto com um arquivo errado. O relato fica no log; a decisão é do verificar.mjs.
Não é essa
No ensaio, a frase veio junto com um arquivo errado. O relato fica no log; a decisão é do verificar.mjs.Rever: O laço gerador × avaliador
Pergunta 2 de 4
O que o avaliador deve receber?competência
Correto
Reconto vago esconde o defeito. A regra do kit agente-claude-codex é dar ao segundo agente o mesmo briefing e o artefato.
Não é essa
Reconto vago esconde o defeito. A regra do kit agente-claude-codex é dar ao segundo agente o mesmo briefing e o artefato.Rever: O laço gerador × avaliador
Pergunta 3 de 4
O gerador saiu com erro, mas um saudacao.txt certo de antes estava em disco. O que o script deve fazer?
Correto
Avaliar a sobra aprovaria trabalho que esta rodada não fez. Foi o defeito apontado pelo Codex e corrigido no script.
Não é essa
Avaliar a sobra aprovaria trabalho que esta rodada não fez. Foi o defeito apontado pelo Codex e corrigido no script.Rever: O laço em 25 linhas
Pergunta 4 de 4
Dois modelos diferentes concordaram que o trabalho está certo. Isso prova?
Correto
Concordância ajuda, mas não é prova independente. O critério que roda e imprime a saída esperada é a prova.
Não é essa
Concordância ajuda, mas não é prova independente. O critério que roda e imprime a saída esperada é a prova.Rever: O laço gerador × avaliador
Teste concluído
Você acertou {a} de {n}. Acertando todas, a aula é marcada como concluída.
Escolha uma alternativa. A explicação aparece depois da sua tentativa.
06 · Em três frases
Dois papéisUm faz, outro confere, em processos separados; o gerador nunca dá a própria nota.
Artefato e parecerO avaliador lê o que ficou em disco e devolve o trecho que falhou ao gerador.
Teto e falhaMAX rodadas e para com 2; rodada com gerador caído é reprovada sem avaliar.