📋 Contexto

Durante la configuración de mi home lab, me encontré con un error frustrante: n8n no podía conectarse a PostgreSQL en Docker Compose. El error ECONNREFUSED ::1:5432 aparecía constantemente en los logs, pero la causa no era obvia.

Decidí usar un agente de IA para ayudarme en el proceso de debugging. Este post documenta la sesión completa: qué funcionó, qué no, y las lecciones aprendidas sobre cómo colaborar efectivamente con agentes de IA.

🎯 Objetivo del post: Mostrar un caso real de debugging asistido por IA, con el proceso completo, incluyendo callejones sin salida y ajustes de estrategia.

🐛 El Problema Inicial

Síntomas

  • n8n container iniciaba correctamente
  • PostgreSQL container también corría sin problemas
  • n8n no podía conectarse a la base de datos
  • Error en logs: Error: connect ECONNREFUSED ::1:5432

Configuración Inicial (docker-compose.yml)

version: '3.8'
services:
  postgres:
    image: postgres:14
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: "MyP@ssw0rd!"
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: n8nio/n8n
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      DB_TYPE: postgresdb
      DB_HOST: postgres
      DB_PORT: 5432
      DB_USER: n8n
      DB_PASSWORD: "MyP@ssw0rd!"
      DB_DATABASE: n8n
    ports:
      - "5678:5678"

volumes:
  pg_data:

🤖 Sesión de Debugging con IA

Documentación de la conversación real (simplificada para claridad):

👤 YO:

Tengo un error con n8n en Docker. No puede conectarse a PostgreSQL: ECONNREFUSED ::1:5432. Aquí está mi docker-compose.yml...

🤖 IA:

Veo el problema. El error indica que n8n intenta conectarse a ::1 (localhost IPv6) en lugar del servicio postgres. Verifico tu configuración...

Las variables de entorno de n8n para PostgreSQL deben usar estos nombres específicos:

  • DB_POSTGRESDB_HOST (no DB_HOST)
  • DB_POSTGRESDB_PORT (no DB_PORT)
  • DB_POSTGRESDB_DATABASE
  • DB_POSTGRESDB_USER
  • DB_POSTGRESDB_PASSWORD
👤 YO:

Cambié las variables pero sigue fallando. Mismo error.

🤖 IA:

Verifica el password. Los caracteres especiales en MyP@ssw0rd! pueden causar problemas. Probemos sin comillas o usa un archivo .env.

👤 YO:

Cambié a password simple. Sigue el error. ¿Qué más reviso?

🤖 IA:

Vamos a diagnosticar paso a paso:

  1. Verifica que PostgreSQL esté escuchando: docker exec postgres pg_isready -U n8n
  2. Revisa los logs de PostgreSQL: docker logs postgres
  3. Inspecciona la red Docker: docker inspect n8n | grep -A 20 Networks
👤 YO:

PostgreSQL está OK y ambos containers están en la misma red. Los logs de PostgreSQL muestran: FATAL: password authentication failed for user "n8n"

🤖 IA:

¡Ahí está! El problema no es la conexión, es la autenticación. El volumen de PostgreSQL tiene datos anteriores con credenciales diferentes.

Solución:

docker compose down
docker volume rm n8n-lab_pg_data
docker compose up -d

Esto reinicia PostgreSQL con las credenciales correctas.

👤 YO:

¡Funcionó! n8n se conectó correctamente. Gracias.

🎯 Análisis del Proceso

¿Qué Funcionó Bien?

  • Diagnóstico iterativo: La IA sugirió pasos incrementales
  • Comandos específicos: Cada sugerencia incluía el comando exacto
  • Contexto acumulativo: La IA recordaba información previa
  • Identificación de root cause: Encontró el problema real (credentials viejas)

¿Qué Pudo Ser Mejor?

  • ⚠️ Primera sugerencia incorrecta: El problema no era la variable de entorno (aunque eso también estaba mal)
  • ⚠️ Requirió múltiples iteraciones: No identificó el volumen antiguo inmediatamente
  • ⚠️ Asumió contexto: No preguntó si había migraciones previas

💡 Lecciones Sobre Prompting Efectivo

✅ Lo Que Hice Bien

1. Proporcionar Contexto Completo

Compartí:

  • Archivo docker-compose.yml completo
  • Error exacto de los logs
  • Resultados de comandos de diagnóstico

2. Feedback Continuo

Después de cada sugerencia, reporté el resultado:

  • "Sigue fallando" (con nuevo error si cambió)
  • "Funcionó parcialmente"
  • "Error diferente ahora"

