> ## Documentation Index
> Fetch the complete documentation index at: https://help.cloudtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools für VoiceAgent

> Richten Sie Tools ein, damit Ihr VoiceAgent über die API Aktionen in Echtzeit ausführen kann

<Note>
  In diesem Artikel erfahren Sie, wie **VoiceAgent-Tools** Echtzeitaktionen während laufender Anrufe ermöglichen, indem sie Ihrem VoiceAgent erlauben, direkt mit externen Systemen über die API zu interagieren.

  Durch den Einsatz von Tools verwandeln Sie Ihren VoiceAgent in einen vollwertigen Problemlöser, der die Automatisierung verbessert und schnellere, intelligentere Kundenerlebnisse ermöglicht.
</Note>

**Benutzerebene:** Admin

***

<h2 id="h_4216241551">
  Was sind Tools?
</h2>

Mit Tools kann Ihr VoiceAgent während eines Anrufs bestimmte Aktionen ausführen, indem er API-Anfragen an Drittsysteme sendet. Sie können genau festlegen, was jedes Tool tut und wann es je nach Gesprächsverlauf ausgelöst werden soll.

**Zum Beispiel**:

* Ein Kunde fragt: „Wo ist meine Bestellung?" → Der VoiceAgent nutzt ein Tool, um die aktuellsten Sendungsinformationen abzurufen.

* Ein Patient sagt: „Kann ich meinen Termin auf Freitag verschieben?" → Der VoiceAgent ruft Ihre Buchungs-API auf, um die Verfügbarkeit zu prüfen und den Termin zu verschieben.

**Weitere Anwendungsbeispiele:**

* **Daten abrufen:**

  * Details zu Support-Tickets nachschlagen

  * Auf aktuelle Preis- oder Verfügbarkeitsinformationen zugreifen

* **Aktionen ausführen:**

  * Einen CRM-Kontakt aktualisieren

  * Eine Rückerstattung auslösen

***

<h2 id="h_c800e5f3ba">
  So erstellen Sie ein Tool
</h2>

Gehen Sie dazu zu **Dashboard > VoiceAgents > Tool-Verwaltung** und klicken Sie entweder auf die Schaltfläche ➕ oben rechts oder wählen Sie **Tool erstellen**, um das Konfigurationsfeld zu öffnen, in dem Sie festlegen können, wie Ihr neues Tool funktioniert.

<Frame>
  <img src="https://mintcdn.com/cloudtalk/g8s2E4Yk8cWS5656/images/help-center/articles/11275049/89b356edddea-screenshot-2025-05-07-at-11-20-17.png?fit=max&auto=format&n=g8s2E4Yk8cWS5656&q=85&s=484f51baeac2354c6fdf2fa12e8e794d" alt="" width="400" data-path="images/help-center/articles/11275049/89b356edddea-screenshot-2025-05-07-at-11-20-17.png" />
</Frame>

So konfigurieren Sie die einzelnen Teile:

<h4 id="h_425b566d96">
  Referenz der Tool-Felder
</h4>

