Pular para o conteudo
MODULO 2.1

πŸ” Anatomia do loop

Voce ja sabe que um loop e um grafo com ciclo. Agora abra o loop e olhe as pecas de dentro: os cinco passos, a condicao de parada, o que atravessa cada volta. Isso e o que separa um agente que funciona de um que queima seu credito rodando pra sempre.

6
Topicos
40
Minutos
Intermediario
Nivel
Base
Tipo
Progresso deste modulo
0%0 de 6
1

🧭 Desenhe o ciclo de cinco passos

Todo loop de agente decente segue o mesmo esqueleto de cinco passos: descobrir (juntar o contexto que falta), planejar (decidir o proximo movimento), agir (executar β€” rodar codigo, chamar uma ferramenta, escrever), verificar (checar se o resultado presta) e parar (sair do loop, com sucesso ou desistencia). Cada um desses cinco e um no. O loop inteiro e um grafo.

πŸ†• Novo aqui? Duas palavras antes de seguir

  • Loop: um trecho de processo que se repete ate uma condicao mudar. Aqui, o grafo cujo caminho volta a um no anterior β€” a Trilha 1 ja te mostrou isso.
  • Verificar (verify): o passo que decide se o trabalho feito presta ou nao. Vira o assunto inteiro do Modulo 2.2.
descobrir planejar agir verificar nao passou β†’ volta pra descobrir (isso e o ciclo) parar passou β†’ sai do loop os cinco passos + a volta = um grafo com um ciclo

O que olhar: siga a seta de "verificar" que volta pra "descobrir" β€” essa e a aresta que fecha o ciclo e transforma a fila de passos num loop de verdade. A outra saida, pra "parar", e o que impede o grafo de rodar pra sempre. Sem as duas setas saindo de "verificar", voce nao tem um loop, tem um DAG disfarcado.

1

Descobrir + planejar sao baratos, agir e verificar sao caros

Juntar contexto e decidir custam tokens. Agir (rodar codigo, editar arquivo) e verificar (rodar teste, chamar outro modelo) custam tempo e dinheiro de verdade. Otimize o loop reduzindo voltas, nao os dois passos baratos.

2

Nem todo loop precisa dos cinco passos escritos por extenso

Um loop simples de "tentar de novo" pode fundir descobrir+planejar num so prompt. Mas os cinco existem por baixo mesmo assim β€” nomea-los ajuda a debugar quando o loop trava.

Conceitos-chave

5 passos

Descobrir, planejar, agir, verificar, parar

Cada passo e um no

O loop e o grafo desses cinco nos

Duas saidas de verificar

Volta (ciclo) ou parar (sai)

Agir e verificar custam

Otimize reduzindo voltas

2

πŸ›‘ Escreva a condicao de parada

Existem dois jeitos de um loop parar: por sucesso (o verificador aprovou) ou por desistencia (bateu um teto e o loop nao vai passar mesmo insistindo). Um loop que so sabe parar por sucesso e um loop que pode rodar pra sempre β€” voce precisa das duas saidas, nao so de uma.

πŸ’‘ Parada em camadas

Uma condicao de parada boa nunca e uma linha so. E uma pilha de tres:

  • β€’Criterio normal β€” "os testes passaram", "o revisor aprovou". A saida feliz.
  • β€’Teto β€” um numero duro: max 10 voltas, ou max $2 de tokens. Independente do criterio, isso corta o loop.
  • β€’Humano β€” se bateu o teto sem sucesso, alguem precisa ser avisado. Desistencia silenciosa e o pior desfecho possivel.

βœ“ Condicao de parada boa

  • βœ“Criterio verificavel por codigo, nao "parece bom"
  • βœ“Teto de voltas explicito no codigo do loop
  • βœ“Desistencia dispara um alerta pra um humano

βœ— Condicao de parada ruim

  • βœ—"O modelo decide quando parar" sem teto nenhum por baixo
  • βœ—Teto existe, mas ao bater ele so encerra sem avisar ninguem
  • βœ—Criterio de sucesso e "o LLM disse que ficou bom" β€” sem referencia externa

⚠️ Atencao: desistencia muda e cara de sucesso

Um loop que bate o teto e simplesmente para, sem logar nada e sem avisar ninguem, e o pior tipo de bug: parece que funcionou porque nao deu erro visivel. Trate a desistencia como um evento de primeira classe β€” ela precisa aparecer em algum lugar que um humano olha.

Conceitos-chave

Sucesso

Verificador aprovou

Desistencia

Bateu o teto sem passar

Em camadas

Criterio + teto + humano

Nunca silenciosa

Desistencia precisa avisar

3

πŸŽ’ Decida o que atravessa as voltas

Cada volta do loop tem acesso a uma janela de contexto β€” a quantidade de texto que o modelo consegue "ver" de uma vez, contando prompt, historico e resultado das ferramentas. A pergunta que voce precisa responder antes de escrever o loop e: o que atravessa de uma volta pra outra, e o que fica pra tras?

πŸ†• Novo aqui? Janela de contexto

