Trabajando con agentes de IA a diario, ha surgido una tendencia preocupante: los equipos, incluidos ingenieros experimentados, han dejado de empujar para reescribir o reestructurar las partes más complejas de sus sistemas. No se trata de la calidad del código que los agentes escriben, sino de una decisión que solía ocurrir casi de forma refleja y ahora rara vez sucede - la decisión de detenerse y decir que esto se ha vuelto inmanejable, debemos refactorizarlo antes de seguir adelante.

Historicamente, los límites de contexto humano han dado forma a cómo construimos software. Una computadora puede contener mucho más en 'memoria de trabajo' que un humano. No podemos razonar sobre un sistema complejo cuando se ramifica en decenas de direcciones, cada rama con sus propias implicaciones, todas interconectadas. Así que dividimos los sistemas en módulos lo suficientemente pequeños como para entenderlos en aislamiento, y luego nos esforzamos por conectar esos módulos entre sí con interfaces que también pudiéramos entender.

El reflejo de refactorización, activado por un humano que se pierde en el código, ha sido una de las fuerzas más importantes que mantienen los sistemas de larga vida mantenibles. Sin embargo, los agentes de IA no están limitados por los límites de contexto humano de la misma manera. Un agente puede leer la función enredada, rastrear cada llamada y dar sentido al desorden que habría detenido a un humano. Puede agregar la próxima rama correctamente, y la siguiente, trabajando con confianza dentro del código que ningún humano en el equipo entiende completamente ya.

El problema es que los agentes de IA nunca se pierden, así que la señal de refactorización nunca se dispara. El agente no tiene reflejo que diga 'esto se ha vuelto inmanejable, debemos detenernos y refactorizar'. Simplemente sigue agregando ramas al montón, a menos que se le instruya específicamente para retroceder y cuestionar la estructura. Esto puede llevar a un sistema en el que ningún desarrollador en el equipo puede razonar completamente sobre partes clave del código, las revisiones se convierten en sellos de goma y el equipo confía cada vez más en el agente precisamente porque ya no entienden el código ellos mismos.

Mantener la fuente organizada no es solo un favor que hacemos a los humanos; beneficia a los humanos, mejora la precisión de los agentes y reduce el costo de token de cada cambio que haremos en ese código nuevamente. El reflejo de refactorización que estamos en riesgo de perder nunca fue solo sobre la comodidad humana - resulta que también es buena economía. Para mitigar este riesgo, debemos volver a introducir el punto de control deliberadamente, ya que ya no sucede por sí solo, formulando preguntas como '¿Todavía entiendo esta parte del sistema, o he estado dejando que el agente la entienda por mí?' y '¿Si un humano tuviera que depurar esto sin el agente, podría seguirlo?'.

También podemos impulsar parte de esto en el arnés - instruyendo a nuestros agentes para que señalen cuando un módulo ha crecido más allá de un tamaño o complejidad de ramificación razonable, para proponer refactorizaciones en lugar de solo extender, y para señalar cuando un cambio se está volviendo difícil de razonar. La responsabilidad ultimate recae en nosotros, porque somos los que necesitamos poder entender nuestros sistemas, y somos los que perdemos esa capacidad si no estamos prestando atención.

Este artículo fue escrito con la asistencia de IA.
News Factory APP - noticias agénticas para impulsar tu SEO y AEO.