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:
- Contexto: Qué estás haciendo, stack tecnológico
- Problema: Error específico, síntomas
- Lo que intentaste: Troubleshooting previo
- Código/Configs: Información relevante
- Pregunta específica: Qué necesitas exactamente
💡 Técnica 1: Contexto Rico
"Mi contenedor Docker no arranca"
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
"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:
"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
❌ "Ayuda con AWS"
❌ "Tengo un error"
❌ "Mejora este código" (sin especificar qué mejorar)
2. Sin Contexto Técnico
(Falta: qué servidor, qué SO, métricas, logs, qué cambió recientemente)
3. Múltiples Preguntas en Una
(Divide en 5 preguntas separadas)
4. Asumir Conocimiento del Contexto
❌ "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"]
}"
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.