Variables d'environnement
Déployez le même agent en développement, préproduction et production sans dupliquer les ressources.
Les variables d’environnement vous permettent de définir des valeurs propres à chaque environnement pour les URL d’outils, les secrets, les en-têtes et les connexions d’authentification. Une seule configuration d’agent et d’outil fonctionne dans tous vos environnements : les URL, clés API et authentifications sont résolues dynamiquement selon l’environnement spécifié au moment de la conversation.
Vue d’ensemble
Sans variables d’environnement, déployer un agent dans plusieurs environnements (développement, préproduction, production) exige de dupliquer les agents et les outils pour chaque environnement, puis de maintenir manuellement leurs configurations synchronisées. Cela entraîne :
- Une dérive de configuration entre les environnements
- Des analyses fragmentées entre des ID d’agents dupliqués
- Des frictions de promotion lors du passage de la préproduction à la production
Les variables d’environnement résolvent ce problème en introduisant une ressource réutilisable à l’échelle du Workspace, qui stocke différentes valeurs pour chaque environnement. Les outils et serveurs MCP font référence à ces variables via une syntaxe de modèle, et la valeur correcte est résolue à l’exécution selon l’environnement de la conversation.

Concepts clés
Variables d’environnement
Une variable d’environnement est une ressource à l’échelle du Workspace comprenant un libellé et un ensemble de valeurs propres à chaque environnement. Il existe trois types :
Chaque variable d’environnement doit avoir une valeur pour l’environnement production par défaut. Des environnements supplémentaires, tels que staging et development, sont facultatifs.
Syntaxe de modèle
Faites référence aux variables d’environnement dans les champs URL à l’aide de la syntaxe {{system__env_<label>}} :
Pour une variable d’environnement api_host ayant les valeurs api (production) et staging.api (préproduction), cela donne :
- En
production:https://api.example.com/v1/text-to-speech - En
staging:https://staging.api.example.com/v1/text-to-speech
Cette syntaxe est cohérente avec les variables dynamiques et fonctionne dans les champs URL des outils webhook et des connexions aux serveurs MCP.
Les variables d’environnement sont également prises en charge dans les URL et en-têtes de webhook pré-appel (le webhook Conversation Initiation Client Data) et dans les URL de webhook post-appel configurées sous Developers > Webhooks. Les modèles sont résolus à l’aide de l’environnement de la conversation ; la même configuration de webhook peut donc cibler différents points de terminaison selon l’environnement. Pour les webhooks pré-appel, l’environnement peut être défini à l’avance sur le numéro de téléphone ou renvoyé dynamiquement dans la réponse de votre webhook (voir Téléphonie ci-dessous).
Les URL doivent commencer par https:// avant toute référence à une variable d’environnement. Par exemple, https:// {{ system__env_api_host }}.example.com/v1/data est valide, mais {{ system__env_api_host }}/v1/data
ne l’est pas. Cette règle est requise pour la validation et la sécurité : les valeurs des variables d’environnement ne peuvent pas contrôler
le protocole.
Résolution et repli
Lorsqu’une conversation s’exécute dans un environnement spécifique, le système résout les variables d’environnement comme suit :
- Recherche la valeur correspondant à l’environnement demandé, par exemple
staging - Si aucune valeur n’existe pour cet environnement, utilise la valeur
productioncomme repli - Si la variable ne peut pas être résolue, l’appel d’outil échoue avec une erreur de configuration
Ce comportement de repli signifie que vous devez uniquement définir des valeurs pour les environnements qui diffèrent de la production.
Créer des variables d’environnement
Les variables d’environnement ne peuvent pas encore être gérées via l’interface de ligne de commande ElevenLabs : utilisez le Dashboard ou le SDK.
Créer via le Dashboard
Créer via l'API
Accédez à Developers > Environment Variables dans le Dashboard ElevenLabs.
Créer un environnement
Définissez les environnements qui correspondent à vos étapes de déploiement, par exemple eu, india et staging. L’environnement production est toujours disponible par défaut.
Créer une variable
Cliquez sur Add variable et choisissez le type de variable :
- Chaîne : saisissez un libellé et définissez une valeur pour chaque environnement
- Secret : sélectionnez un secret existant du Workspace pour chaque environnement
- Connexion d’authentification : sélectionnez une connexion d’authentification existante pour chaque environnement

Utilisation des variables d’environnement
Dans les URL des outils webhook
Utilisez la syntaxe de modèle dans le champ URL d’un outil webhook afin que l’URL de base soit résolue selon l’environnement.

