Saltar al contenido principal
Actualizado el Nov 1, 2026

Mensajes del Sistema y Herramientas

Lo que aprenderás
  • Cómo agregar mensajes del sistema que instruyen a tu agente LLM
  • Cómo configurar herramientas de llamada a funciones que el agente puede usar
  • Cómo configurar pre-acciones que se ejecutan antes de que la IA procese un mensaje

Cuando creas un agente basado en LLM, tres de las cinco pestañas de configuración controlan lo que el agente sabe, lo que puede hacer y lo que sucede antes de que responda. Esta página cubre las pestañas Mensajes, Acciones y Herramientas.

Pestaña Mensajes -- Mensajes del sistema​

La pestaña Mensajes contiene la sección de Mensajes del sistema. Los mensajes del sistema son las instrucciones que le das al modelo de lenguaje antes de que comience cualquier conversación con el contacto. Definen la personalidad, el conocimiento, los límites y el comportamiento del agente.

Cómo funcionan los mensajes del sistema​

Los mensajes del sistema se evalúan y se envían al LLM con cada solicitud, antes del historial de la conversación. El modelo lee estas instrucciones y las sigue al generar las respuestas. Puedes agregar varios mensajes del sistema, y se procesan en orden. Como se vuelven a evaluar en cada mensaje, los valores dinámicos que contienen (ver más abajo) siempre reflejan el turno actual de la conversación.

Agregar mensajes del sistema​

  1. Abre tu agente LLM y ve a la pestaña Mensajes.
  2. Verás un área de lista para los mensajes del sistema.
  3. Haz clic en el botón "Agregar Elemento" para agregar un nuevo mensaje del sistema.
  4. Escribe tu instrucción en el campo de texto que aparece.
  5. Repite para agregar tantos mensajes del sistema como necesites.

Consejos para escribir mensajes del sistema efectivos​

  • Identidad: Dile al agente quién es. Ejemplo: "Eres el agente virtual de Bella Salon, un estudio de cabello y belleza en el centro de Lisboa."
  • Conocimiento: Proporciona datos clave. Ejemplo: "Nuestros servicios incluyen cortes de cabello (desde 25 euros), coloración y peinados. Abrimos de martes a sábado, de 9am a 7pm."
  • Tono: Establece el estilo de comunicación. Ejemplo: "Sé amigable, profesional y conciso. Usa el nombre del contacto cuando sea posible."
  • Límites: Define lo que el agente no debe hacer. Ejemplo: "Nunca discutas los precios de la competencia. No hagas afirmaciones médicas ni legales. Si no estás seguro, ofrece conectar al contacto con un agente humano."
  • Derivación: Explica cuándo transferir. Ejemplo: "Si el contacto pide hablar con una persona, o si no puedes resolver su consulta en 3 intercambios, transfiere la conversación a un agente humano."

Usar variables dinámicas en los mensajes del sistema​

Los mensajes del sistema son expresiones CEL, así que puedes insertar información dinámica en tiempo de ejecución. Esto te permite personalizar el comportamiento del agente según el contacto, el mensaje entrante o la conversación.

Escribe una expresión CEL nativa usando las variables disponibles. Para un prompt fijo, usa el control de texto literal para crear una cadena CEL entre comillas y con los caracteres escapados. Consulta las dos opciones de escritura en el editor de expresiones CEL.

Variables disponibles:

VariableDescripción
contactInformación del contacto (nombre, etiquetas, atributos personalizados)
contactMessageEl mensaje entrante (tipo, contenido de texto, media, timestamp)
conversationLa sesión de chat (canal, estado, último mensaje)
companyEl registro de tu empresa

Ejemplos:

  • Personalizar saludos: 'The contact name is ' + contact.name
  • Incluir las etiquetas del contacto: 'Contact tags: ' + contact.tags.join(', ')
  • Comportamiento condicional según el tipo de mensaje: contactMessage.type == 'text' ? contactMessage.body.text : '(media message)'
