Las bases del prompting
Para interrogar a un LLM, escribe una instrucción completa como si le explicaras el encargo a un colega que no conoce ni tu proyecto ni tus hábitos: la tarea precisa, el contexto útil, los datos que debe procesar claramente separados y el formato de respuesta esperado. Puedes enviarla a través de una interfaz de chat, de la línea de comandos o de la API. El modelo no adivina ni la intención ni la forma: todo lo que no esté escrito será improvisado.
Esta guía responde primero a la pregunta del título, luego detalla la estructura de un prompt, los errores que consumen más tiempo, las técnicas que funcionan en casi todos los modelos y lo que cambia con un modelo local de pequeño tamaño. Los principios se basan en la documentación oficial de ingeniería de prompts de Anthropic y en la de Ollama.
#Cómo hacer preguntas a un LLM: tres formas, una regla
Un modelo de lenguaje continúa un texto. Por tanto, lo que produce depende casi enteramente de lo que le proporciones. La documentación de Anthropic establece una regla de oro útil para cualquier modelo: muestra tu prompt a un colega que no conozca la tarea y pídele que lo ejecute; si no sabe qué hacer, el modelo tampoco lo sabrá. Recomienda pedir explícitamente lo que se quiere, incluido el nivel de esfuerzo, en lugar de esperar que el modelo lo deduzca a partir de una instrucción vaga. Esta regla vale tanto para un modelo de 8 mil millones de parámetros en tu equipo como para un modelo de vanguardia. Los parámetros, la cuantización o el modelo elegido importan, pero un prompt vago arruina cualquier modelo.
#Tres formas de enviar una pregunta a un modelo local
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
- Interfaz de chat
- Open WebUI, LM Studio, Jan: tú escribes, el modelo responde, el historial se conserva. La vía más sencilla para comenzar.
- Línea de comandos
- ollama run suivi du nom du modèle ouvre une session interactive dans le terminal. Pratique pour des essais rapides.
- API
- Un programa envía una solicitud HTTP al servidor local y recibe la respuesta en formato JSON. Es el camino de los scripts y las automatizaciones.
El mensaje con el rol system establece el marco permanente; el mensaje con el rol user contiene la solicitud. La guía sobre prompts de sistema detalla qué incluir en el primero. Sea cual sea la vía, la calidad de la respuesta depende de lo que contenga el mensaje.
#Anatomía de un buen prompt: rol, tarea, contexto, formato
Muchas guías destacan cuatro elementos: el rol, la tarea, el contexto y el formato. No es una norma, sino un recurso mnemotécnico que coincide con las recomendaciones de la documentación: ser preciso, dar el contexto, estructurar, fijar el formato y, si es necesario, definir un rol. La documentación de Anthropic señala que un rol expresado en una sola frase en el mensaje del sistema ya orienta el tono y el comportamiento.
- Rol
- Una frase que define el papel del modelo: «Eres un corrector de francés riguroso». El rol determina el registro, no la inteligencia.
- Tarea
- El verbo de acción, lo más preciso posible: «Resume en cinco viñetas basadas en hechos, sin adjetivos» es mejor que «Resume».
- Contexto
- Los datos a procesar y el motivo de la solicitud. Explicar el porqué de una restricción ayuda al modelo a generalizarla correctamente.
- Formato
- Longitud, estructura, idioma, tono. Sin estas especificaciones, el modelo elige por sí mismo.
Las etiquetas que delimitan el contrato en el ejemplo anterior no son decorativas: la documentación indica que las etiquetas XML ayudan al modelo a distinguir sin ambigüedad las instrucciones, el contexto, los ejemplos y las entradas variables. Elige nombres coherentes y descriptivos y utiliza el mismo delimitador de un prompt a otro.
#Los errores que hacen perder más tiempo
| Error | Síntoma | Corrección |
|---|---|---|
| Instrucción en palabras clave (« resumen contrato riesgos ») | El modelo no distingue si es una pregunta o un comando | Escribir una frase completa con un verbo |
| Datos mezclados con instrucciones | El modelo procesa parte de tus instrucciones como contenido | Delimitar los datos con etiquetas |
| Expectativas implícitas | Longitud, idioma o tono inesperados | Escribir la longitud, el idioma y el tono |
| Sólo prohibiciones (« no hagas Markdown ») | Lo que el modelo hace en realidad | Formular lo que se quiere: «responde en párrafos redactados» |
| Prompt largo sin estructura | Instrucciones ignoradas | Numerar los pasos, separar los bloques |
| Restricción sin motivo | Aplicación poco acertada | Explicar por qué: «el texto se leerá en voz alta» |
En la penúltima línea, la documentación de Anthropic recomienda decirle al modelo lo que debe hacer en lugar de lo que no debe hacer, y da como ejemplo sustituir «no uses Markdown» por una descripción de la forma deseada: párrafos de prosa fluida. En la última, recomienda explicar el motivo de una instrucción: el modelo deduce de él una regla general en lugar de una prohibición literal.
#Técnicas que funcionan en casi todos los modelos
#Dar ejemplos
Los ejemplos, según la documentación de Anthropic, son uno de los métodos más fiables para orientar el formato, el tono y la estructura. Tres a cinco ejemplos suelen dar los mejores resultados, siempre que sean pertinentes, variados (incluyendo casos límite) y encerrados entre etiquetas para no ser interpretados como instrucciones. Es especialmente eficaz para clasificar, extraer o reformatear.
#Pedir que razone
En un problema lógico, un cálculo o código, pedir al modelo que establezca los pasos antes de concluir mejora a menudo el resultado, a costa de una respuesta más larga. Algunos modelos locales lo hacen solos: la documentación de Ollama explica que los modelos de razonamiento incluyen un campo 'thinking' separado de la respuesta final, que puedes leer, mostrar o ocultar. Para los demás, una frase basta: «Explica tu razonamiento paso a paso, luego da la respuesta final».
#Colocar un documento largo
La documentación de Anthropic recomienda, para entradas de más de 20 000 tokens, colocar los documentos largos al principio del prompt, antes de la pregunta, y escribir la pregunta al final: según sus pruebas, esto puede mejorar la calidad de las respuestas hasta un 30 %, especialmente en entradas con varios documentos. Este resultado proviene de pruebas realizadas con los modelos Claude: verifícalo en tu modelo local con tus propios textos.
#Hacer que se verifique la respuesta
Pide al modelo que cite, para cada afirmación, el pasaje del texto proporcionado que la justifique, o que escriba «no verificado» si no encuentra ninguno. Esta instrucción no elimina las alucinaciones, pero permite detectar los errores. La guía sobre las alucinaciones detalla sus limitaciones.
#Un caso concreto: de una instrucción vaga a un prompt usable
Toma una petición típica: pegas un acta de reunión y escribes «haz un resumen». El modelo no sabe para quién es el resumen, cuántas líneas esperas, si hay que listar decisiones o tareas ni en qué idioma responder. Produce un texto genérico de longitud arbitraria, que corregirás a mano.
| Elemento | Versión vaga | Versión especificada |
|---|---|---|
| Tarea | Haz un resumen | Resume este informe en cinco viñetas |
| Destinatario | No especificado | Para un director que no estaba presente |
| Contenido esperado | No especificado | Decisiones tomadas, luego acciones con responsable y fecha |
| Formato | Libre | Lista con viñetas, una frase por viñeta, máximo 20 palabras |
| Garde-fou | Ninguno | Si falta una fecha o un responsable, escribir «no especificado» en lugar de inventarlo |
La última línea es la más útil con un modelo local: darle una salida explícita cuando falta información reduce las invenciones. Cada añadido solo requiere una frase, y el conjunto transforma un resultado que necesita revisión en uno aprovechable. Repite la prueba con tres informes diferentes antes de fijar tu prompt: un prompt que solo funciona con un ejemplo es un prompt frágil. Guarda después tu mejor versión en un archivo de texto: reutilizada tal cual, te ahorrará más tiempo que cualquier truco de formulación y te permitirá comparar dos modelos con la misma instrucción.
#Imponer un formato de salida
Cuando un programa debe leer la respuesta, una simple frase como «responde en JSON» no siempre es suficiente. Ollama ofrece salidas estructuradas: introduces un esquema JSON en el campo format de la solicitud y la respuesta está obligada a respetarlo. La documentación recomienda también incluir el esquema en el prompt para orientar la respuesta, reducir la temperatura (por ejemplo, a 0) para obtener resultados más deterministas y definir el esquema con Pydantic o Zod para reutilizarlo en la validación. Las salidas estructuradas también funcionan a través de la API compatible con OpenAI mediante response_format. No están disponibles para los modelos en la nube de Ollama.
#Iterar sin empezar desde cero
Una respuesta imperfecta se corrige mejor con una instrucción específica que con un nuevo prompt. Di qué está mal y qué esperas: «rehazlo en tres viñetas de doce palabras como máximo», «un tono más directo, sin fórmulas de cortesía», «añade los tres riesgos más concretos». Si el resultado empeora a medida que avanzan los turnos, suele ser porque el historial ha llenado la ventana de contexto: empieza de nuevo con un resumen.
#Lo que cambia con un modelo local
- Instrucciones más explícitas
- Un modelo pequeño infiere peor lo que no se dice explícitamente. Escribe todo, incluso lo que te parezca evidente.
- Contexto truncado por defecto
- Con menos de 24 GiB de VRAM, Ollama parte de un contexto de unos 4.000 tokens: un texto largo que pegues puede quedar truncado. Amplía la ventana antes de atribuir el problema al prompt.
- Modelos de razonamiento
- Piensan antes de responder: la respuesta llega más tarde y consume tokens de reflexión.
- Menor fiabilidad en francés
- Los modelos pequeños cometen más errores de concordancia. Añade una instrucción de revisión o elige un modelo más grande.
- Temperatura
- Un ajuste bajo (0 a 0,3) es adecuado para la extracción y el JSON; un ajuste más alto, para la redacción. Ver la guía sobre los parámetros.
#Recordatorio antes de enviar un prompt
- Una frase, un verbo
- La tarea se formula como una instrucción completa, con un verbo de acción específico.
- Datos separados
- El texto a procesar está encerrado entre etiquetas, nunca mezclado con las instrucciones.
- Formato escrito
- Se indican la longitud, la estructura, el idioma y el tono.
- Salida explícita
- El modelo sabe qué responder cuando la información falta.
- Uno o dos ejemplos
- Para una extracción o clasificación, un ejemplo vale diez explicaciones.
- Ventana verificada
- El prompt y la respuesta esperada caben en el contexto asignado.
¿Cómo hacer preguntas eficazmente a un LLM?+
¿Un prompt más largo da mejores respuestas?+
¿Debe decirse «tú eres un experto» en el prompt?+
¿Cómo obtener una respuesta en JSON confiable con un modelo local?+
¿Por qué mi modelo local ignora una parte de mi prompt?+
¿Qué diferencia hay entre prompt de sistema y prompt de usuario?+
#Para ir más allá
- Dominar los system prompts
- Temperatura, top-p, top-k: los parámetros
- Comprender la ventana de contexto
- Llamada a funciones y salidas JSON con Ollama
- Alucinaciones: cómo limitarlas
- Tu primera conversación local
- Fuente: Anthropic, buenas prácticas de ingeniería de prompts
- Fuente: Ollama, salidas estructuradas
- Fuente: Ollama, modelos de razonamiento
- Fuente: Ollama, longitud de contexto
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.