Variables dinámicas
Pasa valores de ejecución para personalizar el comportamiento de tu agente.
Las variables dinámicas te permiten insertar valores de ejecución en los mensajes, prompts de sistema y herramientas de tu agente. Así puedes personalizar cada conversación con datos específicos del usuario sin crear varios agentes.
Descripción general
Puedes integrar variables dinámicas en varios aspectos de tu agente:
- En los prompts de sistema para personalizar el comportamiento y el contexto
- En los primeros mensajes para personalizar los saludos
- En los parámetros y encabezados de herramientas para pasar datos específicos del usuario
Estos son algunos ejemplos en los que las variables dinámicas resultan útiles:
- Personalizar saludos con los nombres de los usuarios
- Incluir detalles de la cuenta en las respuestas
- Pasar datos a llamadas de herramientas
- Personalizar el comportamiento según los niveles de suscripción
- Acceder a información del sistema como el ID de conversación o la duración de la llamada
Las variables dinámicas son ideales para insertar datos específicos del usuario que no deberían estar codificados de forma fija en la configuración de tu agente.
Variables dinámicas del sistema
Tu agente tiene acceso a estas variables del sistema disponibles automáticamente:
system__agent_id- Identificador único del agente que inició la conversación (se mantiene estable durante toda la conversación)system__current_agent_id- Identificador único del agente activo actualmente (cambia tras transferencias entre agentes)system__caller_id- Número de teléfono de quien llama (solo llamadas de voz)system__called_number- Número de teléfono de destino (solo llamadas de voz)system__call_duration_secs- Duración de la llamada en segundossystem__time_utc- Hora UTC actual (formato ISO)system__time- Hora actual en la zona horaria especificada (formato legible, p. ej., “Friday, 12:33 12 December 2025”)system__timezone- Zona horaria proporcionada por el usuario (debe ser válida para tzinfo)system__conversation_id- Identificador único de conversación de ElevenLabssystem__call_sid- SID de la llamada (solo llamadas de twilio)system__call_id- Identificador único de la llamada del troncal SIP (solo llamadas de troncal SIP)system__agent_turns- Número total de turnos de conversación que ha realizado el agente durante esta conversación.system__current_agent_turns- Número de turnos de conversación que ha realizado el agente actual. Se restablece cada vez que la conversación se transfiere a otro agente.system__current_subagent_turns- Número de turnos de conversación que ha realizado el subagente actual. Se restablece cada vez que el workflow pasa a otro nodo.system__is_text_only- Verdadero si la conversación funciona en modo de solo texto; falso en caso contrario.system__conversation_history- Representación serializada en JSON del historial de conversación actual. Se evalúa de forma diferida en el momento en que se consulta. Consulta los detalles del formato a continuación.
Las variables del sistema:
- Están disponibles sin configuración de ejecución
- Llevan el prefijo
system__(prefijo reservado) - Se actualizan automáticamente durante toda la conversación
system__.Formato del historial de conversación
La variable system__conversation_history contiene un objeto JSON con la siguiente estructura:
Cada entrada incluye un role ("user", "agent" o "tool") y uno de los siguientes elementos:
message— el contenido de texto del turnotool_requests— una matriz de llamadas a herramientas realizadas por el agente, con valores de parámetros resueltostool_results— una matriz de respuestas de herramientas
Si el resultado o un parámetro de una herramienta contiene un historial de conversación anidado, se oculta con un marcador de posición (p. ej., [conversation_history (5 turns)]) para evitar una expansión recursiva sin límites.
Esta variable es útil para pasar el contexto de la conversación a herramientas (p. ej., webhooks o LLM personalizados) o para incluir el historial de conversación en los prompts de subagentes durante las transferencias.
Variables dinámicas secretas
Las variables dinámicas secretas se rellenan igual que las variables dinámicas normales, pero indican a nuestros ElevenAgents que solo deben usarse en encabezados de variables dinámicas y nunca enviarse a un proveedor de LLM como parte del prompt de sistema o del primer mensaje de un agente.
Te recomendamos usarlas para tokens de autenticación o ID privados que no deban enviarse a un LLM. Para crear una variable dinámica secreta, solo tienes que añadir el prefijo secret__ a la variable dinámica.
Los valores secretos se devuelven ocultos como <REDACTED>, incluso en webhooks posteriores a la llamada y en la
API de conversaciones. No uses el prefijo secret__ para valores que necesites consultar después de la
conversación. Pásalos como variables dinámicas normales o pasa un identificador no confidencial y busca
el valor confidencial en tu propio sistema.
Actualizar variables dinámicas desde herramientas
Las llamadas a herramientas pueden crear o actualizar variables dinámicas si devuelven un objeto JSON válido. Para especificar qué se debe extraer, establece las rutas de objeto mediante notación de puntos. Si el campo o la ruta no existe, no se actualiza nada.
Ejemplo de un objeto de respuesta y notación de puntos:
- Status corresponde a la ruta:
response.status - El correo electrónico del primer usuario de la matriz users corresponde a la ruta:
response.users.0.email
Para actualizar una variable dinámica con el correo electrónico del primer usuario, configura la asignación así.

