El blog de Deska

El arreglo rompió otra cosa: Cómo depurar regresiones de agentes de IA

Descubre por qué el arreglo rompió otra cosa al usar agentes de IA y cómo mantener la integridad del sistema con mejores pruebas y observabilidad.

· 11 min de lectura

La sensación es universal entre los desarrolladores: fusionas un parche para un error específico solo para darte cuenta de que el arreglo rompió otra cosa totalmente distinta. Este fenómeno, conocido como regresión, ha cobrado una nueva dimensión con el auge de los agentes de programación con IA. Aunque estas herramientas pueden generar miles de líneas de código en segundos, a menudo carecen del contexto global de un sistema complejo. Cuando un agente toca una función de utilidad o un módulo compartido, el radio de impacto de sus cambios puede extenderse mucho más allá del archivo inmediato que está editando. Comprender por qué ocurren estas regresiones y cómo detectarlas es esencial para cualquier flujo de trabajo de ingeniería moderno.

Por qué los agentes introducen regresiones

La programación manual tradicional implica que el desarrollador mantiene un modelo mental del sistema. Aun así, se cometen errores. Los agentes de IA, sin embargo, operan en una ventana de contexto. Ven lo que les proporcionas, pero pueden no percibir las dependencias descendentes ubicadas en una carpeta que no han escaneado.

Falta de contexto arquitectónico profundo

Un agente podría optimizar una consulta de base de datos para que una página específica cargue más rápido. Al hacerlo, podría cambiar una interfaz compartida de la que dependen otros tres servicios. Debido a que la tarea del agente era "arreglar la consulta lenta", prioriza esa métrica de éxito sobre la estabilidad de todo el sistema. Si la suite de pruebas no cubre esos tres servicios, el agente asume que el trabajo se ha realizado perfectamente.

Efectos secundarios alucinados

Los modelos de lenguaje extensos (LLM) son probabilísticos. A veces, un agente sugiere una actualización de librería o un cambio de configuración que parece lógico pero introduce problemas sutiles de sincronización o condiciones de carrera. Estos son los errores más difíciles de rastrear porque el arreglo rompió otra cosa de una manera no determinante.

Estrategias para mantener la estabilidad

Para mitigar estos riesgos, los desarrolladores deben envolver los flujos de trabajo de los agentes en un marco riguroso de pruebas y observabilidad. No puedes tratar a un agente como a un desarrollador senior que conoce la historia del código; debes tratarlo como a un colaborador muy rápido y muy junior que requiere límites estrictos.

  • Pruebas unitarias robustas: Cada cambio de lógica debe ir acompañado de un caso de prueba. Si el agente no escribe la prueba, debes hacerlo tú.
  • Pruebas de humo de integración: Antes de fusionar código generado por agentes, ejecuta una suite que pase por las rutas principales de usuario.
  • Inspección visual: Para cambios en la interfaz de usuario, observa el resultado renderizado en diferentes estados, no solo el diff del código.
  • Ejecución localizada: Ejecuta el agente en un entorno donde puedas ver inmediatamente el impacto de sus acciones.

Monitoreo del comportamiento del agente en tiempo real

Una de las formas más efectivas de asegurar que un agente no destruya tu entorno es a través de una observabilidad de alto nivel. Las herramientas que proporcionan una representación visual del espacio de trabajo te permiten ver al agente trabajar en una esquina mientras tus registros o el estado de tu aplicación se actualizan en otra.

Cuando usas coding agents, la configuración ideal implica ver la salida de la terminal, los cambios de archivos y la aplicación en ejecución simultáneamente. Aquí es donde el concepto de un lienzo infinito se vuelve valioso. Al organizar tus panels lado a lado, puedes detectar el momento exacto en que un proceso en segundo plano falla debido a un cambio de código.

Comparación de enfoques de orquestación de agentes

Diferentes herramientas manejan el problema de "el arreglo rompió otra cosa" de diversas maneras. Es importante elegir un entorno que se adapte a tu estilo de depuración.

