Pinguy Learning
Temario · lección 54 de 74
0Empieza aquí
1Por qué fallan los agentes
2Qué es un harness
3Patrones de agentes
4Herramientas
5Ingeniería de contexto
6El repositorio como memoria
7Tareas largas
8Alcance y “hecho” de verdad
9Observabilidad y estado limpio
10Loops y grafos
11Harness reales
12Proyecto final
Loops y grafos· 8 min de lectura

Del prompt al loop

En 30 segundos

Un loop sustituye a la persona que escribe cada instrucción. El más simple, /goal, tiene tres partes: un objetivo, una forma de verificarlo y una condición de parada.

Tú eres el motor

Hasta aquí del curso, todo suponía que estás delante del teclado: terminas una función, lees el progreso, piensas qué toca, escribes la siguiente instrucción. Tienes un buen harness, pero cada paso arranca contigo. Si te vas a dormir, el agente se para.

Un loop (bucle autónomo) le pasa ese botón de inicio al sistema. No pierdes el control: lo subes un nivel. Ya no escribes la instrucción de cada paso; diseñas el sistema que las escribe.

/goal, el loop más pequeño

Claude Code y Codex ofrecen un comando /goal. Le das un estado final en lugar de un siguiente paso:

/goal "Todos los tests pasan, cero avisos de lint, cambios fusionados en main"

El agente prueba, falla, cambia de enfoque y repite hasta cumplirlo o agotar su presupuesto. La diferencia con un prompt normal:

Prompt tradicional/goal
DasEl siguiente pasoCómo es el estado final
El agenteEjecuta una vezItera hasta lograrlo
Quién juzga si terminóTúUna condición de parada comprobable
¿Puedes irte?NoSí

Cuatro tipos de loop

Se distinguen por cómo arrancan y cómo paran:

TipoArrancaParaEjemplo en Claude Code
Por turnosEscribes cada mensajeTú o el agente deciden que bastaChat normal
Por objetivoDas un objetivoUn evaluador independiente confirma, o se agotan los turnos/goal
Por tiempoUn intervalo programadoLo paras tú/loop
Por eventosAlgo externo (PR abierto, CI fallida)Maneja el evento o agota reintentosRoutines

No compiten: son herramientas para distintos trabajos.

/goal no es /loop

Aunque suenan parecido, resuelven cosas opuestas. /goal es una tarea grande que avanza hacia una meta, como un maratón. /loop es una acción pequeña repetida cada cierto tiempo, como un despertador: cada ejecución es independiente y no recuerda la anterior.

La prueba de una frase: ¿esto tiene un final? Si lo tiene, /goal. Si solo quieres vigilar algo, /loop. Meter «sigue implementando los pagos» en un /loop es el error clásico: cada vuelta empieza de cero.

Dentro y fuera del loop

Estar dentro es lo que hacías hasta ahora: tú inspeccionas, tú corriges la instrucción, tú pasas a lo siguiente. Estar fuera es que el sistema descubre trabajo, lo reparte, lo verifica, apunta el estado y decide el siguiente paso. Tu papel se reduce a tres cosas: fijar el objetivo y la parada antes, revisar la salida después y ajustar las reglas cuando algo se desvía. El apalancamiento pasa de «escribir el prompt perfecto» a «diseñar el loop correcto».

Esto no sustituye al harness: lo necesita. El harness hace fiable una ejecución; el loop encadena ejecuciones sin ti.

Plantilla mínima de objetivo

El material del curso trae una plantilla de objetivo. Su esqueleto:

## Objetivo
Implementar la función X con tests.

## Criterios de aceptación (comprobables con un comando)
- [ ] `npm test` pasa completo
- [ ] `npm run lint` sin errores

## Alcance
- Se puede tocar: src/x/, tests/
- No se toca: el archivo de entrada, migraciones, versiones de dependencias

## Condiciones de parada
- Se cumplen todos los criterios
- Máximo 20 turnos
- 3 rondas seguidas sin avanzar (mismo error)
- Bloqueo que no puede resolver solo
Comprueba lo aprendido

¿Qué tres partes tiene un loop de tipo /goal?

Con un objetivo, una forma de verificarlo y una condición de parada, el agente puede iterar sin ti. Todo lo demás se construye sobre eso.

Fuentes: Learn Harness Engineering, lección 13