tip

Usa el panel Explorer para explorar todas las variables disponibles y sus propiedades. Haz clic en una variable para ver sus subcampos e insertarlos en tu expresión.

Pestaña Herramientas -- Llamada a funciones​

La pestaña Herramientas te permite darle a tu agente la capacidad de llamar funciones externas durante una conversación. Esto se conoce como "llamada a funciones" o "uso de herramientas": el agente puede buscar datos, realizar cálculos, verificar disponibilidad o crear reservas.

nota

Las opciones de la pestaña Herramientas solo aparecen cuando el agente realmente puede usar herramientas. Si activas Habilitar salidas estructuradas (en la pestaña Avanzado), o si el modelo seleccionado no admite la llamada a funciones, los campos Selección de herramienta, Herramientas y Servidores MCP se ocultan y la pestaña aparece vacía.

Selección de herramienta​

En la parte superior de la pestaña Herramientas encontrarás el desplegable Selección de herramienta con cuatro opciones:

  • auto (predeterminado): El modelo decide por sí mismo cuándo llamar a una herramienta según el contexto de la conversación.
  • required: El modelo debe llamar a una herramienta antes de responder.
  • none: El modelo nunca llama a herramientas.
  • function: Se fuerza al modelo a llamar a una herramienta específica. Al seleccionar esta opción se revela un campo Función donde eliges la herramienta por su nombre.

Agregar herramientas​

  1. Ve a la pestaña Herramientas en tu agente LLM.
  2. En la lista de Herramientas, haz clic en el botón "Agregar Elemento".
  3. Configura la herramienta proporcionando su nombre, descripción y esquema de parámetros. La descripción es crítica porque el LLM la lee para decidir cuándo y cómo usar la herramienta. Junto a ellos hay tres opciones, todas desactivadas de forma predeterminada:
    • Oculto: la herramienta queda fuera de la lista de herramientas que se envía al modelo, así que el agente nunca la llama directamente. Sigue pudiendo llamarse por su nombre desde las acciones de otra herramienta.
    • Seguro en paralelo: la herramienta puede ejecutarse al mismo tiempo que otras llamadas de solo lectura en el mismo turno. Déjalo desactivado para herramientas que modifican datos o dependen del orden de las llamadas — y ten en cuenta que una herramienta con acciones siempre se ejecuta de forma secuencial, independientemente de esta opción.
    • Termina el turno (endsTurn): después de que esta herramienta se ejecuta, si el contacto ya recibió una respuesta durante la ejecución, la ejecución se detiene ahí y el modelo no recibe otro turno. Una acción que falló no lo impide — lo que decide es si una respuesta llegó al contacto. Ver Terminar el turno después de una herramienta.
  4. En la sección Acciones de la herramienta, añade pasos cuando necesite consultar datos, llamar a una API o modificar un registro. Una herramienta también puede tener cero acciones y devolver un resultado CEL puro por function.output.main, incluida una función de biblioteca del tenant con versión fijada. Los parámetros están disponibles directamente por nombre en esa expresión.
  5. En la sección Salida, configura lo que la herramienta devuelve al modelo. Principal es el único campo aquí: una expresión CEL cuyo valor se entrega al modelo después de que se ejecutan las acciones. Si lo dejas vacío, la herramienta no devuelve nada útil al agente, así que complétalo con lo que el modelo necesita ver.
  6. Repite para cada herramienta a la que quieras que el agente tenga acceso.
{
"type": "function",
"function": {
"name": "normalize_name",
"description": "Return a normalized name without calling an action",
"parameters": [{"name": "value", "type": "string", "isRequired": true}],
"actions": [],
"output": {"main": {"expr": "text.nameKey(value)", "onFailure": "throw"}}
}
}
nota

De forma predeterminada, el runner devuelve cada resultado de herramienta al modelo como parte del bucle normal del agente, así que un nuevo turno del modelo ocurre por sí solo — tú decides, mediante Principal, qué llega a ver el modelo. La única forma de saltarse ese turno es Termina el turno, más abajo.