CaracterísticaAgentes solo CLIAgentes integrados en IDELienzo de escritorio (Deska)
VisibilidadBaja (Flujo de texto)Media (Archivo activo)Alta (Múltiples paneles)
ContextoHistorial de terminalPestañas abiertasEstado total del espacio
DepuraciónCambio manual de comandosDepurador integradoTerminales en paralelo
VerificaciónSalida de CLIEjecutor de pruebasNavegador + Terminal + Editor

Las herramientas de CLI son excelentes por su velocidad pero pueden ser opacas. Las integraciones de IDE son familiares pero a menudo limitan tu vista a uno o dos archivos. Un enfoque basado en lienzo, como el que se encuentra en Deska, te permite mantener un browser widget abierto junto a tus hilos de agentes. Esto significa que puedes ver cómo se rompe el frontend en tiempo real mientras el agente modifica el backend.

El papel del desarrollo local-first

La privacidad y la velocidad no son las únicas razones para preferir un enfoque local-first. Cuando un agente trabaja en tu máquina local, tiene acceso a tus compiladores, linters y ejecutores de pruebas reales. Si un arreglo rompe otra cosa, el ciclo de retroalimentación local es mucho más rápido que esperar a que una tubería de CI/CD falle veinte minutos después.

El uso de herramientas como Claude Code u OpenCode dentro de un entorno local asegura que el agente pueda ejecutar npm test o pytest inmediatamente después de una modificación. En Deska, puedes ejecutar estos agentes en terminals dedicados mientras el asistente Ask Deska te ayuda a gestionar el diseño o a encontrar registros específicos. Esta integración estrecha reduce las regresiones ocultas que a menudo se filtran al usar IDEs basados en la web.

Cómo recuperarse de un arreglo fallido

Cuando te das cuenta de que el arreglo rompió otra cosa, el primer paso es detener al agente y evaluar el estado de los code and git files.

  1. Revierte al último commit estable conocido.
  2. Aísla el cambio que causó el error aplicando la lógica del agente manualmente en pequeños incrementos.
  3. Agrega una prueba de regresión que cubra específicamente el nuevo error.
  4. Vuelve a ejecutar al agente con instrucciones más específicas para evitar la regresión.

La documentación es tu mejor amiga aquí. Mantener notes sobre por qué se tomaron ciertas decisiones arquitectónicas puede ayudarte a proporcionar mejores prompts al agente en la siguiente iteración.

FAQ: Preguntas comunes sobre depuración de agentes

¿Por qué mi agente de IA sigue rompiendo la compilación?

Esto suele suceder porque el agente no conoce las restricciones globales o las definiciones de tipos fuera de su contexto inmediato. Asegúrate de proporcionar suficiente contexto a nivel de proyecto o de usar una herramienta que pueda indexar todo el repositorio.

¿Cómo evito que los agentes creen dependencias circulares?

Establece reglas de linting estrictas e inclúyelas en el ciclo de retroalimentación del agente. Si el agente puede ver los errores de linting en la terminal, a menudo puede autocorregirse antes de que llegues a ver el código.

¿Puedo monitorear el trabajo del agente desde mi teléfono?

Algunas plataformas ofrecen una aplicación mobile complementaria. Esto te permite verificar si una tarea larga del agente ha terminado o si la compilación ha fallado mientras estás lejos de tu escritorio, utilizando un relevo seguro para mantenerte conectado a tu sesión local.

Mejora tu flujo de trabajo con Deska

Si estás cansado de cambiar de pestaña para descubrir por qué un arreglo rompió otra cosa, considera un espacio de trabajo más visual. Deska ofrece una aplicación de escritorio gratuita para Mac, Windows y Linux que te permite ejecutar tus agentes favoritos como Claude Code o Codex CLI lado a lado en un lienzo infinito.

Al ser local-first, tus llaves de API y tu código permanecen en tu máquina. Puedes usar tus propias llaves con el modelo BYOK o suscribirte para acceso gestionado. Al ver tu editor, tu terminal y el navegador de tu aplicación todo al mismo tiempo, puedes capturar regresiones antes de que lleguen a producción. Descarga la aplicación en /download y comienza a construir de manera más confiable.

💡 Ideas+🐛 BugsPropón una feature o reporta un bug