Principios fundamentales para prompts excelentes
- Sé claro y específico: Aclara siempre qué quieres y cómo. Evita el lenguaje vago; en lugar de “Haz esta aplicación mejor”, especifica “Refactoriza la aplicación para limpiar componentes no utilizados y mejorar el rendimiento, sin cambiar la interfaz de usuario ni la funcionalidad”. Proporciona contexto sobre para quién es la aplicación, qué debe hacer y cualquier característica imprescindible.
- Céntrate en el recorrido del usuario: Considera la secuencia de acciones que un usuario realizará en tu aplicación. Por ejemplo ——
- Describe el “qué”, no el “cómo”: Lumi se encarga de la complejidad del backend, así que céntrate en el resultado o la apariencia deseada. Por ejemplo ——
- Itera y refina: No te conformes con el primer resultado. Los prompts se pueden refinar de forma iterativa a través del diálogo con la IA. Lumi ofrece un resultado completamente funcional desde el principio, pero es una base para un mayor refinamiento.
El marco C.L.E.A.R.
- Conciso: Ve directo al grano, evitando palabrería o lenguaje vago. Busca la precisión y la brevedad.
- Lógico: Organiza tu prompt de manera secuencial o estructurada, dividiendo las solicitudes complejas en pasos ordenados.
- Explícito: Indica exactamente lo que quieres y lo que no, proporcionando ejemplos de formato o contenido si es posible.
- Adaptable: Refina tus prompts basándote en la respuesta de la IA, aclarando instrucciones o señalando errores en los prompts de seguimiento.
- Reflexivo: Revisa qué funcionó y qué no después de cada interacción para mejorar los prompts futuros.
Los cuatro niveles de prompting
- Prompting estructurado “con ruedines” (formato explícito): Útil para principiantes o tareas complejas, implica el uso de secciones etiquetadas:
- Contexto: Información de fondo o configuración de rol para la IA.
- Tarea: El objetivo específico.
- Directrices: Enfoque o estilo preferido.
- Restricciones: Límites estrictos o cosas que no se deben hacer.
- Por ejemplo ——
- Prompting conversacional (sin ruedines): Una vez que te sientas cómodo, puedes escribir de forma más natural, como si explicaras una tarea a un colega, manteniendo la claridad y la integridad sin etiquetas formales.
- Meta-prompting (mejora de prompts asistida por IA): Pide a la IA de Lumi que te ayude a mejorar tus prompts o planes. Por ejemplo ——
- Meta-prompting inverso (IA como herramienta de documentación): Usa la IA para resumir o documentar lo que sucedió después de una tarea, lo cual es excelente para la depuración y la captura de conocimiento. Por ejemplo ——
Marcos de prompting
- El prompt “Quién / Qué / Por qué”:
- QUIÉN usará esta aplicación?
- QUÉ les ayuda a hacer?
- POR QUÉ la usaría alguien?
- El prompt de “Historia de usuario”: Enmarca tu solicitud desde la perspectiva del usuario final, p. ej.,
- El prompt de “Desglose de características”: Enumera las capacidades que quieres añadir, p. ej.,
Técnicas avanzadas y consejos para mejores resultados
- Prompting “Zero-Shot” vs. “Few-Shot”:
- Zero-Shot: Pide al modelo que realice una tarea sin ejemplos, basándose en su entrenamiento general. Funciona bien para tareas comunes o claramente descritas.
- Few-Shot: Proporciona un par de ejemplos o demostraciones en tu prompt para mostrar a la IA el formato o estilo exacto que deseas. Mejora la calidad del resultado para tareas específicas o inusuales.
- Gestionar alucinaciones y garantizar la precisión:
- Proporciona datos de base: Aprovecha la Base de Conocimiento de tu proyecto (PRD, flujos de usuario, stack tecnológico) para un contexto persistente.
- Referencias en el prompt: Incluye fragmentos de documentación relevantes o datos para consultas factuales o interacciones externas.
- Pide un razonamiento paso a paso: Pide a la IA que muestre su razonamiento para detectar errores o revelar incertidumbres.
- Instruye honestidad: Incluye directrices como “Si no estás seguro… no lo inventes; en su lugar, explica qué se necesitaría o pide una aclaración”.
- Verificación iterativa: Pide a la IA que verifique su resultado después de tareas críticas.
- Aprovechar los conocimientos del modelo (Conoce tus herramientas de IA):
- Modo Discusión vs. Modo Predeterminado (Modo Agente): Usa el Modo Discusión para hacer brainstorming, discutir diseños o depurar sin cambios inmediatos en el código. Usa el Modo Predeterminado (Modo Agente) para ejecutar cambios (escribir código, crear componentes).
- Longitud de tokens: Divide las tareas grandes en prompts más pequeños si el resultado podría exceder los límites de tokens.
- Preferencias de formato y código: Indica tus preferences (p. ej., “genera el código en formato markdown”) para guiar a la IA.
- Técnicas para refinar tu aplicación
- “Hazlo más…” / “Hazlo menos…”: Ajusta el tono, el diseño o el énfasis.
- “Añade un/una…” / “Elimina el/la…”: Añade o elimina características específicas o bloques de la interfaz de usuario.
- “Cambia [esto] por [aquello]”: Ajusta texto, elementos visuales, diseño o lógica de componentes.
- “Debería sentirse como…”: Toma prestados estilos de aplicaciones conocidas para guiar el diseño o el comportamiento.
- “Añade lógica para…”: Añade reglas funcionales o flujos sin necesidad de código.
- “Agrupa u organiza…”: Estructura el contenido para mayor claridad o flujo de trabajo.
- “Añade comportamiento condicional…”: Introduce ramificaciones inteligentes o funcionalidad basada en el estado.
- Declaraciones “Permite a los usuarios…”: Enmarca la funcionalidad desde la perspectiva del usuario final.
- Construye en capas al añadir complejidad: Empieza de forma simple, luego añade características y, finalmente, pule los elementos visuales. Este enfoque incremental evita abrumar al sistema o a ti mismo.
- Incluye restricciones y requisitos: Indica explícitamente lo que se debe o no se debe hacer, como “Crea una aplicación de tareas simple con un máximo de 3 tareas visibles a la vez”.
- Evita la ambigüedad: Aclara cualquier término que pueda interpretarse de diferentes maneras.
- Cuida tu tono y cortesía: Un fraseo educado puede añadir contexto y detalle, ayudando a la IA a entender las instrucciones más claramente.
- Usa el formato a tu favor: Estructura listas o pasos, especialmente cuando quieras que la IA genere una lista o siga una secuencia.
- Aprovecha ejemplos o referencias: Proporciona un diseño objetivo, estilo de código o imagen para dar a la IA una referencia concreta.
- Integración de feedback: Revisa el resultado de la IA y proporciona feedback específico para refinamientos.
- Énfasis en la accesibilidad: Pide código que cumpla con los estándares de accesibilidad, incluyendo etiquetas ARIA y navegación por teclado.
- Componentes y librerías predefinidas: Especifica librerías de UI (p. ej.,
shadcn/ui
con Tailwind CSS) para mantener la consistencia. - Prompting multilingüe: Especifica el idioma deseado para los comentarios del código y la documentación.
- Definir la estructura del proyecto y la gestión de archivos: Describe los nombres de archivo y las rutas para asegurar una generación de código organizada.
- Proporciona instrucciones de edición precisas (Enfoca a la IA): Sé específico sobre dónde y qué cambiar, o usa la función “Seleccionar” de Lumi para resaltar componentes. Dile a la IA qué no debe tocar.
- Bloqueo de archivos (solución alternativa): Instruye consistentemente a la IA para que no altere archivos críticos en cada prompt.
- Ajustes de diseño e interfaz de usuario: Para cambios visuales, indica explícitamente “cambios puramente visuales” y guía a la IA a través de un plan para la responsividad.
- Refactorización y optimización de código: Enfatiza “sin cambios en el comportamiento” al pedir una refactorización. También puedes pedir primero un plan de refactorización y luego implementarlo por etapas.
- Depuración con asistencia de IA: Copia los registros de errores en un prompt (idealmente en Modo Discusión) y pregunta por la causa y la solución. Si la solución no funciona, adáptate y proporciona nueva información.
- Cuándo (y cuándo no) involucrar a la IA: Usa la IA para lógica compleja, generación de boilerplate u operaciones de varios pasos. Para tareas triviales (p. ej., cambiar una etiqueta de texto), podría ser más rápido hacer ediciones manuales.