| **Feld** | **Beschreibung** |
| - | - |
| **Tool-Name** | Ein klarer, aussagekräftiger Name, der dem VoiceAgent hilft zu entscheiden, wann dieses Tool verwendet werden soll. Verwenden Sie Namen wie `book_meeting`, `update_contact` oder `trigger_refund`. Nur die folgenden Zeichen sind erlaubt: `a-z`, `A-Z`, `0-9`, `_`, `-` |
| **Tool-Beschreibung** | Beschreiben Sie in natürlicher Sprache, was das Tool tut und wann es verwendet werden soll. Dies hilft der KI zu verstehen, in welchen Situationen das Tool ausgelöst werden soll. |
| **Wartemeldung** | Eine kurze Nachricht, die der VoiceAgent abspielt, während er auf die API-Antwort wartet. Dies hilft, Stille während der Ausführung zu vermeiden. Beispiel: `Let me check that for you. One moment please.` |
| **Methode und Endpunkt** | Die HTTP-Methode und der API-Endpunkt, den das Tool aufruft. Beispiel: `GET https://api.example.com/orders` |
| **Headers** | Definieren Sie alle Headers, die von der API benötigt werden. Dabei handelt es sich meist um Konstanten wie `Authorization`, `Content-Type` oder Versionierungs-Headers. |
| **Pfadparameter** | Wird verwendet, um dynamische Werte innerhalb der Endpunkt-URL einzufügen (z. B. `#{{customer_id}}` in [`https://api.acme.com/#{{customer_id}}/orders`](https://api.acme.com//orders)). |
| **Body-Parameter** | Nur für die Methoden `POST`, `PUT` und `PATCH` verfügbar. Definieren Sie die Felder, die im Request Body gesendet werden sollen. |

<h2 id="h_4f39ac973b">
  Parameter verstehen
</h2>

Beim Definieren eines Tools helfen Parameter dem VoiceAgent, die richtigen Werte an Ihre API zu übergeben. Es gibt drei Haupttypen von Parametern, die Sie sowohl in Pfad- als auch in Body-Definitionen verwenden können:

<h4 id="h_b5a4e2b47e">
  Parametertypen
</h4>

| **Typ** | **Beschreibung** |
| - | - |
| **Konstante** | Ein fester Wert, der bei jedem API-Aufruf gleich bleibt. Nützlich, wenn Sie genau wissen, welchen Wert Sie jedes Mal senden möchten. |
| **Parameter** | Ein dynamischer Wert, der aus Ihrem System-Prompt gesendet wird. Sie geben hier einen Variablennamen an, der mit dem in Ihrer auslösenden API-Anfrage gesendeten Namen übereinstimmen sollte. |
| **LLM-Prompt** | Eine Anweisung in natürlicher Sprache an die KI, wie ein Wert aus dem Gespräch extrahiert werden soll. Am besten geeignet, wenn die Eingabe davon abhängt, was der Anrufer sagt. |

Jeder Parameter hat außerdem einen **Datentyp**, der bestimmt, wie der Wert in der API-Anfrage formatiert wird. Verfügbare Typen:

* **String, Integer, Number, Boolean** funktionieren als einfache skalare Werte.

- **List** sendet den Wert als JSON-Array (z. B. `"recipients": ["a@b.com", "c@d.com"]`). Wenn Sie List auswählen, legen Sie außerdem einen Elementtyp fest (List of String, List of Integer usw.). Wenn der Agent nur einen einzelnen Wert extrahiert, wird dieser automatisch in ein Array mit einem Element verpackt, anstatt einen Fehler auszulösen.

* **Object** sendet den Wert als JSON-Objekt. Beachten Sie, dass Object-Parameter nur beschreibend sind: Der Agent erfährt, dass es sich beim Parameter um ein Objekt handelt, und sieht Ihre Beschreibung, kennt aber nicht die konkreten Feldnamen und kann die interne Struktur daher nicht erzwingen. Das eignet sich gut für einfache Durchreiche-Payloads.

<h3 id="h_52e9885b1b">
  Pfadparameter
</h3>

Dabei handelt es sich um Werte, die direkt in der URL platziert werden. Sie definieren sie mithilfe geschweifter Klammern innerhalb der Endpunkt-URL, wie `#{{customer_id}}`.

So funktioniert das in der Praxis:

**Beispiel-Endpunkt:**\
[`https://api.acme.com/#{{customer_id}}/orders`](https://api.acme.com//orders)

In diesem Fall wird `customer_id` zu einem Pfadparameter.

**Wenn als Parameter definiert:**

| Parameter | Wertquelle |
| - | - |
| `customer_id` | `customer_identifier`-Variable aus dem System-Prompt |

**Beispiel für eine auslösende Anfrage**:

```
{
    "call_number": "++44123123123",
    "voice_agent_id": "6819f0e147851f618cd6aed6",
    "call_properties": {
        "system_prompt": {
            "variables": {
                "customer_identifier": "abc123",
            }
        }
    }
}
```

Das führt zu einem Aufruf von:\
[`https://api.acme.com/abc123/orders`](https://api.acme.com/abc123/orders)

**Extraktion über LLM-Prompt:**\
Verwenden Sie eine klare Anweisung wie:\
*„*Extrahiere die vom Anrufer genannte Kunden-ID, falls er sie angibt. Falls er sie nicht von sich aus nennt, frage danach.*"*

<Frame>
  <img src="https://mintcdn.com/cloudtalk/g8s2E4Yk8cWS5656/images/help-center/articles/11275049/815cc3074282-image.png?fit=max&auto=format&n=g8s2E4Yk8cWS5656&q=85&s=a76817755f1e24e31cf664aec8ebcfec" alt="" width="650" height="644" data-path="images/help-center/articles/11275049/815cc3074282-image.png" />
</Frame>

<h3 id="h_453492ae81">
  Body-Parameter
</h3>

Bei den Methoden `POST`, `PUT` und `PATCH` müssen Sie möglicherweise einen Request Body senden. Diese funktionieren genauso wie Pfadparameter und können ebenfalls Konstanten, System-Prompt-Variablen oder LLM-Prompts verwenden.

**Verschachtelte Objekte** können mithilfe der Punktnotation definiert werden.

**Beispieldefinition:**

| **Parameter** | **Typ** | **Wert** |
| - | - | - |
| `customer_id` | Parameter | `customer_identifier` |
| `attendee.email` | LLM-Prompt | *„Extrahiere die E-Mail-Adresse des Kunden aus dem Gespräch."* |
| `recipients` | LLM-Prompt | *„Extrahiere alle E-Mail-Adressen, die der Anrufer nennt."* |

**Auslösende Anfrage**:

```
{
    "call_number": "++44123123123",
    "voice_agent_id": "6819f0e147851f618cd6aed6",
    "call_properties": {
        "system_prompt": {
            "variables": {
                "customer_identifier": "abc123",
            }
        }
    }
}
```

**Diese Anfrage führt zu folgendem Body:**

```json theme={"system"}
{
  "customer_id": "abc123",
  "attendee": {
    "email": "john@acme.com"
  },
  "recipients": ["a@b.com", "c@d.com"]
}
```

<Frame>
  <img src="https://mintcdn.com/cloudtalk/0LuB-WYxwheF-8cl/images/help-center/articles/11275049/5b9ade3e0dcb-image-1.png?fit=max&auto=format&n=0LuB-WYxwheF-8cl&q=85&s=e35de45d644f8dfa1eb99f165c09c437" alt="" width="853" height="367" data-path="images/help-center/articles/11275049/5b9ade3e0dcb-image-1.png" />
</Frame>

***

<h2 id="h_0809ce1434">
  Zuweisen von Tools an VoiceAgents
</h2>

Mit Tools können VoiceAgents während eines Anrufs bestimmte Aktionen ausführen, etwa externe Workflows auslösen, Daten an andere Systeme senden oder den Anruf beenden. Ein einzelner VoiceAgent kann mehrere Tools verwenden, und dasselbe Tool kann von mehreren VoiceAgents genutzt werden.

Tools werden als **Aktionen innerhalb eines VoiceAgent-Szenarios** ausgelöst. Das bedeutet, dass der VoiceAgent ein Tool nur dann verwendet, wenn die im Szenario definierte Situation während des Anrufs eintritt.

So verwenden Sie ein Tool in einem Szenario:

1. Gehen Sie zum Bereich **Scenarios & Guardrails** in der VoiceAgent-Konfiguration.

2. Erstellen Sie ein neues **Szenario** oder bearbeiten Sie ein vorhandenes.

3. Definieren Sie die Situation, in der das Tool verwendet werden soll.

4. Wählen Sie im Feld **Aktion** die Option **Tool-Aufruf** aus.

5. Wählen Sie im Dropdown-Menü **Tools** das Tool aus, das der VoiceAgent verwenden soll.

6. Speichern Sie die Konfiguration.

   <Frame>
     <img src="https://mintcdn.com/cloudtalk/0LuB-WYxwheF-8cl/images/help-center/articles/11275049/194bac00bc65-image.png?fit=max&auto=format&n=0LuB-WYxwheF-8cl&q=85&s=b4b12e4f82fb42298f289c4fb49b63d7" alt="" width="1178" height="642" data-path="images/help-center/articles/11275049/194bac00bc65-image.png" />
   </Frame>

Sobald die Konfiguration abgeschlossen ist, verwendet der VoiceAgent automatisch das ausgewählte Tool, wenn die Bedingungen des Szenarios während eines Anrufs erfüllt sind.

***

<h2 id="h_b446948f0c">
  Tipps für den effektiven Einsatz von Tools
</h2>

* **Verwenden Sie klare und aussagekräftige Tool-Namen**\
  Geben Sie jedem Tool einen Namen, der eindeutig widerspiegelt, was es tut. Vermeiden Sie Abkürzungen oder interne Codes.

  * Gut: `trigger_refund`, `get_order_status`, `book_appointment`

  * Nicht so gut: `rfnd_tool_v1`, `statusQ`, `app_sched_new`

* **Schreiben Sie eine Beschreibung in natürlicher Sprache**\
  Erklären Sie im Feld Tool-Beschreibung, wann und warum der VoiceAgent das Tool verwenden soll. Fügen Sie bei komplexen Tools eine kurze Beschreibung für jedes Argument hinzu, das der Agent erfassen muss.

***

*Brauchen Sie Hilfe oder haben Sie eine Frage?* Wenden Sie sich einfach an unser [Support-Portal](https://support.cloudtalk.io/hc/en-us/requests/new?ticket_form_id=26305535257884) — wir sind für Sie da.


## Related topics

- [VoiceAgent-Tools: Cal.com](/de/articles/14073361-voiceagent-tools-cal-com.md)
- [VoiceAgents für eingehende Anrufe](/de/articles/11399385-voiceagents-for-inbound-calls.md)
- [VoiceAgents für ausgehende Anrufe](/de/articles/11401649-voiceagents-for-outbound-calls.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.