Pense nela como uma mesa de trabalho de tamanho fixo. Tudo que o modelo precisa enxergar naquela volta β€” instrucoes, arquivos, erro anterior β€” tem que caber em cima dela. Passar demais nao cabe; passar de menos deixa faltando algo essencial.

βœ— Carregar contexto demais

  • βœ—A janela entope: o modelo ignora ou esquece partes relevantes
  • βœ—Cada volta fica mais lenta e mais cara
  • βœ—Ruido antigo (tentativas ja descartadas) confunde a decisao atual

βœ— Carregar contexto de menos

  • βœ—O loop repete o mesmo erro porque esqueceu que ja tentou aquilo
  • βœ—Perde uma decisao tomada duas voltas atras e contradiz a si mesmo
  • βœ—Reconstroi do zero informacao que ja tinha sido descoberta

πŸ“Š O que normalmente atravessa

  • Objetivo original β€” sempre. Sem ele o loop deriva.
  • Ultimo erro/resultado β€” o que precisa ser corrigido agora.
  • Decisoes ja tomadas β€” resumidas, nao o historico bruto inteiro.
  • Contador de voltas β€” pra saber a distancia do teto de desistencia.

Essa decisao β€” o que fica, o que sai, como resumir o que sai β€” e o embriΓ£o do que a Trilha 4 vai chamar de state schema: uma definicao explicita e nomeada do que viaja entre nos. Num loop simples voce pode ate decidir isso informalmente. Num grafo com varios nos, informal nao aguenta.

Conceitos-chave

Janela de contexto

Mesa de tamanho fixo

Demais entope

Ignora ou esquece o relevante

De menos repete erro

Perde o que ja foi tentado

EmbriΓ£o do state schema

Formaliza na Trilha 4

4

πŸ”‚ Reconheca o Ralph loop

Existe uma versao radicalmente simples de loop que ficou popular: rodar o mesmo prompt repetidas vezes ate o objetivo ser alcancado, sem mudar nada entre as voltas alem do que o proprio agente escreveu em arquivos. Essa tecnica foi popularizada a partir do metodo Ralph, de Geoffrey Huntley β€” daΓ­ o apelido "Ralph loop" que voce vai ouvir por ai.

1

O prompt fica fixo, o mundo muda

Voce nao reescreve o prompt a cada volta.

O agente le o estado atual do repositorio (arquivos, testes, TODOs) e o prompt generico basta pra decidir o proximo passo β€” porque o proprio ambiente virou a memoria.

2

Funciona bem pra tarefas grandes e bem delimitadas

"Deixa rodando a noite inteira migrando esse codebase."

Cada volta avanca um pedaco, marca o que ja fez (num arquivo de progresso, por exemplo) e a volta seguinte le esse marcador. O teto de voltas e o teto de custo continuam obrigatorios.

πŸ’‘ Simples nao e errado, e incompleto

O Ralph loop nao e uma tecnica "menor" ou ingenua β€” e o loop na sua forma mais crua, e crua funciona pra muita coisa. O que ele nao resolve sozinho e exatamente o que os proximos dois topicos (aberto x fechado, aninhamento) e o Modulo 2.2 (o verificador) vao cobrir: sem um verificador de verdade e sem saber quando parar, "rodar o mesmo prompt" vira "rodar o mesmo prompt pra sempre".

Conceitos-chave

Prompt fixo

Mesmo prompt toda volta

Metodo Ralph

Geoffrey Huntley

Ambiente = memoria

Arquivos carregam o progresso

Incompleto, nao errado

Ainda precisa de verificador e teto

5

πŸ”„ Feche o loop (aberto x fechado)

Um loop fechado mede o efeito do que acabou de fazer e usa essa medida pra decidir a proxima volta β€” isso se chama realimentaΓ§Γ£o (em ingles, feedback): o resultado de uma acao volta como entrada da proxima. Um loop aberto so executa, sem olhar pra tras.

⚠️ Sem medir o efeito, e cron job caro

Um script que roda a cada hora e nunca olha se o que fez deu certo nao e um loop de agente β€” e um agendador. A diferenca entre um loop de verdade e um cron job disfarcado de IA e exatamente essa: o loop reage ao proprio resultado. Se voce tira a realimentaΓ§Γ£o, sobra so a repeticao β€” e repeticao sem reacao e cara e nao aprende nada.

βœ“ Loop fechado

  • βœ“"Rodei o teste, falhou nessa linha, corrijo essa linha"
  • βœ“O verificador do topico 1 alimenta o proximo "planejar"
  • βœ“A qualidade melhora (ou pelo menos muda) a cada volta

βœ— Loop aberto

  • βœ—"Manda o email todo dia as 9h", sem checar se alguem le
  • βœ—Repete a mesma acao mesmo que ela esteja falhando sempre
  • βœ—Nao ha "planejar" de verdade β€” so "agir" de novo

E aqui mora um limite que vale gravar: a qualidade da medida e o teto de qualidade do loop inteiro. Se o seu verificador so checa "o codigo rodou sem erro" mas nao "o codigo faz o que devia", seu loop fechado converge (chega numa resposta estavel) β€” so que converge pra a coisa errada. Fechar o loop nao basta; fechar bem e o trabalho.

