- Transición de asistentes de código a agentes autónomos capaces de planificar y ejecutar flujos de trabajo complejos.
- Importancia crítica de los tests de comportamiento y la supervisión humana para evitar la generación de código ineficiente o inseguro.
- Necesidad de descomponer tareas complejas en micro-objetivos para maximizar la eficacia de la IA y evitar errores de arquitectura.
Seguramente te habrás fijado en que el mundo del desarrollo de software está dando un giro radical. Ya no hablamos solo de sugerencias de autocompletado que nos ahorran escribir una línea, sino de una auténtica revolución llamada programación agentica. Básicamente, estamos pasando de tener un asistente que nos sopla la respuesta a contar con un contratista digital capaz de planificar, escribir y corregir código de forma autónoma, manejando archivos y ejecutando comandos en la terminal mientras nosotros supervisamos la arquitectura.
Aunque en redes sociales se escuche mucho que ahora cualquiera puede montar un SaaS en una tarde sin saber programar, la realidad es que la experiencia técnica sigue siendo el factor determinante. Los agentes son una herramienta brutal para multiplicar la productividad, pero sin un ingeniero que sepa dónde están las trampas, el resultado puede ser un caos de código ineficiente o, peor aún, lleno de vulnerabilidades de seguridad. Es un cambio de mentalidad: ahora el programador actúa más como un director de orquesta que como el músico que toca cada nota.
¿En qué consiste realmente el flujo agentico?

A diferencia de los chats convencionales, los agentes de codificación operan sobre capas profundas del stack de desarrollo. Pueden navegar por el sistema de archivos, gestionar dependencias y razonar sobre repositorios enteros. Si el agente escribe una función que lanza un error, no se queda esperando a que el usuario le diga qué ha pasado; es capaz de leer el mensaje de error, analizar el fallo y aplicar un parche automáticamente.
Para sacarles provecho, han surgido conceptos como el Model Context Protocol (MCP), que permite conectar a la IA con herramientas externas (como Notion o bases de datos), y el uso de archivos de configuración como AGENTS.md o CLAUDE.md. Estos documentos actúan como un manual de instrucciones persistente donde le indicamos al agente las reglas del proyecto, cómo ejecutar los tests o qué convenciones de estilo seguir para que no improvise a su aire.
Lecciones aprendidas en el campo de batalla

Cuando el coste de generar código cae prácticamente a cero, la estrategia de desarrollo debe cambiar. Una de las claves es implementar para aprender; ya no tiene sentido pasar semanas puliendo una especificación teórica si puedes lanzar un prototipo rápido que revele problemas que ni te habías imaginado. En este entorno, reconstruir a menudo es una ventaja competitiva: puedes probar experimentos locos y descartarlos sin remordimientos.
Sin embargo, esta velocidad tiene un precio. Como el código es «barato», el riesgo es generar lo que algunos llaman código basura o slop. Para evitarlo, es vital invertir tiempo en tests de extremo a extremo. No necesitamos probar cómo hace la IA la tarea, sino que el producto final se comporte como esperamos. Los tests se convierten en el contrato conductual que nos da libertad para regenerar el código sin miedo a romperlo todo.
El límite de la autonomía: donde la IA flaquea

No todo es color de rosa. La experiencia real demuestra que los prompts de producto (instrucciones vagas como «hazme una página de perfil») suelen fallar estrepitosamente en proyectos complejos. Los agentes tienden a optimizar la respuesta para satisfacer el último prompt, perdiendo de vista la arquitectura global o ignorando requisitos críticos, como la unicidad de un campo en la base de datos, simplemente porque el test fallaba y decidieron saltárselo.
Otro punto débil es la gestión de casos muy específicos de infraestructura. Por ejemplo, al implementar clientes de almacenamiento con protocolos complejos como SSE-C en Google Cloud Storage, los agentes pueden entrar en bucles de error o intentar bajar la versión de una librería sin permiso. Aquí es donde el conocimiento del dominio marca la diferencia: un experto puede guiar al agente hacia la solución en minutos, mientras que alguien sin experiencia podría pasar días viendo cómo la IA se muerde la cola.
Estrategias avanzadas para ingenieros
Para no morir en el intento, lo ideal es descomponer las tareas en trozos pequeños y manejables. Las asignaciones demasiado grandes generan resultados inutilizables, y las demasiado pequeñas hacen que el overhead de gestión sea mayor que el beneficio. Una técnica efectiva es el uso de subagentes especializados: uno que se encargue solo de la investigación web y otro de la revisión de tipos, evitando así que el contexto principal se sature de información irrelevante.
Además, es fundamental desarrollar el criterio técnico o gusto. En un mundo donde la IA escupe código a velocidad luz, la única fuente de feedback inmediata es el propio desarrollador. Saber detectar olores de código y anticipar fallos de seguridad (como ataques XSS al renderizar URLs) es lo que separa a un usuario de herramientas de un verdadero ingeniero de software.
Optimización del contexto y herramientas
El manejo del contexto es el juego real. Debido a que los LLMs tienen una ventana limitada, es recomendable usar compacción de contexto (resumir la conversación) o reiniciar el chat para tareas no relacionadas. También es muy útil el estándar llms.txt, que proporciona documentación densa y eficiente para que la IA no tenga que leer páginas HTML llenas de ruido.
En cuanto a las herramientas, opciones como Cursor o Claude Code están liderando el camino, permitiendo una integración total con el IDE. La capacidad de ejecutar el código en entornos aislados como contenedores Docker permite activar el modo YOLO (ejecución sin confirmación manual), acelerando la entrega siempre que se mantenga una disciplina férrea de revisión de código posterior.
La programación agentica no elimina al programador, sino que eleva su función hacia la orquestación y el diseño sistémico. Si bien la velocidad de implementación ha crecido exponencialmente, la responsabilidad sobre el mantenimiento, la seguridad y la arquitectura recae más que nunca en el humano. Al final, la combinación de una gran intuición técnica con la capacidad de delegar la implementación mecánica en agentes autónomos crea una ventaja competitiva imbatible en el desarrollo moderno.