Variables dynamiques
Transmettez des valeurs d’exécution pour personnaliser le comportement de votre agent.
Les variables dynamiques vous permettent d’injecter des valeurs d’exécution dans les messages, les prompts système et les outils de votre agent. Vous pouvez ainsi personnaliser chaque conversation avec des données propres à l’utilisateur, sans créer plusieurs agents.
Vue d’ensemble
Les variables dynamiques peuvent être intégrées à plusieurs aspects de votre agent :
- Aux prompts système pour personnaliser le comportement et le contexte
- Aux premiers messages pour personnaliser les salutations
- Aux paramètres et en-têtes des outils pour transmettre des données propres à l’utilisateur
Voici quelques exemples d’utilisation utile des variables dynamiques :
- Personnaliser les salutations avec les noms des utilisateurs
- Inclure les détails du compte dans les réponses
- Transmettre des données aux appels d’outils
- Personnaliser le comportement selon les niveaux d’abonnement
- Accéder aux informations système telles que l’ID de conversation ou la durée de l’appel
Les variables dynamiques sont idéales pour injecter des données propres à l’utilisateur qui ne doivent pas être codées en dur dans la configuration de votre agent.
Variables dynamiques système
Votre agent a accès à ces variables système disponibles automatiquement :
system__agent_id: identifiant unique de l’agent ayant initié la conversation, qui reste stable tout au long de celle-cisystem__current_agent_id: identifiant unique de l’agent actuellement actif, qui change après un transfert d’agentsystem__caller_id: numéro de téléphone de l’appelant, pour les appels vocaux uniquementsystem__called_number: numéro de téléphone de destination, pour les appels vocaux uniquementsystem__call_duration_secs: durée de l’appel en secondessystem__time_utc: heure UTC actuelle, au format ISOsystem__time: heure actuelle dans le fuseau horaire indiqué, dans un format lisible, par exemple « vendredi 12 décembre 2025, 12:33 »system__timezone: fuseau horaire fourni par l’utilisateur, qui doit être valide pour tzinfosystem__conversation_id: identifiant unique de conversation ElevenLabssystem__call_sid: SID de l’appel, pour les appels twilio uniquementsystem__call_id: identifiant unique de l’appel via trunk SIP, pour les appels via trunk SIP uniquementsystem__agent_turns: nombre total de tours de conversation effectués par l’agent au cours de cette conversation.system__current_agent_turns: nombre de tours de conversation effectués par l’agent actuel. Réinitialisé à chaque transfert de la conversation vers un autre agent.system__current_subagent_turns: nombre de tours de conversation effectués par le sous-agent actuel. Réinitialisé à chaque transition du workflow vers un autre nœud.system__is_text_only: true si la conversation fonctionne en mode texte uniquement, false dans le cas contraire.system__conversation_history: représentation sérialisée en JSON de l’historique de la conversation actuelle. Évaluée paresseusement au moment où elle est référencée. Consultez les détails du format ci-dessous.
Les variables système :
- Sont disponibles sans configuration d’exécution
- Sont préfixées par
system__, un préfixe réservé - Sont mises à jour automatiquement tout au long de la conversation
system__.Format de l’historique de conversation
La variable system__conversation_history contient un objet JSON ayant la structure suivante :
Chaque entrée comprend un role ("user", "agent" ou "tool") et l’un des éléments suivants :
message: le contenu textuel du tourtool_requests: un tableau d’appels d’outils effectués par l’agent, avec les valeurs de paramètres résoluestool_results: un tableau de réponses d’outils
Si le résultat d’un outil ou un paramètre contient un historique de conversation imbriqué, il est masqué par un espace réservé, par exemple [conversation_history (5 turns)], afin d’éviter une expansion récursive non bornée.
Cette variable est utile pour transmettre le contexte de la conversation aux outils, par exemple les webhooks et les LLM personnalisés, ou pour inclure l’historique de la conversation dans les prompts des sous-agents lors des transferts.
Variables dynamiques secrètes
Les variables dynamiques secrètes sont renseignées de la même façon que les variables dynamiques classiques, mais elles indiquent à nos ElevenAgents qu’elles doivent être utilisées uniquement dans les en-têtes de variables dynamiques et ne jamais être envoyées à un fournisseur de LLM dans le prompt système ou le premier message d’un agent.
Nous recommandons de les utiliser pour les jetons d’authentification ou les ID privés qui ne doivent pas être envoyés à un LLM. Pour créer une variable dynamique secrète, préfixez simplement la variable dynamique avec secret__.
Les valeurs secrètes sont renvoyées masquées sous la forme <REDACTED>, y compris dans les webhooks post-appel et l’API des conversations. N’utilisez pas le préfixe secret__ pour les valeurs que vous devez relire après la conversation. Transmettez-les comme variables dynamiques classiques, ou transmettez un identifiant non sensible et récupérez la valeur sensible dans votre propre système.
Mettre à jour les variables dynamiques depuis les outils
Les appels d’outils peuvent créer ou mettre à jour des variables dynamiques s’ils renvoient un objet JSON valide. Pour préciser les éléments à extraire, définissez les chemins d’objet à l’aide de la notation par points. Si le champ ou le chemin n’existe pas, aucune mise à jour n’est effectuée.
Exemple d’objet de réponse et de notation par points :
- Status correspond au chemin :
response.status - L’email du premier utilisateur dans le tableau users correspond au chemin :
response.users.0.email
Pour mettre à jour une variable dynamique avec l’email du premier utilisateur, définissez l’affectation comme suit.

