> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Remplacements

> **Warning**
>
> Bien que les remplacements soient toujours pris en charge pour remplacer entièrement les prompts système ou les premiers messages, nous
> recommandons d'utiliser les [variables dynamiques](/docs/fr/eleven-agents/customization/personalization/dynamic-variables) 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 puisse personnaliser ses réponses et ses connaissances avec un contexte en temps réel. Les remplacements remplacent entièrement les valeurs par défaut de l'agent définies dans le [Dashboard](https://elevenlabs.io/app/agents/agents) de l'agent.

## Vue d'ensemble

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

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

* Prompt système
* Premier message
* Langue
* ID de voix
* LLM (grand modèle de langage)
* Outils
* Base de connaissances
* Mode texte uniquement
* Stabilité
* Vitesse
* Amélioration de la similarité
* Mots-clés ASR

Lorsqu'un remplacement est activé 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](https://elevenlabs.io/app/agents/agents) de l'agent. Pour la plupart des champs, une erreur est générée si un remplacement est fourni alors que les remplacements ne sont pas activés pour ce champ.

> **Warning**
>
> Les **mots-clés ASR** appliquent un refus souple : si l'option Sécurité est désactivée et que le client envoie tout de même
> `asr.keywords`, la conversation se poursuit 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 de mots-clés par conversation.
> Jusqu'à 50 mots-clés sont pris en charge par conversation.

Voici quelques exemples où les remplacements peuvent être utiles :

* **Saluer les utilisateurs** par leur nom
* **Inclure des informations propres au compte** dans les réponses
* **Ajuster la langue** ou le ton de l'agent selon les 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'entreprises dans un CRM, grâce aux mots-clés ASR

> **Info**
>
> Les remplacements sont particulièrement utiles pour les applications qui nécessitent des interactions personnalisées ou qui traitent
> des données utilisateur sensibles ne devant pas être stockées dans la configuration de base de l'agent.

## Guide

### Prérequis

* Un [compte ElevenLabs](https://elevenlabs.io)
* Un agent conversationnel ElevenLabs configuré ([créez-en un ici](/docs/fr/eleven-agents/quickstart))

Ce guide explique comment remplacer les valeurs par défaut du **prompt système**, du **premier message**, du **LLM**, des **outils**, de la **base de connaissances**, des **paramètres TTS** et des **mots-clés ASR** de l'agent.

#### 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, comme `first_message`, `prompt.prompt`, `prompt.tool_ids`, `prompt.knowledge_base`, `language` ou `asr.keywords`.

#### Mettre à jour via le Dashboard

Accédez aux paramètres de votre agent et sélectionnez l'onglet **Security**. Activez `First message`, `System prompt`, `Tools`, `Knowledge base`, `ASR keywords` et tous les autres remplacements dont vous avez besoin, comme `LLM`.

![Activer les remplacements](/docs/_fern-img/496f20380ffe29fc46275bbfe5c6eaabdb5e211c780188243a018b38715ea779.webp)

#### Mettre à jour via la CLI

#### Récupérer la configuration de l'agent

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Modifier \`agent_configs/\<agent-name>.json\`

Définissez les champs sous `platform_settings.overrides.conversation_config_override` sur `true` pour autoriser les remplacements à l'exécution pour ce champ :

```json
{
  "platform_settings": {
    "overrides": {
      "conversation_config_override": {
        "agent": {
          "first_message": true,
          "language": true,
          "prompt": {
            "prompt": true,
            "tool_ids": true,
            "knowledge_base": true
          }
        },
        "tts": { "voice_id": true },
        "asr": { "keywords": true }
      }
    }
  }
}
```

#### Envoyer vos modifications

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Mettre à jour via l'API

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    platform_settings={
        "overrides": {
            "conversation_config_override": {
                "agent": {
                    "first_message": True,
                    "language": True,
                    "prompt": {
                        "prompt": True,
                        "tool_ids": True,
                        "knowledge_base": True,
                    },
                },
                "tts": {"voice_id": True},
                "asr": {"keywords": True},
            },
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  platformSettings: {
    overrides: {
      conversationConfigOverride: {
        agent: {
          firstMessage: true,
          language: true,
          prompt: {
            prompt: true,
            toolIds: true,
            knowledgeBase: true,
          },
        },
        tts: { voiceId: true },
        asr: { keywords: true },
      },
    },
  },
});
```

#### Remplacer la configuration de la conversation

Dans votre code, à l'endroit où la conversation démarre, transmettez les remplacements comme paramètre. Les remplacements d'outils et de base de connaissances remplacent les tableaux par défaut pour cette conversation. Les remplacements de mots-clés ASR remplacent 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`**

```json title="Charge utile d'initialisation de la conversation" focus={4-15}
{
  "conversation_config_override": {
    "agent": {
      "prompt": {
        "tool_ids": ["tool_7101k5zvyjhmfg983brhmhkd98n6"],
        "knowledge_base": [
          {
            "type": "file",
            "name": "Unladen Swallow Facts",
            "id": "5xM3yVvZQKV0EfqQpLrJ",
            "usage_mode": "auto"
          }
        ]
      }
    },
    "asr": {
      "keywords": ["Acme Corp", "Contoso", "Globex"]
    }
  }
}
```

> **Tip**
>
> Vérifiez que vous avez installé le dernier [SDK](/docs/fr/eleven-agents/libraries/python).

**`Python`**

```python title="Python" focus={3-28} maxLines=28
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.
            "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()
```

**`JavaScript`**

```javascript title="JavaScript" focus={4-29} maxLines=29
...
const conversation = await Conversation.startSession({
  ...
  overrides: {
      agent: {
          prompt: {
              prompt: `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.
              toolIds: [
                  "tool_7101k5zvyjhmfg983brhmhkd98n6"
              ], // Optional: replace the tools available to the agent.
              knowledgeBase: [
                  {
                      type: "file",
                      name: "Unladen Swallow Facts",
                      id: "5xM3yVvZQKV0EfqQpLrJ",
                      usageMode: "auto",
                  }
              ], // Optional: replace the knowledge base available to the agent.
          },
          firstMessage: `Hi ${customer_name}, how can I help you today?`, // Optional: override the first message.
          language: "en" // Optional: override the language.
      },
      tts: {
          voiceId: "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).
          similarityBoost: 0.9 // Optional: override similarity boost (0.0 to 1.0).
      },
      conversation: {
          textOnly: 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.
      }
  },
  ...
})
```

**`Swift`**

```swift title="Swift" focus={3-16} maxLines=16
import ElevenLabsSDK

let promptOverride = ElevenLabsSDK.AgentPrompt(
    prompt: "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.
)
let agentConfig = ElevenLabsSDK.AgentConfig(
    prompt: promptOverride, // Optional: override the system prompt.
    firstMessage: "Hi \(customer_name), how can I help you today?", // Optional: override the first message.
    language: .en // Optional: override the language.
)
let ttsConfig = ElevenLabsSDK.TTSConfig(
    voiceId: "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).
    similarityBoost: 0.9 // Optional: override similarity boost (0.0 to 1.0).
)
let conversationConfig = ElevenLabsSDK.ConversationConfig(
    textOnly: true // Optional: enable text-only mode (no audio).
)
let overrides = ElevenLabsSDK.ConversationConfigOverride(
    agent: agentConfig, // Optional: override agent settings.
    tts: ttsConfig, // Optional: override TTS settings.
    conversation: conversationConfig // Optional: override conversation settings.
)

let config = ElevenLabsSDK.SessionConfig(
    agentId: "",
    overrides: overrides
)

let conversation = try await ElevenLabsSDK.Conversation.startSession(
  config: config,
  callbacks: callbacks
)
```

**`Widget`**

```html title="Widget"
  <elevenlabs-convai
    agent-id="agent_7101k5zvyjhmfg983brhmhkd98n6"
    override-language="es"         <!-- Optional: override the language -->
    override-prompt="Custom system prompt for this user"  <!-- Optional: override the system prompt -->
    override-first-message="Hi! How can I help you today?"  <!-- Optional: override the first message -->
    override-voice-id="custom_voice_id"  <!-- Optional: override the voice -->
  ></elevenlabs-convai>
```

> **Note**
>
> 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.

> **Tip**
>
> Pour trouver la chaîne correspondant au bon modèle LLM, consultez le [Guide de l'API Agents](/docs/fr/api-reference/agents/create#request.body.conversation_config.agent.prompt.llm), qui répertorie tous les modèles LLM pris en charge et leurs identifiants de chaîne exacts.