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

# Taaldetectie

## Overzicht

Met de systeemtool `language detection` kan je ElevenLabs-agent de uitvoertaal wijzigen naar elke taal die de agent ondersteunt.
Deze systeemtool wordt niet automatisch ingeschakeld. De beschrijving kan worden aangepast aan je specifieke use case.

> **Note**
>
> Waar mogelijk raden we aan alle talen voor een agent in te schakelen en de systeemtool voor
> taaldetectie in te schakelen.

Onze tool voor taaldetectie activeert in twee gevallen een taalwisseling, beide op basis van de gedetecteerde taal en inhoud van de ontvangen audio:

* `detection`: als een gebruiker een andere taal spreekt dan de huidige uitvoertaal, wordt een wisseling geactiveerd
* `content`: als de gebruiker in de huidige taal vraagt om naar een nieuwe taal te wisselen, wordt een wisseling geactiveerd

**Doel**: Tijdens gesprekken automatisch overschakelen naar de gedetecteerde taal van de gebruiker.

**Triggervoorwaarden**: De LLM moet deze tool aanroepen wanneer:

* De gebruiker een andere taal spreekt dan de huidige gesprekstaal
* De gebruiker expliciet vraagt om van taal te wisselen
* Ondersteuning voor meerdere talen nodig is voor het gesprek

**Parameters**:

* `reason` (string, verplicht): De reden voor de taalwissel
* `language` (string, verplicht): De taalcode om naar over te schakelen (moet in de lijst met ondersteunde talen staan)

**Indeling voor functieaanroepen**:

```json
{
  "type": "function",
  "function": {
    "name": "language_detection",
    "arguments": "{\"reason\": \"User requested Spanish\", \"language\": \"es\"}"
  }
}
```

**Implementatie**: Configureer ondersteunde talen in de agentinstellingen en voeg de systeemtool voor taaldetectie toe. De agent schakelt automatisch van stem en antwoorden om overeen te komen met gedetecteerde talen.

## Taaldetectie inschakelen

#### Ondersteunde talen configureren

De talen waarnaar de agent kan wisselen, moeten worden ingesteld op het tabblad `Agent` in de instellingen.

![Talen van agent](/docs/_fern-img/633707d54276febd3baa054c4f41b186225b74f606307a46e8262607befc8381.webp)

#### De tool voor taaldetectie toevoegen

Schakel taaldetectie in door de vooraf geconfigureerde systeemtool toe te voegen aan de tools van je agent op het tabblad `Agent`.
Deze is automatisch beschikbaar als optie wanneer je `add tool` selecteert.

![Systeemtool](/docs/_fern-img/3d17048ab2bc1a0547c49056abb98f624caf866927ff1714af27f898b06ab18f.webp)

#### Toolbeschrijving configureren

Voeg een beschrijving toe waarin staat wanneer de tool moet worden aangeroepen

![Beschrijving](/docs/_fern-img/3bebc9fe07dba7121bce7793f3793858c710fc8ea1c221347604eb05929271df.webp)

## Wisselen beperken tot het begin van het gesprek

In een lang gesprek kunnen achtergrondspraak of een ongebruikelijk accent soms een wisseling activeren die de
beller niet bedoelde. Door `only_at_conversation_start` in te schakelen, wordt wisselen beperkt tot de eerste twee beurten van de gebruiker.

Als de taal tijdens die twee beurten niet wisselt, wordt taaldetectie voor de rest van
het gesprek uitgeschakeld: elke latere poging mislukt en de agent blijft de huidige taal spreken. Als
de taal wel binnen dat venster wisselt, blijft wisselen beschikbaar voor de rest van het
gesprek, zodat een onjuiste detectie nog kan worden gecorrigeerd.

De optie is standaard uitgeschakeld.

#### Bijwerken via het dashboard

Selecteer de tool **Detect language** op het tabblad **Tools** en schakel **Only at start of conversation** in.

#### Bijwerken via de CLI

#### De agentconfiguratie ophalen

```bash
elevenlabs agents pull
```

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

Stel `only_at_conversation_start` in voor de tool voor taaldetectie. Omringende velden zijn
hier voor de beknoptheid weggelaten.

```json
{
  "conversation_config": {
    "agent": {
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "params": {
              "system_tool_type": "language_detection",
              "only_at_conversation_start": true
            }
          }
        }
      }
    }
  }
}
```

