- En la realidad actual, donde los modelos de IA para programación ni siquiera pueden ejecutar de forma confiable una sola instrucción, se están generando expectativas excesivas sobre la programación agéntica que opera de manera autónoma en segundo plano
- El autor experimentó problemas con GPT-5 y Gemini Pro incluso después de proporcionar una función de Golang de unas 100 líneas como código de referencia: ambos omitieron parte de la lógica o dejaron actualizaciones sin aplicar
- Que un sistema agéntico procese de forma autónoma 50 archivos y múltiples funciones es poco realista con el nivel tecnológico actual, y existe el riesgo de que termine consumiendo más tiempo en depuración
- Las respuestas de la comunidad se dividen entre quienes opinan que puede usarse con éxito de forma limitada mediante prompting estructurado, documentación y verificación paso a paso, y quienes creen que lo agéntico todavía no es práctico
- Los LLM actuales son sistemas basados en conocimiento, no inteligencia, así que el enfoque realista es un uso instrumental en el que el desarrollador proporciona el contexto directamente y valida cada paso
Planteamiento del problema por parte del autor original
- Caso de fallo con una instrucción simple: proporcionó una función de Golang de 100 líneas como referencia y pidió actualizar otra función con la misma estructura, pero tanto GPT-5 como Gemini Pro omitieron parte de la lógica o dejaron cambios sin aplicar
- Lo poco realista de la programación agéntica: si ni una sola función puede resolverse correctamente, preocupa que un enfoque agéntico que modifique de forma autónoma múltiples funciones en 50 archivos provoque todavía más problemas
- Pregunta sobre la actualización de un archivo de 6000 líneas: pidió a la comunidad opiniones sobre cómo modificar de forma segura un archivo de unas 6000 líneas, por ejemplo en una actualización de versión de Stripe
Casos de uso positivos y metodologías
Enfoque de documentación e indexación sistemáticas
- Uso de archivos de referencia Markdown: guardar referencias en archivos
.md y pedirle a la IA que los lea mejora la consistencia y la precisión
- Ejemplo de prompt: "Consulta el archivo adjunto
goLang_Update_reference.md, resume los puntos clave de la función update y, con base en ello, redacta un borrador de actualización del software"
- Construcción de un índice local: en archivos grandes (más de 6000 líneas), escanear en bloques de 1000 líneas para crear un índice con nombres de funciones y referencias de línea
- En trabajo de frontend, se puede usar un índice separado solo para un área específica, como
fr.index.md
Gestión de agentes y estructuración del trabajo
- Especialización de agentes: organizar agentes por roles como diseño (architect), exploración de código (codeseeker) y programación (coder), y proporcionar archivos de reglas
.md para cada uno
- Enfoque de slice vertical: dividir el trabajo en unidades pequeñas de funcionalidad que puedan completarse con menos de 100 mil tokens
- Si se superan los 100 mil tokens, la probabilidad de mal funcionamiento del agente aumenta drásticamente
- Forzar la documentación del trabajo: hacer obligatoria la actualización de
docs/TASKS.md, docs/WORKLOG.md y docs/DECISIONS.md para asegurar continuidad
Uso de Plan Mode y Ask Mode
- Plan Mode: revisar el proyecto completo, elaborar un plan según la solicitud y luego avanzar paso a paso
- Ask Mode: útil para consultar el codebase, explorar ideas, revisar opciones y como sustituto de Google/StackOverflow
Enfoque de pruebas unitarias primero
- Desarrollo guiado por pruebas: escribir primero las pruebas unitarias antes de crear la función, y hacer que la IA genere iterativamente código que las pase
- La probabilidad de obtener código funcionalmente correcto aumenta mucho, y luego solo quedan tareas de optimización y limpieza
Posturas escépticas y reconocimiento de límites
Límites reales de lo agéntico
- Trabajar sin supervisión es una temeridad: con el nivel tecnológico actual, asignar tickets y dejar que trabaje de manera autónoma en segundo plano tiene una alta probabilidad de fallar
- Posibilidad de mentir: el modelo tiene más probabilidades de generar alucinaciones que aciertos, y en el peor caso puede destruir código existente
- Redundancia de Planning Mode: pedirle un plan detallado al modelo base ya es suficiente; Planning Mode no aporta realmente una función nueva
Restricciones inherentes de los LLM
- Predicción, no razonamiento: los modelos funcionan prediciendo la siguiente palabra sin verificar el resultado, así que la confiabilidad seguirá siendo inestable hasta que mejoren el grounding, la memoria y el feedback
- Base de conocimiento sin inteligencia: un LLM es una base de conocimiento sofisticada sin inteligencia, por lo que el desarrollador debe aportar directamente la inteligencia (BYOI: Bring Your Own Intelligence) y el contexto
- Falta de memoria: el modelo no tiene memoria real y depende solo del contexto y de la caché de contexto, por lo que el contexto se reinicia cada vez que se inicia un chat nuevo
Sesgos de lenguaje y datos
- Desventaja relativa de Golang: Golang tiene menos codebases públicos que Python o JavaScript, por lo que el modelo dispone de menos patrones y convenciones aprendidos
- Ese es un factor estructural que dificulta obtener resultados de edición o transformación consistentes
Guía práctica para un uso exitoso
Prompting y provisión de contexto
- Instrucciones claras y detalladas: usar gramática y puntuación correctas, y dar instrucciones explícitas en lugar de expresiones ambiguas
- Referencia explícita a todos los archivos relevantes: si no se especifican todos los archivos que el agente debe usar, aumenta la probabilidad de generar código espagueti
- Configuración de archivos de reglas: establecer reglas para todo el workspace y archivos de reglas por proyecto para guiar una generación de código consistente
- Uso de @Docs: aprovechar la referencia a documentación para proporcionar al agente el conocimiento clave que necesita (aunque en algunas versiones funciona de manera inestable)
Alcance del trabajo y verificación
- Dividir en unidades pequeñas: separar el trabajo en la unidad mínima manejable, validar cada etapa y solo entonces pasar a la siguiente
- Revisión en tiempo real: revisar en tiempo real todo el código generado y pedir correcciones de inmediato para evitar código espagueti
- Respaldo y control de versiones: crear respaldos en cada etapa y usar sistemas de control de versiones como GitHub
- Ejecutar pruebas: correr de forma incremental las pruebas afectadas con
pytest --testmon -q y ejecutar la suite completa antes de terminar
Modularización y estructura del código
- Dividir archivos de 6000 líneas: tener 6000 líneas en un solo archivo no es modular y dificulta aportar contexto, por lo que es más efectivo dividirlo en 12 archivos de unas 500 líneas
- Preferencia por slices verticales: desarrollar en unidades pequeñas de funcionalidad ejecutables de punta a punta
Selección de modelo y gestión de costos
- Considerar primero Claude Sonnet 4.5: ofrece más consistencia y precisión que GPT o Gemini, por lo que vale el costo adicional
- Cuidado con el consumo de tokens: los planes grandes consumen muchos tokens, así que en la ejecución real es más eficiente en costos avanzar en pasos pequeños
Casos de uso especiales
Generación de scripts de una sola vez
- Scripts de análisis: si hay que escribir cientos de scripts desechables de análisis de datos al día, incluso con 50% de precisión pueden generarse y ejecutarse 1000 veces más rápido que escribiéndolos manualmente
- Posibilidad de verificar el resultado: como el resultado puede validarse directamente, una precisión baja sigue siendo práctica
Construcción de una app desde cero
- Estructura multiagente: al construir una app grande desde cero, un agente supervisor revisa el trabajo de otros agentes para mantener la consistencia
- Es útil para mantener consistencia en nombres de imports, nombres de variables y evitar duplicación de código
- Eficiencia frente al costo: siguen haciendo falta modificaciones y refactorizaciones complejas, por lo que un enfoque por etapas termina siendo más barato a largo plazo
Resumen de opiniones de la comunidad
Experiencias positivas (mejora de productividad de 3 a 5 veces)
- Sitio web en Next.js: construcción en minutos de un sitio web totalmente funcional y desplegable desde cero
- Implementación de funciones complejas: implementación de la función de threads en una app de chat en 3 a 4 minutos (una tarea estimada en 3 días)
- Con un enfoque sistemático: combinar reglas claras, contexto suficiente y validación paso a paso puede llevar a éxitos consistentes
Experiencias negativas (por ahora no es práctico)
- Producción masiva de código espagueti: al dar objetivos amplios, aparecen problemas como omitir actualizaciones de documentación o no eliminar archivos residuales
- Errores semánticos: técnicamente funciona, pero con problemas estructurales como ubicar mal el código o reimplementar funciones existentes
- Fracaso en ejecuciones largas: los seguimientos largos de más de 5 minutos suelen producir resultados inútiles
1 comentarios
Opiniones de Hacker News
gpt-5-high) para convertir una app en Python a Go de una sola vez. Probé el resultado y funciona bien. Me gustó poder desplegarlo como un binario único sin entorno virtual. No sé si la instrucción era tan fácil como para impresionar tantohello world. Incluso desarrolladores veteranos dicen que la IA escribió más de la mitad del codebase, pero luego aclaran que casi todo lo descartaron y solo tomaron algunas referencias. La historia de “un solo prompt → app terminada” rápidamente se convierte en “sirve para motivarte frente a una pantalla vacía”. Ojalá más gente comparta con transparencia cómo la usan de verdad en trabajo realCLAUDE.mdocursorrules, casi no sirven. Al final el LLM tiene que seguir instrucciones, y en realidad se siente aleatorio. Ni siquiera respeta reglas muy simples, así que me da la impresión de que la gente que publica en el foro de Cursor son todos amateurs. Y además, los LLM son realmente malos para escribir código nuevo. Suponen librerías que ni existen y generan puro texto inútil. Yo literalmente los uso como si fueran speech-to-text; ahí sí detectan mejor que yo algunos edge cases, best practices o detalles de sintaxis que se me pasanCLAUDE.mdy ya. La clave está en guiar con detalle el proceso. Mi forma de trabajar se divide en: 1) guía de debugging por proyecto, 2) criterios de aceptación claros, 3) ejecutar tests con frecuencia y hacer que registre en archivos los cambios pequeños por unidad. Así puedo dejar a Claude trabajando varias horas casi sin supervisión (solo dándole “continue” de vez en cuando o usando/compact). No produce código perfecto cada vez, pero yo tampoco. Aun así, casi siempre termina en cambios positivos y me ahorra mucho esfuerzo. Todavía no recomiendo usarlo para bootstrap sin diseño adecuado, aunque a veces también lo logra (pero con revisión previa). Últimamente incluso he pensado en dejar a Claude resolviendo problemas de forma continua durante díascodex-clisiento un aumento de productividad de 5x. Pude convertir fuentes con estructuras muy inusuales y trazas internas de ejecución SVG a un formato custom de grafos JSON, y también extraer documentación precisa de un codebase mixto Python/C++ bastante complejo, incluso con kernel RISCV de bajo nivel. De verdad me intriga por qué con la misma herramienta salen resultados tan diferentesagentic harness(Claude Code, Codex, Copilot, etc.), casos de éxito/fracaso y hasta nivel de experiencia del usuario con LLM. También influyen cosas como si el ingeniero lleva 10 años en un solo codebase o alterna varios proyectos, si es desarrollo nuevo (Greenfield) o mantenimiento, investigación innovadora o CRUD, etc.