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

# Sovrascritture

> **Warning**
>
> Sebbene le sovrascritture siano ancora supportate per sostituire completamente i prompt di sistema o i primi messaggi, ti
> consigliamo di usare le [variabili dinamiche](/docs/it/eleven-agents/customization/personalization/dynamic-variables) come metodo preferito
> per personalizzare le risposte del tuo agente e inserire dati in tempo reale. Le variabili dinamiche offrono una migliore
> manutenibilità e un approccio più strutturato alla personalizzazione.

Le **sovrascritture** consentono al tuo assistente di adattare il proprio comportamento a ogni interazione con l'utente. Puoi passare dati e impostazioni personalizzati all'inizio di ogni conversazione, permettendo all'assistente di personalizzare le risposte e le conoscenze con il contesto in tempo reale. Le sovrascritture sostituiscono completamente i valori predefiniti dell'agente definiti nel [dashboard](https://elevenlabs.io/app/agents/agents) dell'agente.

## Panoramica

Le sovrascritture ti consentono di modificare in tempo reale il comportamento del tuo agente IA senza creare più agenti. In questo modo puoi personalizzare le risposte con dati specifici dell'utente.

Puoi abilitare le sovrascritture per i seguenti campi nelle impostazioni di sicurezza dell'agente:

* Prompt di sistema
* Primo messaggio
* Lingua
* ID voce
* LLM (modello linguistico di grandi dimensioni)
* Tool
* Knowledge base
* Modalità solo testo
* Stabilità
* Velocità
* Aumento della somiglianza
* Parole chiave ASR

Quando le sovrascritture sono abilitate per un campo, fornirne una resta facoltativo. Se non viene fornita, l'agente utilizzerà i valori predefiniti definiti nel [dashboard](https://elevenlabs.io/app/agents/agents) dell'agente. Per la maggior parte dei campi, viene generato un errore se viene fornita una sovrascrittura quando per quel campo non sono abilitate le sovrascritture.

> **Warning**
>
> Le **parole chiave ASR** utilizzano un blocco soft: se l'interruttore Security è disattivato e il client invia comunque
> `asr.keywords`, la conversazione continua e le parole chiave vengono ignorate (nessun errore). Abilita la
> sovrascrittura **ASR keywords** nelle impostazioni Security quando vuoi applicare il potenziamento delle parole chiave per conversazione.
> Sono supportate fino a 50 parole chiave per conversazione.

Ecco alcuni esempi in cui le sovrascritture possono essere utili:

* **Salutare gli utenti** con il loro nome
* **Includere dettagli specifici dell'account** nelle risposte
* **Adattare la lingua dell'agente** o il tono in base alle preferenze dell'utente
* **Passare dati in tempo reale** come saldi del conto o stato dell'ordine
* **Migliorare la trascrizione** di nomi o termini per chiamata (ad esempio nomi di aziende CRM) tramite parole chiave ASR

> **Info**
>
> Le sovrascritture sono particolarmente utili per le applicazioni che richiedono interazioni personalizzate o gestiscono
> dati sensibili degli utenti che non dovrebbero essere archiviati nella configurazione di base dell'agente.

## Guida

### Prerequisiti

* Un [account ElevenLabs](https://elevenlabs.io)
* Un agente conversazionale ElevenLabs configurato ([creane uno qui](/docs/it/eleven-agents/quickstart))

Questa guida mostra come sovrascrivere **Prompt di sistema**, **Primo messaggio**, **LLM**, **Tool**, **Knowledge base**, **impostazioni TTS** e **parole chiave ASR** predefiniti dell'agente.

#### Abilita le sovrascritture

Per motivi di sicurezza, le sovrascritture sono disabilitate per impostazione predefinita. Abilita i campi per cui vuoi consentire la sovrascrittura, come `first_message`, `prompt.prompt`, `prompt.tool_ids`, `prompt.knowledge_base`, `language` o `asr.keywords`.

#### Aggiorna dal dashboard

Vai alle impostazioni dell'agente e seleziona la scheda **Security**. Abilita `First message`, `System prompt`, `Tools`, `Knowledge base`, `ASR keywords` e qualsiasi altra sovrascrittura necessaria, ad esempio `LLM`.

![Abilita le sovrascritture](/docs/_fern-img/496f20380ffe29fc46275bbfe5c6eaabdb5e211c780188243a018b38715ea779.webp)

#### Aggiorna tramite CLI

#### Scarica la configurazione dell'agente

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

#### Modifica \`agent\_configs/\<agent-name>.json\`

Imposta i campi in `platform_settings.overrides.conversation_config_override` su `true` per consentire le sovrascritture a runtime per quel campo:

```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 }
      }
    }
  }
}
```

#### Invia le modifiche

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

#### Aggiorna tramite 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 },
      },
    },
  },
});
```

#### Sovrascrivi la conversazione

Nel tuo codice, nel punto in cui viene avviata la conversazione, passa le sovrascritture come parametro. Le sovrascritture dei tool e della knowledge base sostituiscono gli array predefiniti per quella conversazione. Le sovrascritture delle parole chiave ASR sostituiscono l'elenco predefinito di parole chiave dell'agente per quella conversazione (massimo 50 parole chiave).

**`Payload di avvio della conversazione`**

```json title="Payload di avvio della conversazione" 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**
>
> Assicurati di avere installato l'[SDK](/docs/it/eleven-agents/libraries/python) più recente.

**`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**
>
> Quando usi le sovrascritture, ometti i campi che non vuoi sovrascrivere anziché impostarli su stringhe vuote o valori null. Includi solo i campi che vuoi personalizzare in modo specifico.

> **Tip**
>
> Per trovare la stringa corretta del modello LLM, consulta il [riferimento API degli agenti](/docs/it/api-reference/agents/create#request.body.conversation_config.agent.prompt.llm), che elenca tutti i modelli LLM supportati e i relativi identificatori stringa esatti.