Les affectations constituent un champ de chaque outil webhook, documenté ici.
Guide
Prérequis
- Un compte ElevenLabs
- Un agent conversationnel ElevenLabs configuré (créez-en un ici)
Définir des variables dynamiques dans les prompts
Ajoutez des variables à l’aide d’accolades doubles {{variable_name}} dans vos :
- Prompts système
- Premiers messages
- Paramètres d’outils


Définir des variables dynamiques dans les outils
Vous pouvez également définir des variables dynamiques dans la configuration de l’outil.
Pour créer une variable dynamique, définissez le type de valeur sur Variable dynamique et cliquez sur le bouton +.


Définir des espaces réservés
Configurez des valeurs par défaut pour effectuer des tests sans transmettre de variables à l’exécution.
Mettre à jour via le Dashboard
Mettre à jour via la CLI
Mettre à jour via l’API
Définissez les valeurs par défaut de chaque variable dynamique dans le Dashboard de l’agent.

Transmettre des variables à l’exécution
Lorsque vous démarrez une conversation, fournissez les variables dynamiques dans votre code :
Vérifiez que vous avez installé la dernière version du SDK.
Intégration à la page publique de conversation
La page publique de conversation prend en charge les variables dynamiques via des paramètres d’URL, ce qui vous permet de personnaliser les conversations lorsque vous partagez des liens vers des agents. Cela est particulièrement utile pour intégrer des agents personnalisés dans des sites web, des emails ou des campagnes marketing.
Méthodes de paramètres d’URL
Il existe deux méthodes pour transmettre des variables dynamiques à la page publique de conversation :
Méthode 1 : JSON encodé en base64
Transmettez les variables sous forme d’objet JSON encodé en base64 à l’aide du paramètre vars :
Le paramètre vars contient du JSON encodé en base64 :
Méthode 2 : paramètres de requête individuels
Transmettez les variables à l’aide de paramètres de requête préfixés par var_ :
Priorité des paramètres
Lorsque les deux méthodes sont utilisées simultanément, les paramètres var_ individuels sont prioritaires sur les variables encodées en base64 afin d’éviter les conflits :
Dans cet exemple, user_name aura la valeur « John », issue de var_user_name, au lieu de « Jane », issue de vars encodé en base64.
Exemples d’implémentation
Génération d’URL JavaScript
Génération d’URL Python
Construction manuelle d’URL
Types pris en charge
Les variables dynamiques prennent en charge les types de valeurs suivants :
Résolution des problèmes
Les variables ne sont pas remplacées
Vérifiez que :
- Les noms des variables correspondent exactement, y compris la casse
- Les variables utilisent des accolades doubles :
{{ variable_name }} - Les variables sont incluses dans votre objet dynamic_variables
Erreurs de type
Vérifiez que :
- Les valeurs des variables correspondent au type attendu
- Les valeurs sont uniquement des chaînes, des nombres ou des booléens