Conceitos-chave

RealimentaΓ§Γ£o

Resultado vira entrada

Fechado x aberto

Reage x so executa

Sem medida = cron

Repeticao cara e cega

Medida = teto

Loop nao passa da qualidade da medida

6

πŸͺ† Aninhe loops (e escreva o primeiro)

Nada impede um loop de conter outro loop dentro de si. O loop externo decide o que fazer (qual tarefa pegar a seguir), o loop interno executa como fazer aquela tarefa especifica ate o proprio verificador dela passar. Cada volta do loop externo vira, ela mesma, um no no grafo maior.

loop externo β€” escolher proxima tarefa tarefa 1 (loop interno) agir β†’ verificar β†’ volta tarefa 2 (loop interno) agir β†’ verificar β†’ volta tarefa 3 (loop interno) agir β†’ verificar β†’ volta o loop externo volta pra escolher a proxima tarefa β€” cada tarefa e um no que esconde seu proprio loop

O que olhar: a caixa grande tem sua propria seta de volta β€” e um loop. Cada caixa pequena dentro dela tambem tem uma seta de volta β€” outro loop, escondido dentro do primeiro no. Isso e aninhamento: um loop cujos nos, quando voce abre, sao eles mesmos loops inteiros.

1

Aninhar funciona bem enquanto os loops nao conversam

Cada loop interno resolve sua tarefa isolado, sem precisar saber o que o loop da tarefa vizinha esta fazendo. E um padrao legitimo e barato de escalar.

2

Quando os internos precisam se falar, o externo nao da conta sozinho

Se a tarefa 2 depende de algo que a tarefa 1 descobriu, "escolher a proxima tarefa" deixa de ser suficiente β€” voce precisa de arestas explicitas entre os loops internos. Essa e a ponte pro grafo, e e a Trilha 3 que vai destrinchar quando isso compensa.

πŸ§ͺ Exemplo pratico: um loop minimo com parada em camadas

Objetivo: ver os cinco passos e a condicao de parada em camadas rodando de verdade, num pseudocodigo curto que voce roda no console do navegador (F12) ou no Node.

// condicao de parada em camadas: criterio + teto
function loop(tarefa, verificar, agir, MAX_VOLTAS = 5) {
  let contexto = { tarefa, tentativas: [] };
  for (let volta = 1; volta <= MAX_VOLTAS; volta++) {
    // descobrir + planejar (aqui simplificados: so olham o contexto)
    const plano = "tentativa " + volta + " para: " + contexto.tarefa;

    // agir
    const resultado = agir(plano, contexto);
    contexto.tentativas.push(resultado);

    // verificar
    if (verificar(resultado)) {
      return { status: "sucesso", volta, resultado };  // parar por sucesso
    }
  }
  return { status: "desistencia", volta: MAX_VOLTAS };  // parar por teto
}

// exemplo concreto: "adivinhar" um numero
const alvo = 7;
const r = loop(
  "achar o numero " + alvo,
  (res) => res === alvo,
  (plano, ctx) => ctx.tentativas.length + 3   // tenta 3, 4, 5, 6, 7...
);
console.log(r);

Como verificar: voce deve ver { status: "sucesso", volta: 5, resultado: 7 } no console β€” o loop achou o alvo na 5a volta e parou. Troque MAX_VOLTAS para 3 e rode de novo: agora deve aparecer { status: "desistencia", volta: 3 } β€” o teto cortou antes do sucesso.

Agora troque pelo seu: substitua <agir> pela sua acao real (chamar um modelo, rodar um comando) e <verificar> por um teste de verdade. Se a "desistencia" nunca aparecer no seu log real, seu teto provavelmente esta alto demais pra voce perceber.

Checagem rapida (nao bloqueia nada): um loop roda 40 voltas sem nunca medir se o resultado melhorou, so repetindo a mesma acao. Isso e:

Conceitos-chave

Externo decide

Qual tarefa pegar

Interno executa

Como fazer aquela tarefa

Volta = no

Cada volta externa e um no maior

Ponte pro grafo

Quando internos precisam conversar

πŸ“Œ Resumo do Modulo

βœ“
Cinco passos β€” descobrir, planejar, agir, verificar, parar. Cada um e um no do grafo-loop.
βœ“
Parada em camadas β€” criterio de sucesso + teto + aviso humano. Nunca so um.
βœ“
O que atravessa β€” objetivo, erro recente, decisoes ja tomadas. E o embriΓ£o do state schema.
βœ“
Ralph loop β€” mesmo prompt toda volta, o ambiente carrega o progresso. Simples, nao errado.
βœ“
Fechado x aberto β€” sem realimentaΓ§Γ£o vira cron job caro. A medida e o teto do loop.
βœ“
Aninhamento β€” externo decide, interno executa. Quando os internos precisam conversar, entra o grafo.

Proximo Modulo:

2.2 β€” O verificador e o gargalo: por que a qualidade do seu loop nunca passa da qualidade de quem checa o resultado.