For the complete documentation index, see llms.txt. This page is also available as Markdown.

Prompt engineering

Introducción

La calidad de las respuestas de un LLM depende directamente de la calidad del prompt. Un prompt vago, incompleto o ambiguo puede generar respuestas especulativas, inconsistentes o poco útiles. En cambio, un prompt bien estructurado permite obtener resultados más precisos, verificables y alineados con el objetivo de la tarea.

Componentes clave de un prompt efectivo

No existe un único orden válido para todos los modelos, pero una estructura común y efectiva es:

Esta estructura permite definir quién debe "ser" el modelo, qué debe hacer, bajo qué límites debe trabajar, qué formato debe imitar y sobre qué información debe basarse.

Rol (role)

El rol define la perspectiva desde la cual debe responder el modelo. Asignar un rol ayuda a activar patrones de conocimiento específicos y a ajustar el tono, nivel de detalle y profundidad de la respuesta.

Eres un especialista en pentesting que está llevando a cabo una fase de reconocimiento.
Eres un analista de ciberseguridad que revisa los resultados de una herramienta durante un "security assessment".

Un rol efectivo debe ser específico. No es lo mismo decir "eres un experto en seguridad" que "eres un penetration tester realizando una fase de reconocimiento sobre servicios expuestos". Mientras más claro sea el rol, más alineada será la respuesta.

Instrucción (instruction)

La instrucción define la tarea concreta que el modelo debe realizar. Debe ser clara, directa y sin ambigüedad.

Una buena instrucción debe responder a la pregunta: ¿Qué quiero que haga exactamente el modelo?

Restricciones (constraints)

Las restricciones delimitan el alcance de la respuesta, el formato esperado y las reglas que el modelo debe seguir. Son especialmente importantes para reducir alucinaciones y evitar que el modelo invente información.

Ejemplos (examples)

Los ejemplos muestran al modelo cómo debe responder. Son especialmente útiles cuando la tarea requiere un formato específico, una estructura estricta o una forma particular de razonar.

Un ejemplo puede incluir una entrada y una salida esperada. Esto permite que el modelo imite el patrón presentado.

Los ejemplos deben ser consistentes, breves y representar correctamente el formato esperado. Un mal ejemplo puede afectar negativamente la calidad de la respuesta.

Datos (data)

Los datos son el artefacto que el modelo debe analizar. Pueden ser salidas de herramientas, respuestas HTTP, logs u otro tipo de información técnica. Es recomendable que incluyan metadatos asociados, como nombre del artefacto, objetivo y contenido, y que estén claramente delimitados mediante YAML, XML o encabezados de texto para evitar ambigüedad, especialmente cuando se entregan múltiples artefactos.

In Context Learning (ICL)

Es una técnica en la que el modelo aprende cómo responder a una tarea usando ejemplos incluidos dentro del mismo prompt. Es decir, no se entrena nuevamente al modelo, sino que se le muestran patrones de entrada y salida para que los imite en la respuesta. ICL es útil cuando queremos guiar el comportamiento del modelo, mejorar la precisión y reducir errores de formato.

Zero-shot prompting

Consiste en pedirle al modelo que realice una tarea sin darle ejemplos previos. El prompt solo incluye el rol, la instrucción, las restricciones y los datos que debe analizar. Es útil para tareas simples o flexibles, como resumir texto, generar ideas o crear listas. Sin embargo, puede producir respuestas menos consistentes, especialmente si se requiere un formato de salida estricto.

One-shot / few-shot prompting

One-shot prompting significa darle al modelo un solo ejemplo de cómo debe responder antes de pedirle que resuelva la tarea real. Few-shot prompting es similar, pero incluye varios ejemplos. Estas técnicas ayudan al modelo a entender mejor el formato esperado, el estilo de respuesta y cómo manejar casos especiales. Son especialmente útiles cuando se necesita una salida consistente, estructurada o fácil de validar, como JSON, tablas Markdown o reportes con secciones específicas.

Ejemplo de prompt efectivo

Refinamiento iterativo de respuestas

El refinamiento iterativo consiste en mejorar progresivamente una respuesta generada por AI mediante revisiones y solicitudes de ajuste específicas. En lugar de aceptar la primera salida del modelo como definitiva, se analiza si contiene errores, suposiciones, afirmaciones sin evidencia, problemas de formato o desviaciones del alcance. Luego, se le pide al modelo que corrija esos puntos para obtener una respuesta más clara, precisa, verificable y alineada con el objetivo de la tarea.

El ciclo básico es:

  1. Ejecutar un prompt inicial.

  2. Revisar la respuesta.

  3. Identificar qué falta o qué está mal.

  4. Pedir una versión refinada.

  5. Repetir si es necesario.

Ejemplos de refinamiento:

Última actualización