Passer à la navigation

Remplacements

Adaptez chaque conversation avec un contexte personnalisé pour chaque utilisateur.

Bien que les remplacements soient toujours pris en charge pour remplacer entièrement les invites système ou les premiers messages, nous recommandons d’utiliser les variables dynamiques comme méthode privilégiée pour personnaliser les réponses de votre agent et injecter des données en temps réel. Les variables dynamiques offrent une meilleure maintenabilité et une approche plus structurée de la personnalisation.

Les remplacements permettent à votre assistant d’adapter son comportement à chaque interaction utilisateur. Vous pouvez transmettre des données et paramètres personnalisés au début de chaque conversation, afin que l’assistant personnalise ses réponses et ses connaissances avec un contexte en temps réel. Les remplacements substituent entièrement les valeurs par défaut de l’agent définies dans le Dashboard de l’agent.

Présentation

Les remplacements vous permettent de modifier le comportement de votre agent IA en temps réel sans concevoir plusieurs agents. Vous pouvez ainsi personnaliser les réponses avec des données propres à chaque utilisateur.

Les remplacements peuvent être activés pour les champs suivants dans les paramètres de sécurité de l’agent :

  • Invite système
  • Premier message
  • Langue
  • ID de voix
  • LLM (grand modèle de langage)
  • Niveau d’effort de raisonnement du LLM
  • Outils
  • Base de connaissances
  • Mode texte uniquement
  • Stabilité
  • Vitesse
  • Amélioration de la similarité
  • Mots-clés ASR
  • Procédures

Le remplacement Procédures n’utilise pas conversation_config_override. À la place, le client transmet procedure_ids et start_procedure_ids au niveau supérieur des données client d’initialisation de la conversation. Consultez Choisir des procédures par conversation.

Lorsque les remplacements sont activés pour un champ, fournir un remplacement reste facultatif. S’il n’est pas fourni, l’agent utilisera les valeurs par défaut définies dans le Dashboard de l’agent. Pour la plupart des champs, une erreur sera renvoyée si un remplacement est fourni alors que les remplacements ne sont pas activés pour ce champ.

Les mots-clés ASR utilisent un refus souple : si le bouton de sécurité est désactivé et que le client envoie tout de même asr.keywords, la conversation continue et les mots-clés sont ignorés (sans erreur). Activez le remplacement des mots-clés ASR dans les paramètres de sécurité pour appliquer le renforcement des mots-clés par conversation. Jusqu’à 50 mots-clés sont pris en charge par conversation.

Le niveau d’effort de raisonnement doit être un niveau pris en charge par le LLM de l’agent. Sinon, la conversation ne démarre pas et la connexion se ferme avec une erreur indiquant le niveau non pris en charge. Si le bouton de sécurité est désactivé, prompt.reasoning_effort est ignoré et le niveau d’effort de raisonnement enregistré pour l’agent est utilisé. La valeur est fixe pour toute la conversation et ne peut pas être modifiée après son démarrage.

Voici quelques cas dans lesquels les remplacements peuvent être utiles :

  • Saluer les utilisateurs par leur nom
  • Inclure des informations propres au compte dans les réponses
  • Adapter la langue ou le ton de l’agent aux préférences de l’utilisateur
  • Transmettre des données en temps réel, comme les soldes de compte ou le statut des commandes
  • Améliorer la transcription des noms ou termes propres à chaque appel, par exemple les noms d’entreprise du CRM, via les mots-clés ASR

Les remplacements sont particulièrement utiles pour les applications nécessitant des interactions personnalisées ou traitant des données utilisateur sensibles qui ne doivent pas être stockées dans la configuration de base de l’agent.

Guide

Prérequis

Ce guide explique comment remplacer l’invite système, le premier message, le LLM, le niveau d’effort de raisonnement, les outils, la base de connaissances, les paramètres TTS et les mots-clés ASR par défaut de l’agent.

1

Activer les remplacements

Pour des raisons de sécurité, les remplacements sont désactivés par défaut. Activez les champs pour lesquels vous souhaitez autoriser les remplacements, tels que first_message, prompt.prompt, prompt.reasoning_effort, prompt.tool_ids, prompt.knowledge_base, language ou asr.keywords.

Accédez aux paramètres de votre agent et sélectionnez l’onglet Sécurité. Activez First message, System prompt, Tools, Knowledge base, ASR keywords et tous les autres remplacements dont vous avez besoin, tels que LLM ou Reasoning effort.

Activer les remplacements

2

Remplacer les paramètres de la conversation

Dans votre code, à l’endroit où la conversation est démarrée, transmettez les remplacements comme paramètre. Les remplacements des outils et de la base de connaissances substituent les tableaux par défaut pour cette conversation. Les remplacements des mots-clés ASR substituent la liste de mots-clés par défaut de l’agent pour cette conversation, avec un maximum de 50 mots-clés.

Charge utile d'initialisation de la conversation
{
"conversation_config_override": {
"agent": {
"prompt": {
"reasoning_effort": "high",
"tool_ids": ["tool_7101k5zvyjhmfg983brhmhkd98n6"],
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto"
}
]
}
},
"asr": {
"keywords": ["Acme Corp", "Contoso", "Globex"]
}
}
}

Vérifiez que vous avez installé la dernière version du SDK.

from elevenlabs.conversational_ai.conversation import Conversation, ConversationInitiationData
...
conversation_override = {
"agent": {
"prompt": {
"prompt": f"The customer's bank account balance is {customer_balance}. They are based in {customer_location}.", # Optional: override the system prompt.
"llm": "gpt-4o", # Optional: override the LLM model.
"reasoning_effort": "high", # Optional: override the reasoning effort. Requires Security → Reasoning effort.
"tool_ids": [
"tool_7101k5zvyjhmfg983brhmhkd98n6"
], # Optional: replace the tools available to the agent.
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto",
}
], # Optional: replace the knowledge base available to the agent.
},
"first_message": f"Hi {customer_name}, how can I help you today?", # Optional: override the first_message.
"language": "en" # Optional: override the language.
},
"tts": {
"voice_id": "custom_voice_id", # Optional: override the voice.
"stability": 0.7, # Optional: override stability (0.0 to 1.0).
"speed": 1.1, # Optional: override speed (0.7 to 1.2).
"similarity_boost": 0.9 # Optional: override similarity boost (0.0 to 1.0).
},
"conversation": {
"text_only": True # Optional: enable text-only mode (no audio).
},
"asr": {
"keywords": ["Acme Corp", "Contoso"] # Optional: boost ASR for per-call terms (max 50). Requires Security → ASR keywords.
}
}
config = ConversationInitiationData(
conversation_config_override=conversation_override
)
conversation = Conversation(
...
config=config,
...
)
conversation.start_session()

Lorsque vous utilisez des remplacements, omettez les champs que vous ne souhaitez pas remplacer au lieu de les définir sur des chaînes vides ou des valeurs nulles. Incluez uniquement les champs que vous souhaitez spécifiquement personnaliser.

Pour trouver la chaîne de modèle LLM correcte, consultez le Guide de l’API des agents, qui répertorie tous les modèles LLM pris en charge et leurs identifiants de chaîne exacts.