Terminar el turno después de una herramienta​

Algunas herramientas son la respuesta: un menú de opciones enviado con Componer Respuesta de la Conversación (type: "options"), un documento generado, una confirmación de reserva. Si el modelo toma otro turno después de una herramienta así, lo que escriba llega después del menú — en WhatsApp, como texto debajo de los botones. Activa Termina el turno (endsTurn) en la herramienta para evitarlo.

Cuando el modelo llama a una herramienta con Termina el turno activado, tres cosas impiden que esa llamada termine el turno, y el modelo recibe entonces su siguiente turno con normalidad:

  • los argumentos no eran JSON válido, así que la herramienta no se ejecutó;
  • Principal falló al evaluarse — el modelo recibe el error como resultado de la herramienta;
  • la llamada repitió una con los mismos argumentos que ya había devuelto el mismo resultado dos veces en esta ejecución, así que el runner respondió con ese resultado en lugar de volver a ejecutar la herramienta.

Una acción que falla no está en esa lista. El runtime registra el fallo en ese paso — estado failed, con el error en el log del agente — y sigue con la siguiente acción y con Principal, así que la llamada sigue contando como ejecutada; una acción cuya condición no puede evaluarse se omite y tampoco lo impide. Lo que decide es si una respuesta llegó de verdad al contacto — un menú cuyo envío falló igual termina la ejecución si un mensaje anterior de esta ejecución sí llegó al contacto — así que el runner comprueba si el contacto recibió algo durante esta ejecución, por las acciones de esta herramienta o antes:

  • Sí: la ejecución termina justo después de ese lote de llamadas a herramientas, igual que cuando una herramienta envió la respuesta y el último turno del modelo vino vacío (tool_reply). El modelo no recibe otro turno, y el log del agente registra "Run ended by an endsTurn tool after its actions".
  • No — el envío falló, por ejemplo, o el único mensaje fue para otra persona: la opción se ignora en esta llamada, se registra una advertencia ("endsTurn tool finished without a user-visible reply; the run continues") y la ejecución sigue con normalidad, así que el modelo todavía puede responder.

Algunos detalles más:

  • Funciona en las herramientas definidas en esta pestaña. Las herramientas de servidores MCP y las herramientas integradas no pueden terminar el turno.
  • Si el modelo llamó a otras herramientas en el mismo turno, igual se ejecutan y se guardan en el historial, pero el modelo no llega a leer sus resultados antes de que termine la ejecución.
  • Una pausa wait_for_user pedida en el mismo turno tiene prioridad: la ejecución termina esperando al contacto.
  • El modelo sí ve el menú en su próxima ejecución: los menús de opciones que envió el agente se reproducen en su historial tal como los vio el contacto (título, descripción y etiquetas numeradas), así que un toque que llega como el valor de una opción puede leerse contra el menú que la ofreció.

Qué envíos cuentan como respuesta del agente​

Termina el turno, y la regla de que una ejecución cuyo último turno del modelo vino vacío sigue contando como respondida cuando una herramienta ya envió la respuesta (tool_reply), dependen de que el contacto ya haya sido respondido. Solo cuentan los mensajes entregados a esta conversación:

  • Los mensajes que Componer Respuesta de la Conversación entrega aquí cuentan, uno por mensaje, y también los que Enviar Mensaje al Contacto entrega al propio contacto de la ejecución.
  • Un mensaje enviado a otro contacto — una herramienta que avisa a alguien del equipo, por ejemplo — no cuenta. Si eso es todo lo que envió la ejecución y el último turno del modelo vino vacío, la ejecución termina como error (no_output) en lugar de registrarse como respuesta, porque el contacto no recibió nada. Deja que el modelo escriba la respuesta, o envíala a esta conversación desde la herramienta.
  • Una acción que no informa qué mensajes envió — ejecutar un workflow manual, o llamar a una función de recurso — cuenta como una respuesta, porque el runtime no puede saber adónde fue su mensaje.
  • Los mensajes internos de estado nunca cuentan.

