Cómo destrabar a tu agente de programación con IA cuando repite el mismo error una y otra vez
Por VCA Newsroom
Le dices a tu agente de programación con IA que deje de usar una función obsoleta. Se disculpa, reescribe el código… y vuelve a usar la misma función obsoleta. Lo corriges por tercera vez. Mismo resultado. Este es el "bucle infernal" (doom loop), y todo el que construye con IA acaba topándose con él. La buena noticia: una vez que entiendes por qué ocurre, la solución es rápida y repetible.
Por qué los agentes se quedan atascados
Un agente de programación con IA no recuerda tu última corrección como lo haría una persona. Trabaja a partir de su contexto: la transcripción en curso de tu conversación más los archivos que ha leído. Dos cosas fallan en una sesión larga:
- Los errores se acumulan. Si una suposición equivocada entra en el contexto al principio, cada respuesta posterior se construye sobre ella. Tu corrección es solo un mensaje más que compite con todo el texto anterior que sigue diciendo lo incorrecto.
- Deterioro del contexto (context rot). A medida que la ventana se llena a lo largo de una sesión larga, la calidad de la salida se degrada gradualmente. El agente empieza a perder de vista instrucciones que le diste veinte mensajes atrás.
Así que cuando un agente repite un error, normalmente no es que sea testarudo: se está ahogando en un contexto contaminado. Arregla el contexto, no la actitud del agente.
Paso 1: Reinicia en lugar de volver a explicar
Tu instinto es explicar la corrección con más énfasis. Resístelo. Cada mensaje extra se suma al contexto contaminado. En su lugar, elimina el contexto malo:
- En Claude Code,
/rewindretrocede la conversación y los cambios de archivos a un punto de control anterior; úsalo cuando los últimos pasos salieron mal pero el trabajo previo vale la pena conservarlo (pulsa dos vecesEscpara el mismo menú)./clearborra la conversación por completo y empieza de cero sin tocar tu código; úsalo cuando toda la sesión se ha descarrilado./compactresume el historial en una forma más breve cuando quieres seguir adelante con una huella más ligera. (Consulta las buenas prácticas de Claude Code.) - En Cursor o una herramienta basada en chat, inicia un nuevo chat para la tarea atascada en lugar de continuar la que quedó envenenada.
Un contexto limpio con una instrucción clara supera a un contexto largo con cinco instrucciones cada vez más frustradas.
Paso 2: Dale a la corrección un hogar permanente
Una corrección que escribes en el chat se esfuma cuando termina la sesión. En la siguiente sesión, el agente comete el mismo error, porque eliminaste la solución de su memoria al cerrar la ventana. Coloca las reglas duraderas donde el agente las lee cada vez:
- Claude Code: un archivo
CLAUDE.mden la raíz de tu repositorio. - Cursor: un archivo de reglas (p. ej.
.cursor/rules/). - Cualquier agente: un archivo
AGENTS.md, hoy ampliamente compatible.
Escribe la regla como una afirmación clara y verificable. No "intenta escribir código limpio", sino: "Usa fetch, nunca axios. Este proyecto no tiene dependencia de axios".
Paso 3: Haz que la restricción sea imposible de pasar por alto
Aquí va un ejemplo concreto. Supongamos que tu agente sigue importando una librería de fechas que eliminaste:
// Agent keeps writing this:
import moment from 'moment'
const now = moment().format('YYYY-MM-DD')
Le has dicho tres veces que use en su lugar la API integrada Intl. En vez de una cuarta corrección, añade una línea a CLAUDE.md:
## Dates
Never import `moment` or `dayjs` — they are not installed.
Format dates with the built-in `Intl.DateTimeFormat`. Example:
`new Intl.DateTimeFormat('en-CA').format(new Date())` → "2026-07-04"
La diferencia: le diste una regla más un ejemplo funcional. Los agentes siguen un ejemplo copiable de forma mucho más fiable que una instrucción abstracta, y ahora la regla se carga automáticamente al inicio de cada sesión.
Paso 4: Dale al agente una forma de verificarse a sí mismo
Los agentes repiten errores que no pueden ver. Cierra el ciclo dándole al agente una señal que pueda leer:
- Una regla de linter o una prueba que falle ante ese error exacto. Si
momentestá prohibido por tu linter, el agente ejecuta el linter, ve el error y lo corrige, sin que tú tengas que intervenir. - Una lista de verificación rápida de "definición de terminado" en tu prompt: "Antes de terminar, ejecuta
npm run lintynpm testy confirma que ambos pasan".
Esta es la mejora más importante de todas. Un error que el agente puede detectar por su cuenta deja de ser un error que tú tienes que atrapar.
Paso 5: Reduce la tarea
Si un agente entra en bucle ante una petición grande y vaga ("refactoriza el sistema de autenticación"), a menudo está perdido en el alcance, no en el detalle. Divide el trabajo en un solo paso pequeño y verificable a la vez —"extrae la lógica de renovación de tokens a su propia función, sin cambiar el comportamiento"— y confirma cada uno antes de avanzar. Las tareas pequeñas dejan menos margen para divagar.
El patrón
Cuando tu agente no deja de repetir un error, recorre la lista: reinicia el contexto, deja la regla por escrito donde persista, muestra un ejemplo, dale una verificación que pueda ejecutar por sí mismo y acota la tarea. Notarás el hilo conductor: no estás discutiendo con el agente, estás arreglando lo que puede ver. Haz eso y el bucle infernal se convierte en un desvío de dos minutos en lugar de una tarde perdida.
SOURCES
Auto-generated by Vibe Coding Academy on July 4, 2026, grounded in the real sources linked above. We review for accuracy, but please verify time-sensitive details against the primary sources.
Build Blueprint · Creator
¿Tienes una idea? Consigue la especificación que tu agente de IA puede construir.
Describe cualquier producto y obtén un blueprint de construcción completo: stack, modelo de datos, pantallas, APIs y un prompt listo para pegar en Claude Code o Cursor. Exporta a PDF.
Abrir el Blueprint ▸