3. Copiar/Pegar Outputs Reales

No parafraseé. Copié los mensajes de error exactos y outputs de comandos.

❌ Lo Que Pude Mejorar

1. No Mencionar Historia Previa

Debí decir desde el inicio: "Intenté configurar esto antes con otras credenciales".

2. No Especificar Urgencia/Contexto

No aclaré si era producción, desarrollo, o home lab (afecta las recomendaciones).

3. No Pedir Explicación del "Por Qué"

Preguntar "¿por qué el volumen antiguo causa esto?" me habría ayudado a aprender más.

🚀 Mejores Prácticas para Debugging con IA

Antes de Preguntar

  1. Intenta lo obvio primero: Reiniciar containers, revisar logs básicos
  2. Recopila información: Logs, configs, outputs de comandos
  3. Reproduce el error: Asegúrate de que sea consistente

Al Formular la Pregunta

Template efectivo:

**Contexto:** [Qué estás haciendo, stack tecnológico]
**Problema:** [Error específico, síntomas]
**Lo que ya intenté:** [Pasos de troubleshooting previos]
**Configs relevantes:** [Archivos de configuración]
**Logs:** [Mensajes de error exactos]
**Pregunta específica:** [Qué necesitas saber/hacer]

Durante la Sesión

  • 📊 Ejecuta comandos sugeridos inmediatamente
  • 💬 Reporta resultados completos (no "no funcionó")
  • Pide aclaraciones si no entiendes una sugerencia
  • 🧪 Valida hipótesis antes de cambios destructivos

Después de Resolver

  • 📝 Documenta la solución (este post es un ejemplo)
  • 🧠 Entiende el "por qué", no solo copies la solución
  • 🔄 Aplica la lección a problemas similares

⚠️ Limitaciones de los Agentes de IA

Lo Que IA NO Puede Hacer

❌ NO puede:
  • Ejecutar comandos en tu sistema (tú debes hacerlo)
  • Ver tu pantalla o logs en tiempo real
  • Acceder a tu infraestructura privada
  • Saber configuraciones no compartidas
  • Garantizar que la solución funcione al 100%

Riesgos a Considerar

⚠️ Precauciones:
  • Seguridad: No compartas credenciales reales, IPs productivas, o secrets
  • Validación: Verifica sugerencias antes de aplicarlas en producción
  • Dependencia: Aprende a debuggear sin IA también
  • Hallucinations: La IA puede generar comandos o configs incorrectos

✅ Resultado Final

Problema resuelto en ~20 minutos de iteración con IA
Causa: Volumen Docker con credenciales antiguas
Solución: Recrear volumen con credenciales correctas
Bonus: También corregí variables de entorno incorrectas

Configuración Final (Correcta)

version: '3.8'
services:
  postgres:
    image: postgres:14
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: secure_password_123
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: n8nio/n8n
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres   # ✅ Correcto
      DB_POSTGRESDB_PORT: 5432       # ✅ Correcto
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: secure_password_123
      DB_POSTGRESDB_DATABASE: n8n
    ports:
      - "5678:5678"

volumes:
  pg_data:

📊 Comparación: Con vs Sin IA

Aspecto Sin IA Con IA
Tiempo 1-2 horas (Google, docs, trial & error) 20 minutos (iteración guiada)
Frustración Alta (múltiples intentos sin dirección) Baja (pasos claros, feedback inmediato)
Aprendizaje Profundo (lees documentación completa) Dirigido (entiendes el problema específico)
Riesgo de error Medio (puedes mal interpretar docs) Medio (IA puede sugerir cosas incorrectas)

💭 Conclusión Personal

Usar agentes de IA para debugging ha mejorado significativamente mi productividad. No reemplaza el conocimiento técnico, pero actúa como un "pair programmer" disponible 24/7 que conoce prácticamente todas las tecnologías.

La clave es usarla como herramienta, no como solución mágica. Debes entender lo que hace cada comando sugerido, validar las soluciones, y aprender del proceso.

Mi recomendación: Aprende a debuggear sin IA primero, luego úsala para acelerar el proceso. Si no entiendes por qué funciona una solución, investiga más allá de lo que la IA te dice.

🎯 Regla de oro: Si la IA te da una solución que no entiendes, NO la apliques en producción. Primero entiende el "por qué", luego ejecuta el "cómo".

🚀 Próximo Post

En el siguiente artículo de esta serie, exploraré "Prompt Engineering para SysAdmins": técnicas específicas para obtener mejores respuestas de agentes de IA en contextos DevOps.