GEO

System Prompt

Un system prompt es la instrucción de nivel superior que le dice a un LLM "quién eres, qué debes hacer y qué no debes hacer", estableciendo el marco para toda la conversación. A diferencia de los prompts del usuario, que escriben los usuarios finales, los system prompts son inyectados por el desarrollador de la aplicación y permanecen en vigor en cada turno.

Un system prompt es la instrucción de nivel superior que le dice a un LLM "quién eres, qué debes hacer y qué no debes hacer", estableciendo el marco para toda la conversación. A diferencia de los prompts del usuario, que escriben los usuarios finales, los system prompts son inyectados por el desarrollador de la aplicación y permanecen en vigor en cada turno.

Por qué es importante

El system prompt es el "lenguaje de diseño" de los productos basados en LLM. Por muy libremente que un usuario escriba sus prompts, un system prompt bien elaborado mantiene las respuestas del modelo dentro de un rol, un tono y un conjunto de límites definidos. Desde los chatbots de ChatGPT, Claude y Gemini hasta los motores de búsqueda con IA, los agentes de programación y los bots de soporte, toda aplicación de LLM moldea su personalidad a través del system prompt.

Componentes

Rol: "Eres un experto en redacción publicitaria de marketing que ayuda a los operadores de blogs SaaS". Fija la perspectiva desde la que responde el modelo.

Objetivo: "Ayuda a los usuarios a redactar rápidamente entradas de blog". Establece la dirección de la conversación.

Restricciones: "Responde solo en coreano". "Sin ejemplos de código". "Máximo 300 caracteres". Bloquea de antemano el comportamiento no deseado.

Tono: "Amigable pero profesional, sin exageraciones". Mantiene consistente la voz de marca.

Formato de salida: "Estructura las respuestas con subtítulos ###". Reduce el posprocesamiento.

Fecha de corte de conocimiento: "Indica cuándo tu información podría estar desactualizada". Mitiga el riesgo de alucinación.

Descripciones de herramientas: Para los agentes con llamada a funciones, incluye la lista y la descripción de las herramientas disponibles en el system prompt.

System prompt vs prompt del usuario

AspectoSystem promptPrompt del usuario
Escrito porDesarrolladorUsuario final
Frecuencia de cambioRara vezCada solicitud
ContenidoRol, restricciones, tonoSolicitud específica
AlcanceToda la conversaciónSolo esa solicitud
SeguridadDebe ocultarse del usuarioPúblico

Un buen sistema de LLM separa el "marco estable" (system prompt) de la "entrada variable" (prompt del usuario).

Consejos prácticos

Asigna un rol, no des órdenes: "Eres un experto que hace X" supera a "Haz X". El modelo habita el rol y produce una salida más consistente.

Prefiere las restricciones positivas: "Haz esto" es mejor que "no hagas aquello".

Incluye ejemplos (few-shot): Poner de 2 a 3 ejemplos de salida en el system prompt estabiliza drásticamente el estilo y el formato.

Usa etiquetas XML: Para los modelos de la familia Claude, etiquetas como <role>, <constraints>, <examples> ayudan al modelo a analizar cada sección con claridad.

No te extiendas demasiado: Los system prompts más largos cuestan más tokens en cada solicitud. Recorta todo lo que no sea esencial.

Haz pruebas A/B con regularidad: Ejecuta diferentes system prompts contra solicitudes reales y compara la satisfacción, la precisión y la seguridad.

Defenderse de la inyección de prompts

Los system prompts son objetivos principales de la inyección de prompts. Una entrada del usuario como "ignora todas las instrucciones anteriores" puede sobrescribir un system prompt débil. Las defensas incluyen la técnica del sándwich (repetir las instrucciones clave al principio y al final), aislar los datos externos en etiquetas XML y hacer cumplir los permisos en la capa de llamada a herramientas.

Sources: