Base: anatomía del loop|INEMA.CLUB-PRO

Clase 1 · 15 min

El loop en 5 piezas: objetivo, estado, acción, verificación, parada

Todo loop de agente que funciona tiene las mismas cinco piezas, del /goal al lazo de shell. Cuando un loop falla, casi siempre falta una: no dice adónde quiere llegar, olvida dónde estaba, se aprueba solo o no sabe parar. Aquí aprendes a verlas y ejecutas un loop de juguete, sin modelo, que las muestra.

Empezar la lección
Cable negro trenzado pasando por cinco presillas de metal distintas sobre una placa oscura.

En esta lección vas a

  1. 1Las cinco piezas y la pregunta que responde cada una
  2. 2Qué pieza falta cuando el loop gira en vano o se detiene antes de tiempo
  3. 3Un loop de juguete en bash que se detiene por la prueba o por el tope
  4. 4Dónde se profundiza cada pieza en los seis cursos

Objetivo: identificar las 5 piezas en cualquier loop de agente y ejecutar un loop de juguete que se detiene solo por la prueba o por el tope.

01Las cinco piezas de todo loop

Haz clic en cada bloque: la pregunta que responde la pieza y lo que pasa cuando falta.

Desplázate por la página: cada etapa de abajo ilumina su parte del diagrama.

  1. 1/6

    Objetivo

    Una frase con un final que se puede verificar: un archivo con 5 líneas, una suite de tests pasando, una cola vacía. Sin eso el loop no tiene cómo saber que terminó, y se detiene cuando se acaba la cuota o cuando el modelo cree que ya está bien.

  2. 2/6

    Estado

    Lo que ya se hizo, lo que falta y cómo retomar. En un loop largo el contexto del modelo se compacta, se resetea o se cambia de sesión; lo que solo está en la conversación se pierde. Por eso el estado vive fuera del modelo (clase 5).

  3. 3/6

    Acción

    Lo que hace el agente en este ciclo: editar un archivo, ejecutar un comando, pedir una herramienta. Un paso pequeño es un paso verificable; cinco cambios a la vez no dicen cuál de ellos rompió algo.

  4. 4/6

    Verificación

    Quien dice que el paso salió bien es un comando, no la opinión del agente: el test corre e imprime "6 passed", el wc cuenta 5 líneas. Es la pieza que más falta y la que más cuesta cuando falta. La escala de 0 a 4 está en la clase 6; cómo armar el evaluador, en el curso 1.

  5. 5/6

    Parada

    Dos salidas, siempre: la buena (el objetivo se verificó) y la de seguridad (se alcanzó un tope o dejó de avanzar). Un loop sin tope es el que gira toda la noche en el mismo test roto. Los cinco topes están en la clase 7.

  6. 6/6

    Cinco preguntas por ciclo

    ¿Adónde quiero llegar? ¿Dónde estoy? ¿Cuál es el próximo paso? ¿Salió bien, con prueba? ¿Paro o sigo? El loop que responde las cinco con un archivo y un comando trabaja solo; el que responde con la memoria del modelo depende de la suerte.

Vale para un loop de shell, para el /goal de Claude Code, para el codex exec dentro de un script y para los nueve agentes del LOOP-R.

02¿Qué pieza falta?

Cuatro síntomas que todos ya vieron, y la pieza que los resuelve.

1. Dice "listo" sin prueba

El agente termina con un resumen seguro de sí mismo y el test ni corrió. El objetivo existía, pero nadie lo comprobó.

Corrección: la parada depende de un comando que imprime el resultado, y la prueba aparece en la salida.

Antes → después"deja los tests pasando" → "python3 -m pytest -q imprime 6 passed"

03Las cinco piezas en 15 líneas de bash

Sin ningún modelo: la "acción" es una línea de shell. El objetivo es ver las piezas, no el agente.

loop-brinquedo.sh
#!/usr/bin/env bash
# Loop de juguete: las 5 piezas sin ningún modelo. El "agente" es una línea de shell.
set -u
OBJETIVO=5                         # 1. objetivo: saida.txt con 5 líneas
ESTADO=estado.txt                  # 2. estado: queda en un archivo, no en la memoria
MAX_CICLOS=8                       # 5. parada: tope de ciclos
touch saida.txt
ciclo=$(cat "$ESTADO" 2>/dev/null || echo 0)
while true; do
  feitas=$(wc -l < saida.txt)      # 4. verificación: un comando, antes de actuar
  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. acción
done
Terminal · ejecutar en una carpeta vacía
mkdir -p ~/ensaio-loop/pecas && cd ~/ensaio-loop/pecas
# pega el script de arriba en loop-brinquedo.sh y ejecútalo:
bash loop-brinquedo.sh; echo "rc=$?"
bash loop-brinquedo.sh; echo "rc=$?"   # otra vez: ya está listo, no actúa
Ejemplo del repositorio
$ 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

La segunda ejecución no agrega nada: el estado está en el archivo y la verificación viene antes de la acción.

04Dónde se profundiza cada pieza

Este curso da la anatomía; los otros cinco profundizan una pieza cada uno. Verificación: curso 1 (evaluador separado, pruebas congeladas, reward hacking). Estado y objetivo en una ejecución de horas: curso 2 (el kit de siete archivos y el goal.md).

Acción dividida entre varios agentes: curso 3. Límites de lo que el agente puede hacer: curso 4. Y el loop que mejora su propio proceso, con promoción y rollback: curso 5.

05Práctica

En tu máquina. Pasa al siguiente solo cuando el "listo cuando" sea verdad.

E1 · El loop de juguete para por la prueba

10 min

Crea ~/ensaio-loop/pecas, pega el loop-brinquedo.sh y ejecútalo dos veces seguidas.

Listo cuando: La primera ejecución termina con PRONTO no ciclo 5 y rc=0; la segunda imprime solo ciclo 5: 5 de 5 linhas y PRONTO no ciclo 5, y wc -l < saida.txt → 5.

E2 · El loop para por el tope

5 min

Borra saida.txt y estado.txt, cambia OBJETIVO=5 por OBJETIVO=20 y ejecútalo de nuevo.

Listo cuando: La última línea es PARADO: teto de 8 ciclos y echo $? justo después → 2.

E3 · Diagnóstico de un loop tuyo

15 min

Toma el último pedido largo que le hiciste a Claude Code o a Codex. En un archivo pecas.md, escribe una línea por pieza, empezando por objetivo:, estado:, ação:, verificação: y parada:, diciendo qué cumplía ese papel, o faltou. Escribe las marcas exactamente así, en portugués: el grep del "listo cuando" las busca.

Listo cuando: grep -ciE '^(objetivo|estado|ação|verificação|parada):' pecas.md → 5, y al menos una línea dice "faltou" o apunta a un comando de verdad.

06Prueba de la lección

Pregunta 1 de 4

El agente terminó diciendo "implementé y todo está funcionando", pero ninguna prueba aparece en la salida. ¿Qué pieza faltó?competencia

07En tres frases

Cinco piezasObjetivo, estado, acción, verificación y parada: todo loop que funciona tiene las cinco.
Comando, no opiniónQuien decide que un paso salió bien es la salida de un comando; quien decide parar es el test o un tope.
Dos salidasListo por la verificación o detenido por el tope, con un código de salida distinto para cada una.

Para ir más allá

Próxima clase