Las asignaciones son un campo de cada herramienta de webhook, documentado aquí.
Guía
Requisitos previos
- Una cuenta de ElevenLabs
- Un agente conversacional de ElevenLabs configurado (crea uno aquí)
Define variables dinámicas en los prompts
Añade variables con llaves dobles {{variable_name}} en:
- Prompts de sistema
- Primeros mensajes
- Parámetros de herramientas


Define variables dinámicas en herramientas
También puedes definir variables dinámicas en la configuración de la herramienta.
Para crear una nueva variable dinámica, establece el tipo de valor como Variable dinámica y haz clic en el botón +.


Configura marcadores de posición
Configura valores predeterminados para hacer pruebas sin pasar variables durante la ejecución.
Actualizar desde el panel
Actualizar mediante la CLI
Actualizar mediante la API
Establece valores predeterminados para cada variable dinámica en el panel del agente.

Pasa variables durante la ejecución
Al iniciar una conversación, proporciona las variables dinámicas en tu código:
Asegúrate de tener instalada la última versión del SDK.
Integración con la página pública de conversación
La página pública de conversación admite variables dinámicas mediante parámetros de URL, lo que te permite personalizar las conversaciones al compartir enlaces de agentes. Esto resulta especialmente útil para insertar agentes personalizados en sitios web, correos electrónicos o campañas de marketing.
Métodos de parámetros de URL
Hay dos métodos para pasar variables dinámicas a la página pública de conversación:
Método 1: JSON codificado en Base64
Pasa las variables como un objeto JSON codificado en Base64 mediante el parámetro vars:
El parámetro vars contiene JSON codificado en Base64:
Método 2: Parámetros de consulta individuales
Pasa las variables mediante parámetros de consulta con el prefijo var_:
Prioridad de parámetros
Cuando se usan ambos métodos a la vez, los parámetros individuales var_ tienen prioridad sobre las variables codificadas en Base64 para evitar conflictos:
En este ejemplo, user_name será “John” (de var_user_name) en lugar de “Jane” (de vars codificado en Base64).
Ejemplos de implementación
Generación de URL en JavaScript
Generación de URL en Python
Construcción manual de URL
Tipos admitidos
Las variables dinámicas admiten estos tipos de valores:
Solución de problemas
Las variables no se sustituyen
Comprueba que:
- Los nombres de las variables coincidan exactamente (distinguen entre mayúsculas y minúsculas)
- Las variables usen llaves dobles:
{{ variable_name }} - Las variables estén incluidas en tu objeto dynamic_variables
Errores de tipo
Asegúrate de que:
- Los valores de las variables coincidan con el tipo esperado
- Los valores sean únicamente cadenas, números o booleanos