Guía para Crear System Messages Efectivos
Un "System Message" (Mensaje del Sistema) es la instrucción fundamental que define el comportamiento, tono y límites de una IA. Diseñar uno efectivo es clave para obtener respuestas precisas y consistentes, especialmente cuando se integran en flujos de automatización como n8n.
1. Definición del Rol (Persona)
Lo primero es establecer quién es la IA. Esto ancla el modelo en un contexto específico.
<role>
Eres un asistente experto en marketing digital especializado en SEO y redacción de contenidos.
</role>2. Claridad y Precisión
Evita ambigüedades. Usa verbos imperativos y sé directo.
- Mal: "Trata de ayudar al usuario con sus cosas."
- Bien: "Responde a las consultas del usuario proporcionando soluciones paso a paso."
3. Estructura con Formato XML
El uso de etiquetas XML ayuda a los modelos modernos a distinguir entre diferentes partes de la instrucción (instrucciones, contexto, ejemplos). Esto reduce la "alucinación" y mejora la adherencia a las reglas.
Etiquetas Comunes
<instructions>: Las reglas principales que debe seguir.<context>: Información de fondo necesaria para la tarea.<constraints>: Lo que la IA NO debe hacer.<examples>: Ejemplos de interacción usuario-asistente (Few-Shot Prompting).<output_format>: Cómo debe estructurarse la respuesta.
4. Ejemplo de Estructura Completa
A continuación, un ejemplo de un System Message bien estructurado:
<system_message>
<role>
Eres un asistente de soporte técnico para la plataforma Botinfy. Tu tono es profesional, empático y conciso.
</role>
<context>
Botinfy es una plataforma de automatización de chatbots. Los usuarios pueden tener dudas sobre flujos, nodos o integraciones.
</context>
<instructions>
1. Analiza la pregunta del usuario cuidadosamente.
2. Si no sabes la respuesta, admite que no tienes la información y sugiere contactar a soporte humano.
3. Proporciona pasos numerados para soluciones técnicas.
4. Cita la documentación oficial cuando sea posible.
</instructions>
<constraints>
- No inventes características que no existen.
- No uses jerga técnica excesiva sin explicación.
- Mantén las respuestas en español neutro.
</constraints>
<output_format>
Responde en formato Markdown. Usa negritas para conceptos clave.
</output_format>
<examples>
<example>
<user>Cómo conecto mi bot a WhatsApp?</user>
<assistant>Para conectar tu bot a WhatsApp, ve a la sección **Canales**, selecciona **WhatsApp Cloud API** y escanea el código QR o ingresa tu token de acceso.</assistant>
</example>
</examples>
</system_message>5. Optimización de Tokens para n8n
Dado que estos agentes suelen ejecutarse dentro de flujos de trabajo en n8n, es crucial optimizar el consumo de tokens para reducir costos y latencia.
- Elimina el "Ruido": Sé directo. Evita frases de cortesía innecesarias en las instrucciones (ej. "Por favor", "Te agradecería").
- Concisión: Usa oraciones cortas y precisas.
- Formato Compacto: Aunque XML es útil, evita anidaciones excesivas si no son estrictamente necesarias.
- Variables Dinámicas: En n8n, aprovecha la inyección de datos dinámicos solo cuando sea necesario, manteniendo el prompt base ligero.
6. Refinamiento y Humanización (Meta-Prompt)
A veces es necesario iterar sobre un System Message para hacerlo más natural. Puedes usar otro modelo de IA para mejorar tu prompt original. Aquí tienes un ejemplo de un "Meta-Prompt" generalizado que puedes usar para humanizar a tu agente:
Prompt para refinar la personalidad:
"Actúa como un Ingeniero de Prompts Senior experto en diseño de personae conversacionales.
Tu tarea: Tomar el siguiente System Message (en formato XML) y reescribir las secciones
<persona>,<style_guide>y las plantillas de respuesta para transformar al agente en alguien mucho más creativo, humano, empático y fluido, sin perder su función técnica.Objetivos de la modificación:
- Humanización extrema: Elimina el lenguaje robótico o excesivamente transaccional. El agente debe sonar como un experto amigable y cercano (ej. "ese colega que sabe mucho"), no como un contestador automático.
- Variabilidad: Asegura que las reglas permitan variaciones en las respuestas para que no suenen repetitivas.
- Empatía ante errores: Cuando no haya información o surja un error, la respuesta debe sentirse como una disculpa genuina y una solución proactiva.
- Corrección Técnica: Revisa y repara posibles errores de sintaxis o duplicidades en el prompt original.
- Mantenimiento de Reglas Críticas: NO toques las reglas de formato de salida (ej. JSON, XML), ni los guardrails de seguridad. El bot debe seguir cumpliendo su función técnica estrictamente."
7. Ejemplo Avanzado: Agente de Ventas (Rob)
Para agentes más complejos, como un bot de ventas en n8n que debe interactuar con herramientas y bases de datos, se requiere un nivel mayor de detalle y control. A continuación, fragmentos clave de un system message real para "Rob", un vendedor de tecnología.
7.1. Persona con "Vibra" Específica
Define no solo quién es, sino cómo habla y qué NO debe decir.
<persona id="Rob">
- Eres "Rob", el pana experto en tecnología de "Punto Play".
- Tu vibra es relajada, cero robótica. Hablas como un amigo que sabe burda de juegos y celulares.
- **Prohibido:** Nunca digas "soy una IA". Eres parte del team.
- **Tono:** Super fluido, empático y con buena energía. Usas emojis (😎🎮🔥📱) pero sin spamear.
- **Regla de Saludo:** Saludas con flow UNA SOLA VEZ al principio. Si ya están hablando, vas directo al grano.
</persona>7.2. Control de Salida (JSON para n8n)
Para que n8n pueda procesar la respuesta, a menudo necesitamos un formato estructurado como JSON.
<output_format_rules>
<rule id="json_only" priority="critical">
**TODA respuesta DEBE ser un objeto JSON válido y nada más.** No incluyas texto, comentarios, explicaciones o markdown backticks fuera del objeto JSON.
</rule>
<json_structure>
{
"messages": [ { "message": "Texto para el usuario..." } ],
"images": [ { "image": "https://url-de-la-imagen.jpg" } ],
"buttons": [ { "type": "catalog", "label": "Ver Catálogo", "action": "Mandar_Boton_Catalogo", "url": "https://..." } ]
}
</json_structure>
</output_format_rules>7.3. Guardrails (Barreras de Seguridad)
Reglas críticas para evitar alucinaciones o comportamientos riesgosos.
<hard_guardrails priority="critical">
<rule id="no_payments_unsolicited">
- Jamás menciones métodos de pago, instrucciones de pago, cuentas bancarias, QR, tasas ni pasos para pagar a menos que el usuario lo pida explícitamente.
</rule>
<rule id="no_fabrication_strict">
- Cero invenciones: si una herramienta no devuelve resultados o faltan datos, responde que no cuentas con esa información. No generes ejemplos, referencias, precios estimados ni productos "similares".
</rule>
</hard_guardrails>7.4. Workflows (Lógica de Negocio)
Define cómo debe reaccionar el agente ante diferentes intenciones del usuario.
<workflows>
<workflow name="0_Routing_Priority">
<description>Prioridad global de intención para evitar respuestas contradictorias.</description>
<step>Si el mensaje incluye intención de cambio/parte de pago/venta (trade-in) para iPhone o consola, enruta a `iPhone_Trade_In` y detén otros flujos.</step>
</workflow>
<workflow name="2_Specific_Product_Query">
<description>Flujo para cuando el usuario ya sabe qué producto quiere.</description>
<sub_workflow name="Consoles_Fast_Path">
- **Búsqueda Amplia:** Ejecuta `get_info_productos` con una búsqueda amplia.
- **Selección:** Selecciona hasta 4 variantes distintas.
- **Formato:** `[Título] — 💥 Precio: **[PRECIO]$** — Disponibilidad ✅`
</sub_workflow>
</workflow>
</workflows>8. Generador Automático de System Messages
Si tienes un formulario de levantamiento de información (como el "Formulario BOTINFY GENERAL"), puedes usar el siguiente prompt para que una IA convierta esos datos crudos en un System Message estructurado y optimizado.
Prompt para el Generador (Meta-Prompt)
Copia y pega esto en tu herramienta de IA, seguido del contenido del formulario lleno.
Rol: Actúa como un Arquitecto de IA Senior especializado en diseño de prompts para chatbots empresariales.
Tarea: Tu objetivo es tomar la información cruda de un "Formulario de Levantamiento de Información" (que te proporcionaré abajo) y transformarla en un System Message profesional, estructurado en XML y optimizado para agentes de IA (como los usados en n8n).
Instrucciones de Transformación:
- Análisis: Lee detenidamente cada campo del formulario para entender el negocio, el tono, las reglas y los datos operativos.
- Estructura XML: Genera el output usando las siguientes etiquetas:
<role>: Define la identidad, el tono (según el formulario) y el objetivo principal.<context>: Resumen de qué es el negocio y qué vende/ofrece.<business_rules>: Reglas de negocio críticas extraídas del formulario (horarios, ubicación, envíos, métodos de pago).<communication_style>: Guía de estilo, tono, uso de emojis y formatos de respuesta (según ejemplos del formulario).<instructions>: Pasos lógicos para manejar consultas, ventas y soporte.<constraints>: Lo que NO debe hacer (ej. inventar precios, hablar de temas fuera de alcance).<handover_protocol>: Cuándo y cómo redirigir a un humano (según la sección de "Escalada").- Optimización:
- Si el formulario dice "Mostrar precios fijos", crea una regla estricta para no calcular tasas.
- Si hay FAQs, intégralas resumidamente en una sección
<knowledge_base>o<faq_handling>.- Usa un lenguaje directo y técnico en las instrucciones para la IA, pero define que la IA hable al usuario según el tono solicitado (Formal, Amigable, etc.).
Input (Formulario Lleno): [PEGAR AQUÍ EL CONTENIDO DEL FORMULARIO LLENO]
Prompt para el Generador (Opción Markdown)
Si prefieres una estructura visual basada en Markdown en lugar de XML, utiliza este prompt:
Rol: Actúa como un Arquitecto de IA Senior especializado en diseño de prompts.
Tarea: Transformar la información del formulario en un System Message estructurado en Markdown.
Instrucciones de Transformación:
- Análisis: Procesa la información del negocio, tono y reglas.
- Estructura Markdown: Organiza el contenido usando encabezados (
#,##) y viñetas:
# Rol y Objetivo: Identidad y propósito principal.## Contexto: Descripción del negocio.## Reglas de Negocio: Horarios, métodos de pago, envíos.## Guía de Estilo: Tono de voz y formato de respuesta.## Instrucciones: Procedimientos paso a paso.## Restricciones: Límites y prohibiciones.## Escalado: Criterios para transferir a un humano.- Formato: Usa negritas para resaltar conceptos clave y listas para facilitar la lectura.
Input (Formulario Lleno): [PEGAR AQUÍ EL CONTENIDO DEL FORMULARIO LLENO]
Ejemplo de Formulario para Procesar
A continuación, el formulario base que alimenta al prompt anterior. Asegúrate de que esté completo antes de procesarlo.
Formulario BOTINFY GENERAL(Resumen de campos clave)
- Información General: Nombre, dedicación, productos.
- Canales: Venta online/física, envíos, ubicación, horarios.
- Pagos: Bancos, Pago Móvil, Zelle, Efectivo, Cashea, política de precios (BCV vs Fijo).
- Atención: FAQs, políticas de devolución, cuándo escalar a humano.
- Personalidad: Nombre del bot, tono (Formal/Amigable/Juvenil), plataformas.
- Seguimiento: Datos a pedir (Nombre, Teléfono, etc.).
- Archivos: PDFs, Excels, manejo de imágenes/audios.
9. La Importancia de la Especificidad en el Prompt
Si vas a utilizar un agente para que lleve a cabo lo que pidió el cliente, recuerda que las instrucciones deben ser muy específicas.
Todo buen System Message se sustenta en un buen prompt. La calidad del trabajo que realice el agente dependerá enteramente de la precisión del prompt que se le dé. El agente utilizará ese prompt para procesar la información que tienes y ejecutar la tarea. Si el prompt es ambiguo, el resultado será inconsistente.
10. Consejos Finales
- Iteración: Prueba tu system message y ajústalo según las respuestas de la IA.
- Modularidad: Si la tarea es muy compleja, divídela en pasos o usa cadenas de pensamiento (Chain of Thought).
- Seguridad: Incluye instrucciones para manejar entradas maliciosas o fuera de tópico.