PTENES
Saltar al contenido
MÓDULO 2.1

🔁 Anatomía del loop

Ya sabes que un loop es un grafo con ciclo. Ahora abre el loop y mira las piezas que lo componen: los cinco pasos, la condición de parada, lo que pasa en cada vuelta. Eso es lo que distingue a un agente que funciona de uno que quema tu crédito ejecutándose para siempre.

6
Temas
40
Minutos
Intermedio
Nivel
Base
Tipo
Progreso de este módulo
0%0 de 6
1

🧭 Diseña el ciclo de cinco pasos

Todo loop de agentes decente sigue el mismo esqueleto de cinco pasos: descubrir (juntar el contexto que falta), planificar (decidir el siguiente movimiento), actuar (ejecutar — correr código, llamar a una herramienta, escribir), verificar (comprobar si el resultado sirve) y detener (salir del bucle, con éxito o desistiendo). Cada uno de estos cinco es un nodo. Todo el bucle es un grafo.

🆕 ¿Nuevo aquí? Dos palabras antes de seguir

  • Bucle: un tramo del proceso que se repite hasta que cambia una condición. Aquí, el grafo cuyo camino vuelve a un nodo anterior — la Ruta 1 ya te mostró esto.
  • Verificar (verify): el paso que decide si el trabajo realizado sirve o no. Se convierte en el tema central del Módulo 2.2.
descubrir planificar actuar verificar no pasó → vuelve para averiguar (esto es el ciclo) detener pasó → sale del loop los cinco pasos + el regreso = un grafo con un ciclo

Qué observar: sigue la flecha de "verificar" que vuelve a "descubrir" — esa es la arista que cierra el ciclo y convierte la cola de pasos en un loop de verdad. La otra salida, hacia "parar", es lo que impide que el grafo se ejecute para siempre. Sin las dos flechas que salen de "verificar", no tienes un loop: tienes un DAG disfrazado.

1

Descubrir + planificar es barato; actuar y verificar es caro

Reunir contexto y decidir cuestan tokens. Actuar (ejecutar código, editar archivos) y verificar (ejecutar una prueba, llamar a otro modelo) cuestan tiempo y dinero de verdad. Optimiza el ciclo reduciendo vueltas, no los dos pasos baratos.

2

No todos los loops necesitan que se escriban explícitamente los cinco pasos

Un loop sencillo de «volver a intentar» puede combinar descubrir + planificar en un solo prompt. Pero los cinco siguen existiendo por debajo; nombrarlos ayuda a depurar cuando el loop se atasca.

Conceptos clave

5 pasos

Descubrir, planificar, actuar, verificar, parar

Cada paso es un nodo

El loop y el grafo de estos cinco nodos

Dos resultados de la verificación

Volver (ciclo) o parar (salir)

Actuar y verificar tienen un costo

Optimiza reduciendo vueltas

2

🛑 Escribe la condición de parada

Hay dos formas de que un loop se detenga: por éxito (el verificador aprobó) o por desistimiento (se alcanzó un límite y el loop no va a avanzar aunque insistas). Un loop que solo sabe detenerse cuando tiene éxito es un loop que puede ejecutarse para siempre: necesitas las dos salidas, no solo una.

💡 Detención por capas

Una buena condición de detención nunca es una sola línea. Es una pila de tres:

  • •Criterio normal — «las pruebas pasaron», «el revisor aprobó». El resultado esperado.
  • •Límite — un número concreto: máximo 10 vueltas o máximo $2 en tokens. Sin importar el criterio, eso corta el ciclo.
  • •Humano — si alcanzaste el límite sin éxito, alguien debe recibir un aviso. El abandono silencioso es el peor desenlace posible.

✓ Buena condición de parada

  • ✓Criterio verificable por código, no «parece bueno»
  • ✓Límite de vueltas explícito en el código del loop
  • ✓La deserción activa una alerta para una persona

✗ Mala condición de parada

  • ✗"El modelo decide cuándo parar" sin ningún límite por debajo
  • ✗Hay un límite, pero al alcanzarlo, simplemente se detiene sin avisarle a nadie
  • ✗Criterio de éxito: «el LLM dijo que quedó bien», sin referencia externa

⚠️ Atención: abandonar sin avisar parece un éxito

Un loop que llega al límite y simplemente se detiene, sin registrar nada ni avisarle a nadie, es el peor tipo de bug: parece que funcionó porque no hubo ningún error visible. Trata el abandono como un evento de primera clase: debe aparecer en algún lugar que una persona revise.

Conceptos clave

Éxito

El verificador aprobó

Deserción

Llegó al límite sin excederlo

En capas

Criterio + límite + humano

Nunca silenciosa

La deserción debe avisar

3

🎒 Decide qué atraviesa las vueltas

Cada vuelta del loop tiene acceso a una ventana de contexto — la cantidad de texto que el modelo puede «ver» de una vez, contando el prompt, el historial y el resultado de las herramientas. La pregunta que debes responder antes de escribir el loop es: ¿qué pasa de una vuelta a otra y qué queda atrás?

🆕 ¿Nuevo aquí? Ventana de contexto

Piensa en ella como una mesa de trabajo de tamaño fijo. Todo lo que el modelo necesita ver en esa vuelta —instrucciones, archivos, error anterior— tiene que caber encima. Pasar demasiado no cabe; pasar muy poco deja algo esencial afuera.

✗ Cargar demasiado contexto

  • ✗La ventana se satura: el modelo ignora u olvida partes relevantes
  • ✗Cada vuelta se vuelve más lenta y más costosa
  • ✗El ruido antiguo (intentos ya descartados) confunde la decisión actual

✗ Cargar muy poco contexto

  • ✗El loop repite el mismo error porque olvidó que ya lo había intentado
  • ✗Pierde una decisión tomada dos vueltas atrás y se contradice
  • ✗Reconstruye desde cero información que ya se había descubierto

📊 Lo que normalmente atraviesa

  • Objetivo original — siempre. Sin él, el ciclo se desvía.
  • Último error/resultado — lo que hay que corregir ahora.
  • Decisiones ya tomadas — resumidas, no todo el historial en bruto.
  • Contador de vueltas — para saber la distancia hasta el límite de abandono.

Esta decisión — qué se queda, qué sale, cómo resumir lo que sale — es el embrión de lo que la Trilha 4 llamará esquema de estado: una definición explícita y con nombre de lo que viaja entre nosotros. En un loop simple puedes decidirlo de manera informal. En un grafo con varios nodos, lo informal no alcanza.

Conceptos clave

Ventana de contexto

Mesa de tamaño fijo

Demasiado satura

Ignora u olvida lo relevante

De menos repite errores

Pierde lo que ya se intentó

Embrión del esquema de estado

Se formaliza en la Trilha 4

4

🔂 Reconoce el Ralph loop

Hay una versión radicalmente simple de loop que se hizo popular: ejecutar el mismo prompt repetidas veces hasta alcanzar el objetivo, sin cambiar nada entre vueltas salvo lo que el propio agente escribió en archivos. Esta técnica se popularizó a partir del método Ralph, de Geoffrey Huntley — de ahí el apodo «Ralph loop» que vas a escuchar por ahí.

1

El prompt permanece fijo, el mundo cambia

No reescribes el prompt en cada vuelta.

El agente lee el estado actual del repositorio (archivos, pruebas, TODOs) y el prompt genérico basta para decidir el siguiente paso, porque el propio entorno se convirtió en la memoria.

2

Funciona bien para tareas grandes y bien delimitadas

"Deja migrando este codebase toda la noche."

Cada vuelta avanza un poco, marca lo que ya hizo (en un archivo de progreso, por ejemplo) y la siguiente vuelta lee esa marca. El límite de vueltas y el límite de costo siguen siendo obligatorios.

💡 Simple no significa incorrecto, sino incompleto

El loop de Ralph no es una técnica «menor» ni ingenua: es el loop en su forma más cruda, y lo crudo funciona para muchas cosas. Lo que no resuelve por sí solo es exactamente lo que cubrirán los próximos dos temas (abierto x cerrado, anidamiento) y el Módulo 2.2 (el verificador): sin un verificador de verdad y sin saber cuándo parar, «ejecutar el mismo prompt» se convierte en «ejecutar el mismo prompt para siempre».

Conceptos clave

Prompt fijo

Mismo prompt en cada vuelta

Método Ralph

Geoffrey Huntley

Entorno = memoria

Los archivos llevan el progreso

Incompleto, no incorrecto

Aún necesita un verificador y un límite

5

🔄 Cierra el loop (abierto x cerrado)

Un loop cerrado mide el efecto de lo que acaba de hacer y usa esa medida para decidir la siguiente vuelta; eso se llama retroalimentación (en inglés, feedback): el resultado de una acción vuelve como entrada de la siguiente. Un bucle abierto solo ejecuta, sin mirar atrás.

⚠️ Sin medir el efecto, es un cron job costoso

Un script que se ejecuta cada hora y nunca comprueba si lo que hizo salió bien no es un loop de agente: es un programador de tareas. La diferencia entre un loop de verdad y un cron job disfrazado de IA es exactamente esta: el loop reacciona al propio resultado. Si quitas la retroalimentación, solo queda la repetición — y la repetición sin reacción es costosa y no aprende nada.

✓ Bucle cerrado

  • ✓"Ejecuté la prueba, falló en esta línea y corrijo esta línea"
  • ✓El verificador del tema 1 alimenta el siguiente «planificar»
  • ✓La calidad mejora (o al menos cambia) en cada vuelta