Par exemple, une URL d’outil configurée comme suit :
est résolue en https://api.example.com/v1/weather?lat=40.7&lon=-74.0 en production et en https://staging.api.example.com/v1/weather?lat=40.7&lon=-74.0 en préproduction.
Vous pouvez combiner plusieurs variables d’environnement et segments littéraux dans une même URL :
Exemple d’API
Dans les en-têtes des outils webhook
Les variables d’environnement secrètes peuvent être utilisées dans les en-têtes de requête. Au lieu de coder en dur un ID secret, référencez une variable d’environnement afin d’utiliser des secrets différents selon l’environnement. Lors de la configuration d’un en-tête d’outil dans le Dashboard, sélectionnez une variable d’environnement plutôt qu’un secret statique. Lors de l’exécution, la valeur de l’en-tête est résolue vers le secret stocké pour l’environnement actuel.
Exemple d’API
Transmettez une référence de variable d’environnement dans le champ request_headers :
Dans les connexions d’authentification des outils webhook
Les connexions d’authentification (OAuth2, JWT, Basic Auth) peuvent également être résolues selon l’environnement. C’est utile lorsque vos environnements de préproduction et de production utilisent différents clients OAuth ou points de terminaison de jetons.

Dans la configuration de l’outil, sélectionnez une variable d’environnement de type auth_connection au lieu de sélectionner directement une connexion d’authentification. La connexion d’authentification appropriée pour l’environnement actuel est résolue lors de l’exécution.
Exemple d’API
Référencez une variable d’environnement dans le champ auth_connection :
Dans les connexions aux serveurs MCP
Les variables d’environnement fonctionnent avec les connexions aux serveurs MCP de la même manière qu’avec les outils webhook. Vous pouvez les utiliser dans :
- URL du serveur : utilisez un modèle pour l’URL du serveur MCP afin de cibler différents serveurs selon l’environnement
- En-têtes de requête : utilisez des variables d’environnement secrètes pour les en-têtes d’authentification
- Connexions d’authentification : utilisez des variables d’environnement de connexion d’authentification pour les serveurs MCP basés sur OAuth
Par exemple, une URL de serveur MCP configurée comme suit :
est résolue vers différents points de terminaison de serveur MCP selon l’environnement.
Dans les configurations LLM personnalisées
Lorsque vous utilisez un LLM personnalisé, les variables d’environnement permettent de définir l’API key et les en-têtes de requête à l’aide de modèles. Vous pouvez ainsi utiliser différents points de terminaison de modèles et identifiants selon les environnements.
Le champ URL du LLM personnalisé prend en charge la même syntaxe de modèle {{system__env_<label>}}. Le champ api_key accepte une référence de variable d’environnement afin d’utiliser différentes API keys selon l’environnement.
Exemple d’API
Spécifier l’environnement
L’environnement est défini au début de la conversation et reste le même pendant toute sa durée. Si aucun environnement n’est spécifié, la valeur par défaut est production.
Lors de vos tests dans le Dashboard, sélectionnez l’environnement dans le menu déroulant de l’aperçu de l’agent :

WebSocket
Transmettez le paramètre de requête environment lors de la connexion au WebSocket de conversation :
WebRTC (URL signée / jeton)
Lorsque vous utilisez WebRTC, transmettez le paramètre environment lors de la demande d’un jeton de conversation :
Téléphonie (Twilio et trunk SIP)
Les numéros de téléphone peuvent être associés à un environnement spécifique et à une branche d’agent spécifique, ce qui facilite le routage d’un numéro de téléphone de test vers une branche de développement d’un agent dont les outils s’exécutent sur une API de développement.

Pour les appels entrants, l’environnement est résolu dans cet ordre :
- La valeur
environmentrenvoyée par votre webhook d’initialisation de conversation, si votre serveur en fournit une dynamiquement pour chaque appel - L’environnement stocké sur le numéro de téléphone lui-même
productionpar défaut
Le même ordre de priorité s’applique à branch_id. Les URL et en-têtes des webhooks avant appel, ainsi que les URL des webhooks après appel, résolvent ensuite les modèles {{system__env_*}} à l’aide de l’environnement sélectionné.
Associez un numéro de téléphone à un environnement et à une branche (nécessite le SDK Python elevenlabs ≥ 2.47.0 ou @elevenlabs/elevenlabs-js ≥ 2.47.0) :
Pour les appels sortants, transmettez le champ environment lorsque vous lancez l’appel via les points de terminaison sortants Twilio ou trunk SIP.
SDK React
Transmettez l’option environment dans le hook useConversation ou lors du démarrage d’une session :
Exemple : agent multi-environnements
Cet exemple présente une configuration complète avec un seul agent qui utilise différents backends d’API et identifiants en développement, en préproduction et en production.
Créer des variables d’environnement
Créez trois variables d’environnement dans le Dashboard ou via l’API :
Configurer les outils avec des références de variables d’environnement
Configurez vos outils webhook à l’aide de la syntaxe de modèle :
- URL :
https://{{system__env_api_host}}.example.com/v1/orders - En-têtes : référencez la variable d’environnement
api_keypour l’en-têteX-Api-Key - Authentification : référencez la variable d’environnement
oauth_credspour l’authentification OAuth
Contraintes de nommage
- Libellés : caractères alphanumériques et traits de soulignement uniquement (par exemple,
base_url,api_key_v2) - Noms d’environnement : doivent commencer par une lettre minuscule et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d’union, dans la limite de 64 caractères (par exemple,
production,staging,dev-us-east) - Chaque variable d’environnement doit avoir une valeur
production

