Ejemplo de ingeniería de prompts para desarrolladores
Ejemplos concretos de prompt engineering para desarrolladores: prompts reproducibles, salida JSON y patrones de integración para desplegar funcionalidades fiables impulsadas por LLM.
Ejemplos concretos de prompt engineering para desarrolladores: prompts reproducibles, salida JSON y patrones de integración para desplegar funcionalidades fiables impulsadas por LLM.
Copy&Prompt TEAM · Publicado 2026-08-09 · Actualizado 2026-08-09
Respuesta rápida: El prompt engineering es la práctica de escribir entradas estructuradas y repetibles que hacen que los LLM se comporten de forma predecible. Para los desarrolladores, eso significa tratar los prompts como código: versionarlos, probarlos y exigir una salida estructurada (JSON o esquema) para que los sistemas posteriores puedan consumir los resultados de manera determinista.
- Qué significa el prompt engineering para desarrolladores
- Un marco de 5 pasos para prompts (con prompts copiables)
- Ejemplos aplicados: generación de código, pruebas y extracción
- Tabla comparativa: estilos de prompt y resultados
- Errores comunes → Por qué fallan → Soluciones
- Qué no resuelve el prompt engineering
- Escalar prompts: almacenamiento, versionado y compartición
- Preguntas frecuentes
- Conclusiones clave y siguiente paso
Qué significa el prompt engineering para desarrolladores
El prompt engineering consiste en diseñar entradas para que un modelo de lenguaje devuelva salidas previsibles y estructuradas que se integren con código. Escribes un prompt como una firma de función. Eso reduce el análisis frágil, corrige la deriva y permite que las pruebas verifiquen el comportamiento.
Definición: Un system prompt establece el rol del modelo. Un task prompt describe el trabajo. Las constraints limitan el formato y el contenido. Usa estos tres de forma consistente. Para legibilidad por máquina, prefiere JSON o un formato estricto con delimitadores.
Evidencia y citas: GPT-4 ofreció variantes de contexto de 8k y 32k tokens (OpenAI, 2023). OpenAI documenta el rol del sistema como un tipo de mensaje separado en las APIs (OpenAI docs, 2024): "system messages set behaviours." La documentación de Anthropic enumera patrones de seguridad y uso de herramientas para system y user prompts (Anthropic, 2024).
Observación del Copy&Prompt TEAM: En nuestras pruebas de integración, los prompts que requieren JSON estricto redujeron las fallas de parsing en una medida visible cuando se versionaron y validaron en tiempo de ejecución (observado agosto 2026).
Un marco de 5 pasos para prompts (con prompts copiables)
Usa una plantilla de cinco partes para cada prompt de producción. Cada bloque de prompt abajo es copiables tal cual y validado para un LLM. Cada bloque está anotado y sellado por modelo.
Paso 1 — Rol: establece el rol del system y del assistant
Rol: System assistant que actúa como un generador JSON estricto y revisor de código.
Contexto: Se usa dentro de un paso de CI. El consumidor espera JSON válido que coincida con un esquema.
Tarea: Dado un fragmento de código de entrada, devuelve un objeto JSON con claves: "issue", "line", "severity", "fix".
Restricciones:
- No incluyas comentarios fuera del JSON.
- Usa únicamente las claves definidas.
Formato de salida: JSON con el esquema:
{"issue": "string","line": integer,"severity": "low|medium|high","fix": "string"}
Anotación: Este rol a nivel de sistema fuerza salida solo en JSON. Validado en GPT-4 (observado ago 2026). Úsalo cuando una canalización automatizada vaya a parsear las respuestas.
Paso 2 — Contexto: proporciona datos mínimos pero suficientes
Rol: Assistant como arriba.
Contexto: Archivo: [FILENAME]; Idioma: [LANGUAGE]; Función: [FUNCTION_DESCRIPTION].
Tarea: Analiza el fragmento entre marcadores e informa hasta tres problemas en el esquema JSON especificado.
Restricciones:
- Analiza únicamente el código entre los marcadores <<>> y <<>>.
- Devuelve exactamente un array JSON llamado "issues".
Formato de salida:
{"issues":[{"issue":"string","line":int,"severity":"low|medium|high","fix":"string"}]}
Anotación: Los marcadores evitan que el modelo alucine fuera del fragmento proporcionado. Validado en GPT-4 (ago 2026). Reemplaza las variables entre corchetes antes de enviar.
Paso 3 — Tarea: pide la acción medible
Rol: Assistant como generador JSON estricto.
Contexto: ID de caso de prueba: [CASE_ID]. Especificación: [BRIEF_SPEC].
Tarea: Produce un esqueleto de prueba unitaria en el formato abajo y un campo explicativo corto "why".
Restricciones:
- La salida debe ser un objeto JSON con las claves "test_code" y "why".
- El código de prueba debe ser un bloque de código válido de [TEST_FRAMEWORK] como cadena.
Formato de salida:
{"test_code":"string","why":"string"}
Anotación: Este patrón convierte al modelo en una máquina de salida de código que tu CI puede compilar o lintar. Validado en Claude Opus (Anthropic), observado jun 2025.
Paso 4 — Restricciones: limita la creatividad cuando sea necesario
Siempre lista restricciones. Una sola frase ambigua invita a variabilidad. Divide las restricciones en viñetas y criterios de aceptación explícitos.
Paso 5 — Formato de salida: esquema y validación
Proporciona un JSON Schema en el prompt cuando sea posible. Los consumidores deben validar la respuesta con una librería de JSON Schema. Si la validación falla, falla la compilación en lugar de parsear heurísticamente.
Ejemplos aplicados: generación de código, pruebas y extracción estructurada
Cada ejemplo abajo contiene un prompt, el esquema de salida esperado y una nota de integración. Úsalos como plantillas en producción.
Ejemplo A — Generar una interfaz TypeScript a partir de JSON
Rol: Assistant que convierte JSON a interfaces TypeScript.
Contexto: El JSON de entrada está entre marcadores.
Tarea: Devuelve una interfaz TypeScript llamada [INTERFACE_NAME] que coincida exactamente con el JSON.
Restricciones:
- Sin explicaciones; devuelve solo el código de la interfaz.
- Usa "readonly" para las propiedades de primer nivel.
Formato de salida: un único bloque de código como cadena que contenga la interfaz TypeScript.
Nota de integración: Pasa la salida por un compilador TypeScript o ts-morph para confirmar los tipos. Usa esto en pipelines de generación de código.
Ejemplo B — Extraer datos estructurados de logs
Rol: Assistant parser de logs que devuelve filas CSV como JSON.
Contexto: Líneas de log entre marcadores.
Tarea: Para cada log de error, devuelve un objeto con claves: "timestamp","service","level","message".
Restricciones:
- Devuelve un array JSON llamado "rows".
- Los timestamps deben ser ISO8601.
Formato de salida:
{"rows":[{"timestamp":"string","service":"string","level":"string","message":"string"}]}
Nota de integración: Puedes canalizar este JSON a analíticas o alertas. Valida los timestamps y descarta filas que no cumplan las reglas de parseo.
Ejemplo C — Pide al modelo que produzca una CLI controlada por JSON
Rol: Assistant que devuelve definiciones de comandos CLI en JSON.
Contexto: Funciones de shell y opciones en [SHELL_TYPE].
Tarea: Para cada comando produce {"cmd":"string","flags":[{"name":"-f","type":"boolean","desc":"string"}],"example":"string"}.
Restricciones:
- Sin texto adicional.
Formato de salida:
{"commands":[{"cmd":"string","flags":[{"name":"string","type":"string","desc":"string"}],"example":"string"}]}
Nota de integración: Usa el JSON para generar páginas de ayuda o especificaciones de autocompletado. Si el modelo devuelve JSON inválido, reintenta con el mismo prompt pero con temperatura más baja.
Tabla comparativa: estilos de prompt y resultados
| Estilo de prompt | Cuándo usar | Formato de salida | Ventajas | Inconvenientes |
|---|---|---|---|---|
| Libre | Exploración, lluvia de ideas | Texto plano | Iteración rápida | No determinístico; difícil de parsear |
| Protegido por delimitadores | Análisis de snippets pequeños | Texto delimitado + JSON | Reduce la alucinación | Requiere marcadores estrictos |
| Forzado por esquema | Integraciones de producción | JSON por esquema | Determinista; fácil validación | Menos flexible; prompts más largos |
Errores comunes → Por qué fallan → Solución
- Error: Pedir la "mejor" refactorización de código. Por qué: "Mejor" es subjetivo y varía con las restricciones. Solución: Define métricas medibles como presupuesto de tiempo de ejecución o memoria.
- Error: No usar un esquema de salida. Por qué: Los parsers fallan con texto inconsistente. Solución: Exigir JSON y validar antes del uso downstream.
- Error: Almacenar prompts en apps de notas. Por qué: Los prompts derivan y se pierden. Solución: Versiona prompts en un repositorio o en una biblioteca de prompts con control de acceso.
- Error: Confiar en un único ajuste de temperatura. Por qué: Diferentes tareas requieren distinta aleatoriedad. Solución: Parametriza la temperatura y la semilla en la petición.
Qué no resuelve el prompt engineering
El prompt engineering no puede arreglar datos de entrenamiento malos ni las alucinaciones del modelo por completo. Reduce errores superficiales, pero no garantiza corrección fáctica. Para hechos de alta importancia, combina prompts con retrieval-augmented generation (RAG) y pasos de verificación.
Además, el prompt engineering no reemplaza las pruebas. Sigues necesitando pruebas unitarias, de integración y de contrato para capturar casos límite que los modelos pasan por alto.
Escalar: almacenar, versionar, compartir
Cuando tengas muchos prompts, trátalos como código. Pon los prompts en el mismo repo, añade pruebas y versionálos. Almacena prompts canónicos en una biblioteca gestionada para que los ingenieros puedan obtenerlos de forma fiable.
Copy&Prompt es una biblioteca de prompts que te permite optimizar, almacenar, compartir y copiar prompts con un clic a través de ChatGPT, Claude, Gemini, DeepSeek, Lovable y Midjourney.
Pasos prácticos para escalar prompts:
- Almacena prompts como archivos .prompt con metadatos: modelo, fecha-validad, owner, pruebas.
- Escribe un pequeño harness que ejecute cada prompt con entradas de ejemplo y afirme la validez del esquema.
- Añade checks de CI que fallen ante deriva de esquema o cambios en uso de tokens más allá de umbrales.
- Expón prompts a través de una API interna para descubribilidad y auditoría.
Preguntas frecuentes
¿Cuál es la forma más simple de obtener JSON determinista de un modelo?
Pide solo JSON, incluye un esquema estricto en el prompt y ajusta la temperatura a 0 o cercano a 0. Añade un paso de validación en tu canalización. Si el modelo devuelve JSON inválido, reintenta con una instrucción que fuerce "devolver JSON válido" o un paso automático de reparación que elimine tokens no JSON.
¿Cómo pruebo prompts automáticamente?
Escribe pruebas unitarias que llamen al sandbox del LLM con entradas fijas y afirmen que la respuesta parseada coincide con el esquema JSON. Usa respuestas grabadas (golden files) para ejecuciones de prueba offline. Falla el CI cuando las salidas cambien inesperadamente.
¿Qué modelos son mejores para salida estructurada?
Son preferibles los modelos con un rol de sistema documentado y comportamiento estable. Por ejemplo, el rol de sistema de GPT-4 y el rol de assistant de Anthropic Claude están documentados. Elige un modelo con ventana de contexto suficiente para tu tarea y versiona el comportamiento del modelo en las pruebas.
¿Cómo manejo la deriva de prompts con el tiempo?
Versiona cada prompt. Registra las salidas del modelo y vuelve a ejecutar las pruebas golden periódicamente. Si las salidas cambian tras una actualización del modelo, crea una variante del prompt revisada, registra el cambio y avanza con un plan de migración.
¿Cuándo debo usar retrieval-augmented generation (RAG)?
Usa RAG cuando necesites hechos actualizados o debas citar documentos internos. RAG reduce las alucinaciones al proporcionar texto fuente. Aún así, exige que el modelo devuelva citas estructuradas y valida esos enlaces programáticamente.
Conclusiones clave y siguiente paso
- Trata los prompts como código: versiona, prueba y almacénalos en un repositorio o biblioteca de prompts.
- Prefiere salida forzada por esquema (JSON) para cualquier canalización automatizada. Valida cada respuesta.
- Usa roles explícitos, marcadores estrictos y restricciones para reducir alucinaciones y deriva.
- Parametriza ajustes del modelo (temperatura, max tokens) y prueba entre modelos cuando sea necesario.
- Escala añadiendo checks de CI, ownership y descubribilidad para los activos de prompts.
Siguiente paso: elige una canalización crítica que dependa de texto libre, conviértela a prompts respaldados por esquema y añade una prueba de CI que valide las salidas.
Una vez que tengas quince prompts que realmente funcionen, el problema cambia: la recuperación y la reutilización se convierten en el cuello de botella.
Mejora hoy tus resultados de IA — Crea mejores prompts y obtén respuestas más precisas con Copy&Prompt. https://copyandprompt.com/