← Back to Blog
🤖 Agentes de IA en DevOps
September 18, 2025

Prompt Engineering para SysAdmins: Técnicas Prácticas

📋 Contexto

La diferencia entre "mi script no funciona" y obtener una solución útil de IA en 30 segundos está en cómo formulas tu pregunta. Después de cientos de interacciones con agentes de IA, identifiqué patrones que consistentemente dan mejores resultados.

🎯 Anatomía de un Buen Prompt

Un prompt efectivo tiene 5 componentes:

  1. Contexto: Qué estás haciendo, stack tecnológico
  2. Problema: Error específico, síntomas
  3. Lo que intentaste: Troubleshooting previo
  4. Código/Configs: Información relevante
  5. Pregunta específica: Qué necesitas exactamente

💡 Técnica 1: Contexto Rico

❌ Prompt Malo:
"Mi contenedor Docker no arranca"
✅ Prompt Bueno:
Contexto: Estoy usando Docker Compose para n8n + PostgreSQL en Debian 12
Problema: Contenedor n8n no arranca, error: ECONNREFUSED ::1:5432
Stack:
- n8n: imagen oficial latest
- PostgreSQL: 14
- Docker Compose version: 2.x

docker-compose.yml:
[pegar configuración completa]

.env:
[pegar variables (sin passwords reales)]

Logs de n8n:
[pegar últimas 20 líneas]

Logs de PostgreSQL:
[pegar últimas 20 líneas]

¿Qué causa este error y cómo lo soluciono?

💡 Técnica 2: Be Specific

❌ Malo: "Crea un script de backup"
✅ Bueno:
"Crea un script bash que:
1. Haga backup de volúmenes Docker a tar.gz
2. Suba el backup a S3 (bucket: backups-prod)
3. Mantenga últimos 7 backups, elimine viejos
4. Envíe notificación por email si falla
5. Incluya logs con timestamps
6. Use error handling robusto (set -e)
7. Valide que Docker esté corriendo antes de iniciar

Formato de nombre de backup: backup_YYYYMMDD_HHMMSS.tar.gz"

💡 Técnica 3: Iteración Progresiva

No esperes el resultado perfecto en un prompt. Itera:

Prompt 1: "Crea script bash para listar instancias EC2"
→ IA da script básico

Prompt 2: "Agrega filtro por tag Environment=production"
→ IA mejora el script

Prompt 3: "Formatea output como tabla con columnas: Name, IP, State"
→ IA refina el formato

Prompt 4: "Agrega opción --csv para export"
→ Script final production-ready

💡 Técnica 4: Role-Playing

Define el rol que quieres que la IA asuma:

Ejemplo:
"Actúa como un Senior DevOps Engineer con 10 años de experiencia en AWS.
Revisa este script de deployment y sugiere:
- Mejoras de seguridad
- Edge cases no contemplados
- Optimizaciones de performance
- Mejores prácticas que no estoy siguiendo

[pegar script]"

💡 Técnica 5: Formato Estructurado

Pide respuestas en formato específico:

"Explica cómo funcionan los health checks en Docker Compose.

Formato de respuesta:
1. Concepto básico (2-3 líneas)
2. Sintaxis YAML con ejemplo comentado
3. Parámetros disponibles (tabla)
4. Caso de uso real
5. Anti-patrones a evitar"

💡 Técnica 6: Proporciona Ejemplos

Si quieres un formato específico, da un ejemplo:

"Genera funciones bash para tareas AWS comunes.

Ejemplo del formato que quiero:

# aws-ip: Get instance IP by name
aws-ip() {
    local name=$1
    aws ec2 describe-instances \
        --filters "Name=tag:Name,Values=$name" \
        --query 'Reservations[0].Instances[0].PublicIpAddress' \
        --output text
}

Genera 5 funciones similares para:
- Listar buckets S3 con tamaño
- Detener instancia por nombre
- Ver últimos logs de CloudWatch
- Costos del mes actual
- Snapshots sin AMI asociado"

💡 Técnica 7: Debugging Guiado

Pide diagnóstico paso a paso:

"Tengo este error: [error específico]

Por favor:
1. Explica qué significa este error
2. Lista las 3 causas más comunes
3. Para cada causa, dame comandos de diagnóstico
4. Sugiere solución para cada escenario

