Variables dinámicas
Variables dinámicas
Pasa valores de tiempo de ejecución para personalizar el comportamiento de tu agente.
Las variables dinámicas te permiten insertar valores de tiempo de ejecución en los mensajes, prompts de sistema y herramientas de tu agente. Así puedes personalizar cada conversación con datos específicos de usuario sin crear varios agentes.
Descripción general
Las variables dinámicas se pueden integrar en varios aspectos de tu agente:
- Prompts de sistema para personalizar el comportamiento y el contexto
- Primeros mensajes para personalizar saludos
- Parámetros y encabezados de herramientas para enviar datos específicos de usuario
Estos son algunos ejemplos en los que las variables dinámicas resultan útiles:
- Personalizar saludos con nombres de usuario
- Incluir detalles de la cuenta en las respuestas
- Enviar datos a llamadas de herramientas
- Personalizar el comportamiento según el nivel 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 de usuario que no deberían codificarse de forma fija en la configuración de tu agente.
Variables dinámicas del sistema
Tu agente tiene acceso a estas variables de 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 después de 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, por ejemplo, “Viernes, 12:33 12 de diciembre de 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 llamada (solo llamadas de twilio)system__call_id- Identificador único de la llamada de 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 más abajo.
Las variables del sistema:
- Están disponibles sin configuración en tiempo 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— un array de llamadas de herramientas realizadas por el agente, con valores de parámetros resueltostool_results— un array de respuestas de herramientas
Si el resultado o parámetro de una herramienta contiene un historial de conversación anidado, se oculta con un marcador de posición (por ejemplo, [conversation_history (5 turns)]) para evitar una expansión recursiva ilimitada.
Esta variable resulta útil para enviar el contexto de la conversación a herramientas (por ejemplo, webhooks, 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 de la misma forma 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.
Recomendamos usarlas para tokens de autenticación o ID privados que no deban enviarse a un LLM. Para crear una variable dinámica secreta, simplemente añade el prefijo secret__ a la variable dinámica.
Actualizar variables dinámicas desde herramientas
Las llamadas de herramientas pueden crear o actualizar variables dinámicas si devuelven un objeto JSON válido. Para especificar qué se debe extraer, define las rutas de objeto mediante notación de puntos. Si el campo o la ruta no existen, no se actualiza nada.
Ejemplo de un objeto de respuesta y notación de puntos:
- El estado corresponde a la ruta:
response.status - El correo electrónico del primer usuario del array de usuarios 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 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 usando 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 en Variable dinámica y haz clic en el botón +.


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

Envía variables en tiempo de 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 Habla con
La página pública Habla con admite variables dinámicas mediante parámetros de URL, lo que te permite personalizar conversaciones al compartir enlaces de agentes. Esto resulta especialmente útil para integrar 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 enviar variables dinámicas a la página pública Habla con:
Método 1: JSON codificado en Base64
Envía 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
Envía 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 var_ individuales 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” (del parámetro 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 compatibles
Las variables dinámicas admiten estos tipos de valores:
Solución de problemas
Las variables no se sustituyen
Comprueba que:
- Los nombres de 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