Saltar al contenido principal
Principiante IACódigoHerramientas

Mi Agente de IA Ha Entrado en un Bucle Infinito: Cómo Pararlo y Prevenirlo

¿Tu agente de IA (Cline, Cursor, Claude Dev) no para de ejecutar comandos en bucle? Por qué ocurre, cómo detenerlo sin perder tu trabajo y cómo prevenirlo.

Fran Cobos 6 min de lectura 1116 palabras

Tabla de contenidos

Son las 11 de la noche. Le pides a Cline que “arregle el error de TypeScript en el módulo de auth”. Aceptas la primera edición. El agente ejecuta el build. Falla con otro error. Edita otro archivo. Build de nuevo. Falla de nuevo. Edita. Build. Falla. Edita.

Miras la factura de la API: 47 llamadas en 3 minutos. $4.20 quemados.

El agente estaba en un bucle infinito — intentando arreglar un error que su propio fix anterior creó. Es el problema más caro y frustrante de los agentes de IA autónomos.

Por qué los agentes entran en bucle

El ciclo clásico: fix → nuevo error → fix → error original

Iteración 1: Error — "Type 'string' is not assignable to type 'number'"
  → Fix: cambia el tipo a string
Iteración 2: Error — "Argument of type 'string' is not assignable to parameter of type 'number'"
  → Fix: cambia el parámetro a string
Iteración 3: Error — "Type 'string' is not assignable to type 'number'" (en otro archivo)
  → Fix: cambia ese tipo también
Iteración 4: Error — el tipo original que cambió en iteración 1 ahora falla
  → Vuelve al inicio. Bucle infinito.

El agente no tiene memoria de su estrategia. Cada iteración la trata como un problema nuevo. No sabe que ya intentó la misma solución hace 3 pasos.

Las 5 situaciones que provocan bucles

SituaciónPor qué falla el agente
Errores de tipos en cadenaArreglar un tipo rompe otro archivo que depende de él
Imports circularesA importa B, B importa A — el agente no detecta el ciclo
Configuración de buildtsconfig, webpack, vite.config — el agente cambia opciones al azar
Tests que fallan por mocksActualiza el código pero no los mocks, o viceversa infinitamente
Errores de permisos/entornoEl agente no puede arreglar lo que no es código (PATH, permisos de archivo)

Cómo parar un agente en bucle

1. Parada inmediata

HerramientaCómo parar
Cline / Claude DevBotón “Cancel” en la barra del agente, o cierra la pestaña del chat
CursorEscape o botón “Stop” en la ventana del composer
AiderCtrl+C en la terminal
GitHub Copilot AgentBotón “Stop” en el panel de chat

2. Si no responde al cancel

# Mata la terminal integrada de VS Code
# Ctrl+Shift+P → "Terminal: Kill Active Terminal"

# O cierra VS Code directamente — no perderás archivos (auto-save)

3. Recuperar tu código tras un bucle

# Ver qué archivos cambió el agente
git diff --name-only

# Ver los cambios exactos
git diff

# Deshacer TODO lo que hizo el agente
git checkout .

# O, si hay cambios que sí querías, deshaz archivo por archivo
git checkout -- src/archivo-que-no-quieres.ts

Si usas Aider, cada iteración es un commit — puedes hacer git revert del último commit del agente sin perder nada.

Cómo prevenir los bucles

1. Configura un límite de iteraciones

Cline: En la configuración de la extensión:

{
  "cline.maxIterations": 5,
  "cline.autoApprove": false  // NUNCA actives auto-approve sin límite
}

Cursor: En Settings → AI → Max iterations: pon 5-10 como máximo.

API directa: Si tienes tu propio loop de agente:

const MAX_ITERATIONS = 5;
let iterations = 0;

while (hasErrors && iterations < MAX_ITERATIONS) {
  const fix = await agent.suggestFix(currentError);
  await applyFix(fix);
  const result = await runBuild();
  hasErrors = !result.success;
  iterations++;

  if (iterations >= MAX_ITERATIONS) {
    console.log('⚠️ Límite de iteraciones alcanzado. Revisión manual necesaria.');
    break;
  }
}

2. No le des autonomía total

// ❌ Prompt peligroso
"Arregla todos los errores de TypeScript del proyecto hasta que compile"

// ✅ Prompt controlado  
"Arregla el error de tipo en src/auth/service.ts línea 45. 
Solo modifica ese archivo. Si el fix requiere cambiar otros archivos, 
dime cuáles ANTES de hacerlo."

3. Divide los errores en tareas pequeñas

En vez de “arregla los 15 errores de TypeScript”, haz:

Tarea 1: "Arregla el error en src/auth/service.ts:45"
→ Verifica que compila
Tarea 2: "Arregla el error en src/users/controller.ts:12" 
→ Verifica que compila
...

Un error a la vez. Si un fix introduce un error nuevo, lo detectas inmediatamente.

4. Usa el modo “Dry Run” o “Plan”

Antes de que el agente ejecute cambios, pídele un plan:

ANTES de hacer cambios, analiza el error y dame:
1. Qué archivos necesitas modificar
2. Qué cambio harás en cada uno
3. Qué otros archivos podrían verse afectados

NO hagas cambios todavía. Solo el plan.

Revisa el plan. Si ves que va a tocar 10 archivos para un “error simple”, probablemente el agente no entiende el problema y va a entrar en bucle.

5. Guarda un checkpoint antes de cada tarea del agente

# Antes de darle una tarea al agente
git add -A && git commit -m "checkpoint: antes de refactor auth"

# Si el agente la lía, vuelves al checkpoint
git reset --hard HEAD

Coste real de un bucle: Caso con números

Un bucle típico de 20 iteraciones con Cline + Claude Sonnet 4:

ConceptoTokensCoste
Input por iteración (código + instrucciones)~8.000$0.024
Output por iteración (fix + explicación)~2.000$0.030
20 iteraciones200.000$1.08

Con Claude Opus 4 el mismo bucle cuesta ~$6.40. Con GPT-4.1 cuesta ~$1.60.

Si el agente está en modo autónomo y nadie lo para, puede hacer 100+ iteraciones antes de que llegues al límite de la API. Eso son $5-30 quemados por un error que podrías haber arreglado manualmente en 5 minutos.

Para controlar estos costes, revisa cómo programar con IA sin arruinarte y caveman prompting para ahorrar tokens.

Checklist anti-bucle

  • Límite de iteraciones configurado (5-10 max)
  • Auto-approve desactivado
  • Commit/checkpoint antes de cada tarea del agente
  • Tareas pequeñas y específicas (un error a la vez)
  • Plan antes de ejecución en tareas complejas
  • git diff después de cada tarea para revisar los cambios
  • Rate limit o presupuesto diario configurado en la API

Artículos relacionados

Fran Cobos

Fran Cobos

Desarrollador Full Stack especializado en IA aplicada, automatización y desarrollo web. Escribo sobre herramientas, tutoriales y casos reales para programadores.

¿Necesitas desarrollo a medida?

Apps web, IA, módulos ERP — cuéntame tu proyecto.