Ejemplos de herramientas​

HerramientaPropósito
Verificar disponibilidad del calendarioPermite que el agente consulte horarios de citas disponibles
Crear citaPermite que el agente reserve una cita para el contacto
Buscar registro del contactoRecupera los detalles del contacto de tu base de datos
Enviar notificaciónEnvía una alerta a un miembro del equipo

Servidores MCP​

Debajo de la lista de Herramientas, la lista Servidores MCP te permite conectar servidores MCP (Model Context Protocol) externos cuyas herramientas quedan disponibles para el agente en tiempo de ejecución, junto con las herramientas que defines localmente. Para cada servidor proporcionas:

  • URL del servidor: La dirección pública HTTP(S) del servidor.
  • Etiqueta del servidor y Descripción (opcionales): Te ayudan a ti y al modelo a identificar el servidor.
  • Requerir aprobación: Controla la aprobación en la ejecución MCP nativa admitida de OpenAI Responses. La vía del puente MCP local no aplica este control; no es una barrera universal de aprobación para todas las vías de ejecución de modelos/servidores.
  • Herramientas permitidas (opcional): Restringe cuáles de las herramientas del servidor puede usar el agente.
  • Encabezados (opcional): Encabezados HTTP enviados al servidor, normalmente para autenticación.

Las herramientas del servidor se descubren automáticamente y se ofrecen al modelo junto con tus herramientas locales.

tip

Comienza con una o dos herramientas esenciales y pruébalas a fondo antes de agregar más. Cada herramienta aumenta la capacidad del agente pero también agrega complejidad. El modelo necesita descripciones claras de las herramientas para usarlas correctamente.

Higiene de los mensajes de herramienta

Para las herramientas que pueden encadenarse en una sola solicitud del usuario, evita agregar una Compose conversation response solo de estado como primera acción de la herramienta. Esa acción se ejecuta cada vez que se llama a la herramienta, por lo que un flujo buscar -> abrir -> resumir puede enviar varios mensajes de "estoy trabajando" antes de la respuesta útil. Prefiere devolver los datos de la herramienta y dejar que la respuesta final del agente los resuma una sola vez. Si una herramienta lenta necesita un aviso de progreso, envía como máximo un aviso corto para toda la solicitud.

Pestaña Acciones -- Pre-acciones​

La pestaña Acciones te permite configurar Pre-acciones -- pasos que se ejecutan automáticamente antes de que el LLM procese cada mensaje entrante. Las pre-acciones pueden transformar datos, llamar a APIs, definir variables o ejecutar otra lógica para preparar el contexto para la IA.

Si necesitas una guía campo por campo de los tipos de acción disponibles, consulta la Referencia de Acciones.

Configurar pre-acciones​

  1. Ve a la pestaña Acciones en tu agente LLM.
  2. Verás la sección de Pre-acciones.
  3. Haz clic en "Agregar paso" para agregar un nuevo paso de pre-acción.
  4. Configura el paso con la lógica deseada.
  5. Agrega pasos adicionales según sea necesario. Los pasos se ejecutan en secuencia.

Depurar pre-acciones​

La pestaña Acciones incluye un botón Iniciar depuración (cuya descripción emergente dice "Depurar todo"). Al hacer clic, ejecuta todos los pasos de pre-acción en modo de depuración para que puedas ver lo que hace cada paso, qué datos produce y si ocurre algún error.

tip

Usa las pre-acciones para enriquecer el contexto de la conversación antes de que la IA responda. Por ejemplo, una pre-acción podría obtener el historial de pedidos recientes del contacto para que el agente pueda referenciarlo en su respuesta sin necesitar una llamada a herramienta durante la conversación.

Próximos pasos​