Ask HN: ¿Está experimentando alguien con diferentes formas de usar LLMs para programar?

Programación guiada por especificaciones vs. programación agéntica/orquestada

  • Muchos sostienen que la mayor mejora proviene de especificaciones más claras, no de una orquestación compleja: una sola intención, contratos de entrada/salida explícitos, restricciones y precondiciones, además de una clarificación progresiva.
  • Algunos prefieren un uso de “lienzo en blanco”: memoria de largo plazo mínima o nula para evitar la “putrefacción del contexto” y la dilución de la intención; usan Markdown/docs externos que el modelo puede buscar.
  • Las “skills” (instrucciones y herramientas estrechas y reutilizables) se consideran infravaloradas; los “agents” ayudan sobre todo con la gestión del contexto y las restricciones.
  • Otros reportan éxito con equipos multiagente, flujos de trabajo basados en grafos y modelos con roles fijos (baratos para la mecánica, fuertes para la planificación/revisión), pero reconocen altos costos en tokens y complejidad.

Estado de flujo y experiencia humana

  • Queja común: la interacción tipo chat y la espera rompen el flujo; los usuarios sienten que son gerentes supervisando a un dev junior en vez de estar programando.
  • Algunos recuperan el flujo mediante:
    • Hacer un trabajo profundo de planificación/especificación y luego dejar que los agents corran sin supervisión, revisando después.
    • Usar herramientas estilo programador en pareja donde la persona lleva el mando y la IA asiste en pequeños incrementos.
    • Ejecutar múltiples tareas/agents en paralelo y tratar la “orquestación” en sí como la actividad de flujo.
  • Otros sienten que alternar entre muchos agents es agotador, no induce flujo.

Flujos de trabajo prácticos y harnesses

  • Patrones frecuentes:
    • Flujos centrados en issues/PR donde los LLMs implementan tickets, generan planes e iteran mediante comentarios.
    • Documentos de tres niveles (filosofía → especificación → diseño) antes de generar código.
    • “Workboxes” / sandboxes por funcionalidad con ramas automatizadas, PRs e instancias de prueba desplegables.
    • Agents herméticos: generar por separado código y tests a partir de la misma especificación para evitar sesgo de confirmación.
  • Los harnesses personalizados abarcan terminales, sandboxes basados en navegador, motores DAG/grafo y VMs/contenedores locales, a menudo con permisos y tooling estrictos (por ejemplo, bucles de búsqueda de bugs, sandboxes de seguridad).

Autocompletado, pairing e integración con el editor

  • Gran interés en flujos centrados en el editor: autocompletado inline, completado de ediciones, múltiples conversaciones ancladas por región de código y terminales donde los agents trabajan en paneles paralelos.
  • Algunos creen que el harness de autocompletado y la UX son más importantes que exprimir modelos ligeramente mejores.

Aprendizaje, calidad y seguridad

  • Preocupa que la programación totalmente agéntica perjudique la comprensión y el aprendizaje, especialmente para juniors; como alternativa, se propone que el LLM produzca documentos instructivos detallados o actúe como tutor/revisor.
  • Muchos insisten en usar LLMs para mejorar la comprensión humana (diagramas, resúmenes, explicaciones) porque ahora el cuello de botella es la comprensión humana del código.
  • La seguridad y los guardrails son temas recurrentes: agents aislados en sandbox, herramientas restringidas y comprobaciones/tests automáticos entre iteraciones.