Formato: Causa → Diagnóstico → Solución"

🚫 Anti-Patrones a Evitar

1. Prompts Vagos

❌ "No funciona"
❌ "Ayuda con AWS"
❌ "Tengo un error"
❌ "Mejora este código" (sin especificar qué mejorar)

2. Sin Contexto Técnico

❌ "Mi servidor está lento"
(Falta: qué servidor, qué SO, métricas, logs, qué cambió recientemente)

3. Múltiples Preguntas en Una

❌ "Explica Docker, Kubernetes, y cómo se relacionan con microservicios. También quiero saber sobre CI/CD y Terraform"
(Divide en 5 preguntas separadas)

4. Asumir Conocimiento del Contexto

❌ "El problema persiste" (sin haber explicado cuál problema)
❌ "Igual que antes" (IA no recuerda conversaciones previas necesariamente)

📚 Templates Útiles

Template: Debugging

**Contexto:**
Sistema: [OS, versión]
Aplicación: [nombre, versión]
Entorno: [dev/staging/prod]

**Problema:**
Síntomas: [descripción detallada]
Error exacto: [mensaje de error completo]
Cuándo empezó: [timeline]

**Lo que intenté:**
1. [acción 1] → [resultado]
2. [acción 2] → [resultado]

**Código/Configs relevantes:**
[pegar código/configs]

**Logs:**
[pegar logs relevantes]

**Pregunta:** ¿Cuál es la causa root y cómo lo soluciono?

Template: Code Review

Revisa este [script/config] para [propósito específico]:

[pegar código]

Enfócate en:
- Seguridad: [vulnerabilidades, secrets expuestos]
- Bugs: [edge cases, race conditions]
- Performance: [optimizaciones posibles]
- Mejores prácticas: [qué estoy haciendo mal]
- Testing: [qué debería testear]

Dame feedback estructurado con ejemplos de código mejorado.

Template: Learning

Explica [concepto] como si fuera un [tu nivel de experiencia].

Incluye:
1. Definición simple (ELI5)
2. Cómo funciona técnicamente
3. Caso de uso real en [tu contexto]
4. Comparación con [alternativas]
5. Cuándo usar vs cuándo NO usar
6. Recursos para profundizar

Usa analogías y ejemplos prácticos.

🎯 Técnicas Avanzadas

Chain of Thought

Pide que la IA "piense en voz alta":

"Antes de responder, explica tu razonamiento paso a paso:
1. Identifica el problema
2. Lista posibles causas
3. Descarta causas improbables
4. Propón solución para la causa más probable
5. Sugiere cómo validar la solución"

Constraint-Based

Define limitaciones claramente:

"Crea un script de monitoring con estas restricciones:
- Solo bash (no Python/Ruby)
- Sin dependencias externas (solo coreutils)
- Debe correr en Alpine Linux
- Menos de 100 líneas
- No puede usar curl/wget (firewall bloqueado)"

Output Formatting

"Genera la respuesta en formato JSON:
{
  "diagnosis": "...",
  "root_cause": "...",
  "solution": ["step1", "step2", "step3"],
  "commands": ["cmd1", "cmd2"],
  "references": ["url1", "url2"]
}"
💡 Pro Tip: Guarda tus mejores prompts en un archivo prompts.md para reutilizarlos. Yo tengo ~20 templates que uso semanalmente.

📊 Checklist: Prompt Efectivo

Antes de enviar, verifica:

  • ☐ Incluí contexto técnico (versiones, SO, stack)
  • ☐ Describí el problema específicamente
  • ☐ Pegué código/configs/logs relevantes
  • ☐ Mencioné lo que ya intenté
  • ☐ La pregunta es clara y específica
  • ☐ Eliminé información sensible (passwords, IPs prod)
  • ☐ Especifiqué formato de respuesta si es importante

💭 Conclusión

Prompt engineering no es magia, es comunicación efectiva. Un prompt bien estructurado te ahorra múltiples iteraciones y te da resultados útiles en el primer intento. Invierte 2 minutos extra en escribir un buen prompt y ahorra 30 minutos de idas y vueltas.

La habilidad de extraer conocimiento útil de IA es tan importante hoy como saber usar Google lo era hace 10 años. Domina esta habilidad y multiplica tu productividad.