✗ Bucle abierto

  • ✗"Envía el correo todos los días a las 9 h", sin comprobar si alguien lo lee
  • ✗Repite la misma acción aunque siempre esté fallando
  • ✗No hay un "planificar" de verdad — solo "actuar" de nuevo

Y aquí hay un límite que conviene recordar: la calidad de medida y es el límite de calidad de todo el loop. Si tu verificador solo comprueba «el código se ejecutó sin errores», pero no «el código hace lo que debía», tu loop cerrado converge (llega a una respuesta estable), pero converge hacia algo equivocado. Cerrar el loop no basta; el trabajo consiste en cerrarlo bien.

Conceptos clave

Retroalimentación

El resultado se convierte en entrada

Cerrado vs. abierto

Reacciona vs. solo ejecuta

Sin medición = cron

Repetición costosa y ciega

La medida = límite

El bucle no supera la calidad de la medición

6

🪆 Anida loops (y escribe el primero)

Nada impide que un loop contenga otro loop dentro de sí. El loop externo decide qué hacer (qué tarea tomar a continuación), el loop interno ejecuta cómo hacer esa tarea específica hasta que su propio verificador la apruebe. Cada vuelta del bucle externo se convierte, a su vez, en un nodo del grafo más grande.

loop externo — elegir la próxima tarea tarea 1 (loop interno) actuar → verificar → volver tarea 2 (loop interno) actuar → verificar → volver tarea 3 (loop interno) actuar → verificar → volver el bucle externo vuelve para elegir la siguiente tarea; cada tarea es un nodo que oculta su propio bucle

Qué observar: el cuadro grande tiene su propia flecha de vuelta: es un loop. Cada cuadro pequeño dentro de él también tiene una flecha de vuelta: otro loop, oculto dentro del primero. Esto es anidamiento: un loop cuyos nodos, al abrirlos, son ellos mismos loops completos.

1

Anidar funciona bien mientras los loops no se comuniquen

Cada loop interno resuelve su tarea de forma aislada, sin necesidad de saber qué está haciendo el loop de la tarea vecina. Es un patrón legítimo y barato de escalar.

2

Cuando los internos necesitan hablar entre sí, el externo no basta por sí solo

Si la tarea 2 depende de algo que descubrió la tarea 1, «elegir la siguiente tarea» deja de ser suficiente: necesitas aristas explícitas entre los loops internos. Ese es el puente hacia el grafo, y la Ruta 3 explicará cuándo vale la pena.

🧪 Ejemplo práctico: un loop mínimo con parada por capas

Objetivo: ver los cinco pasos y la condición de parada por capas en funcionamiento, en un pseudocódigo breve que ejecutas en la consola del navegador (F12) o en 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);

Cómo verificar: debes ver { status: "sucesso", volta: 5, resultado: 7 } en la consola — el bucle encontró el objetivo en la 5.ª vuelta y se detuvo. Cambia MAX_VOLTAS para 3 y ejecútalo de nuevo: ahora debería aparecer { status: "desistencia", volta: 3 } — el límite se alcanzó antes del éxito.

Ahora cámbialo por el tuyo: reemplaza <agir> por tu acción real (llamar a un modelo, ejecutar un comando) y <verificar> por una prueba real. Si el "desistimiento" nunca aparece en tu registro real, probablemente tu límite es demasiado alto para que lo notes.

Verificación rápida (no bloquea nada): un loop da 40 vueltas sin medir nunca si el resultado mejoró, solo repitiendo la misma acción. Esto es:

Conceptos clave

Decide algo externo

Qué tarea tomar

El interno ejecuta

Cómo hacer esa tarea

Volver = nodo

Cada vuelta externa es un nodo más grande

Puente hacia el grafo

Cuando los internos necesitan comunicarse

📌 Resumen del módulo

✓
Cinco pasos — descubrir, planificar, actuar, verificar, detenerse. Cada uno es un nodo del grafo-loop.
✓
Detención por capas — criterio de éxito + límite + aviso a una persona. Nunca solo uno.
✓
Lo que atraviesa — objetivo, error reciente, decisiones ya tomadas. Es el embrión del state schema.
✓
Ralph loop — el mismo prompt en cada vuelta; el entorno lleva el progreso. Simple, no incorrecto.
✓
Cerrado vs. abierto — sin retroalimentación se convierte en un cron job costoso. La medida es el límite del ciclo.
✓
Anidamiento — lo externo decide, lo interno ejecuta. Cuando los componentes internos necesitan comunicarse, entra el grafo.

Próximo módulo:

2.2 — El verificador es el cuello de botella: por qué la calidad de tu ciclo nunca supera la calidad de quien comprueba el resultado.