#### Je wijzigingen pushen

```bash
elevenlabs agents push
```

#### Bijwerken via de API

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {
            "prompt": {
                "built_in_tools": {
                    "language_detection": {
                        "type": "system",
                        "name": "language_detection",
                        "params": {
                            "system_tool_type": "language_detection",
                            "only_at_conversation_start": True,
                        },
                    }
                }
            }
        }
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: {
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            params: {
              systemToolType: "language_detection",
              onlyAtConversationStart: true,
            },
          },
        },
      },
    },
  },
});
```

> **Note**
>
> Wanneer wisselen wordt geblokkeerd, retourneert de tool een fout aan de LLM met de instructie om
> de huidige taal te blijven spreken. De reden wordt niet aan de beller getoond.

## API-implementatie

Wanneer je via de API een agent maakt, kun je de tool `language detection` aan je agentconfiguratie toevoegen. Deze moet als systeemtool worden gedefinieerd:

```python
from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs

elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")

# Create language presets
language_presets = {
    "nl": {"overrides": {"agent": {"first_message": "Hoi, hoe gaat het met je?"}}},
    "fi": {"overrides": {"agent": {"first_message": "Hei, kuinka voit?"}}},
    "tr": {"overrides": {"agent": {"first_message": "Merhaba, nasılsın?"}}},
    "ru": {"overrides": {"agent": {"first_message": "Привет, как ты?"}}},
    "pt": {"overrides": {"agent": {"first_message": "Oi, como você está?"}}},
}

response = elevenlabs.conversational_ai.agents.create(
    conversation_config=ConversationalConfig(
        agent=AgentConfig(
            first_message="Hi how are you?",
            prompt={
                "built_in_tools": {
                    "language_detection": {
                        "type": "system",
                        "name": "language_detection",
                        # Optional: customize when the tool should be triggered
                        "description": "",
                        "params": {"system_tool_type": "language_detection"},
                    }
                },
            },
        ),
        language_presets=language_presets,
    ),
)
```

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

const elevenlabs = new ElevenLabsClient({
  apiKey: "YOUR_API_KEY",
});

await elevenlabs.conversationalAi.agents.create({
  conversationConfig: {
    agent: {
      firstMessage: "Hi, how are you?",
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            description: "", // Optional: Customize when the tool should be triggered
            params: { systemToolType: "language_detection" },
          },
        },
      },
    },
    languagePresets: {
      nl: { overrides: { agent: { firstMessage: "Hoi, hoe gaat het met je?" } } },
      fi: {
        overrides: { agent: { firstMessage: "Hei, kuinka voit?" } },
        firstMessageTranslation: {
          sourceHash: '{"firstMessage":"Hi how are you?","language":"en"}',
          text: "Hei, kuinka voit?",
        },
      },
      tr: { overrides: { agent: { firstMessage: "Merhaba, nasılsın?" } } },
      ru: { overrides: { agent: { firstMessage: "Привет, как ты?" } } },
      pt: { overrides: { agent: { firstMessage: "Oi, como você está?" } } },
      ar: { overrides: { agent: { firstMessage: "مرحبًا كيف حالك؟" } } },
    },
  },
});
```

```bash
curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
     -H "xi-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
  "conversation_config": {
    "agent": {
      "first_message": "Hi how are you?",
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "description": "",
            "params": { "system_tool_type": "language_detection" }
          }
        }
      }
    },
    "language_presets": {
      "nl": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hoi, hoe gaat het met je?",
            "language": null
          },
          "tts": null
        }
      },
      "fi": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hei, kuinka voit?",
            "language": null
          },
          "tts": null
        }
      },
      "tr": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Merhaba, nasılsın?",
            "language": null
          },
          "tts": null
        }
      },
      "ru": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Привет, как ты?",
            "language": null
          },
          "tts": null
        }
      },
      "pt": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Oi, como você está?",
            "language": null
          },
          "tts": null
        }
      },
      "ar": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "مرحبًا كيف حالك؟",
            "language": null
          },
          "tts": null
        }
      }
    }
  }
}'
```

> **Tip**
>
> Laat de beschrijving leeg om de standaardprompt voor taaldetectie te gebruiken.