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

# Tool Calls

> Lass deinen Agenten während eines Anrufs spezifische Aktionen mit Tool Calls ausführen.

Mit Tool Calls kann dein Agent **während eines Anrufs gezielte Aktionen ausführen** – etwa das Gespräch beenden, einen Rückruf vereinbaren, auf den Kunden warten oder eine externe API ansprechen.

## Schnellstart

<Steps>
  <Step title="Tool im Prompt referenzieren">
    Stelle dem Tool-Namen ein `@` voran, um es zu referenzieren: `@toolName`. Tools mit mehreren konfigurierten Instanzen – `@collect_data` und `@transferCall` – erwarten zusätzlich eine Kennung nach dem Doppelpunkt, die die konkrete Instanz auswählt, z. B. `@collect_data:email` oder `@transferCall:sales`. Die Tools-Sidebar im Builder fügt die passende Referenz automatisch ein.
  </Step>

  <Step title="Einsatzzeitpunkt definieren">
    Erkläre im System-Prompt klar, wann der Agent das Tool nutzen soll (und wann nicht)
  </Step>

  <Step title="Rest läuft automatisch">
    Während des Anrufs löst der Agent das Tool bei Bedarf aus – der Kunde hört nichts vom Tool-Namen
  </Step>
</Steps>

<Note>
  Definiere im Prompt **wann** der Agent ein Tool einsetzen soll – nicht wie es technisch funktioniert. Die technische Konfiguration erfolgt separat in den Agenten-Einstellungen.
</Note>

***

<Tabs>
  <Tab title="So funktionieren Tool Calls">
    1. **Der Agent entscheidet** — Basierend auf deinen Prompt-Anweisungen erkennt das LLM, dass ein Tool aufgerufen werden sollte
    2. **Das Tool läuft im Hintergrund** — Die Ausführung erfolgt unsichtbar; der Kunde bekommt nichts vom Tool-Namen mit
    3. **Der Agent macht weiter** — Der Agent erhält das Ergebnis und führt das Gespräch nahtlos fort
  </Tab>

  <Tab title="Integrierte Tools">
    Diese Tools stehen jedem Agenten standardmäßig zur Verfügung:

    | **Tool**                   | **Funktion**                      |
    | :------------------------- | :-------------------------------- |
    | **`@endCall`**             | Beendet den Anruf                 |
    | **`@callMeLater`**         | Plant einen Rückruf               |
    | **`@waitForUserToReturn`** | Wartet, bis der Kunde zurückkommt |
    | **`@searchKnowledgeBase`** | Durchsucht die Wissensdatenbank   |
  </Tab>

  <Tab title="Eigene HTTP-Tools">
    Eigene Tools ermöglichen deinem Agenten, während des Gesprächs externe APIs anzusprechen – beispielsweise um einen Kontostand abzufragen, Terminverfügbarkeiten zu prüfen oder CRM-Einträge zu aktualisieren.

    Eigene Tools werden im Bereich **Tools** der Agenten-Einstellungen konfiguriert. Details findest du unter [Benutzerdefinierte HTTP-Tools](/de/custom-tools).

    **Eigene Tools richtig prompten**

    Damit Agenten verstehen, **wann und wie sie Tool Calls nutzen sollen**, enthält jedes Tool einen **„Beschreibungs"**-Tab (globaler Tool-Prompt) in der Konfiguration. Zusätzlich gibt es einen LLM-Variablen-Prompt, der auf vorherige Tool Calls verweisen oder Formate definieren kann.

    Eine gute Beschreibung:

    * Erklärt präzise, **wann** das Tool zum Einsatz kommt
    * Definiert, **wie** es verwendet wird
    * Spezifiziert Bedingungen, Einschränkungen oder erwartete Eingaben
    * Reduziert Unklarheiten für den Agenten

    Die Beschreibung liefert außerdem wichtigen Kontext für den **System-Prompt** und hilft dem System, Einsatzzweck und Auslöselogik des Tools besser zu verstehen.
  </Tab>
</Tabs>

***

<Tabs>
  <Tab title="Best Practices für Tool-Prompting">
    **Einsatzzeitpunkt klar definieren**

    Leg für jedes Tool im System-Prompt fest:

    **→ Wann** der Agent es nutzen soll

    **→ Wann** der Agent es **nicht** nutzen soll

    **→ Was** der Agent dem Kunden vorher/nachher sagt (falls erforderlich)

    ***

    **Tool-Namen niemals aussprechen**

    Tool-Referenzen mit `@`-Präfix sind interne Aktionen. Der Kunde hört nur die natürliche Formulierung.

    <Warning>
      **Nicht sagen:** *„Ich rufe jetzt das searchKnowledgeBase-Tool auf"*

      Der Kunde sollte keine technischen Tool-Namen hören.
    </Warning>

    <Check>
      **Stattdessen sagen:** *„Lass mich kurz nachschauen..."*

      Bleib natürlich und gesprächig.
    </Check>

    ***

    **Anweisungen kontextnah platzieren**

    Wenn ein Tool zu einem bestimmten Abschnitt deines Skripts gehört (z. B. Wissensdatenbank-Suche zur Fehlerbehebung), platziere die Anweisungen direkt dort – nicht irgendwo in einer allgemeinen Regelliste.

    ***

    **Konkrete Beispiele geben**

    Sag nicht einfach „nutze die Wissensdatenbank mit Artikelnummer". Zeig dem Agenten, wie eine korrekte Anfrage aussieht.

    <Warning>
      **Nicht schreiben:** *„Verwende die Artikelnummer beim Installationsablauf"*

      Zu vage – der Agent kennt das genaue Format nicht.
    </Warning>

    <Check>
      **Stattdessen schreiben:** *„Beim Installationsablauf immer die Artikelnummer in die Suchanfrage einbeziehen. Beispiel: **`fulltext_query: 'Artikelnummer 000012345 Sky Stream Installation kein Bild'`***"

      Klar, präzise, mit konkretem Beispiel.
    </Check>

    ***

    **Negativfälle definieren**

    Definiere zu jedem „wann nutzen" auch ein „wann NICHT nutzen". Das verhindert Fehlnutzung oder übermäßigen Einsatz.
  </Tab>

  <Tab title="Beispiel-Verwendungsregeln">
    | **Tool**                   | **Aktion**                      | **Verwendungsregeln**                                                                                                                                                                                                        | **Beispielsituation**                                                  |
    | :------------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |
    | **`@endCall`**             | Beendet den Anruf               | Nur wenn alle Aufgaben erledigt und das Gespräch komplett abgeschlossen ist                                                                                                                                                  | Die gewünschte Person ist nicht erreichbar                             |
    | **`@callMeLater`**         | Plant einen Rückruf             | Kunden **immer** vorher fragen, ob er zurückgerufen werden möchte. Tool nie vor der Rückfrage aufrufen. Nie für Experten-Rückrufe nutzen. Bei Wörtern wie „Experte", „Kollege" oder „Weiterleitung" ist dieses Tool **tabu** | Der Kunde hat gerade keine Zeit und möchte später zurückgerufen werden |
    | **`@waitForUserToReturn`** | Wartet auf den Kunden           | Nutzen, wenn du Anweisungen gibst und auf eine Handlung des Kunden wartest, oder wenn der Kunde explizit ums Warten bittet                                                                                                   | Agent: „Steck das Kabel ein." Kunde: „Moment, bin gleich zurück."      |
    | **`@searchKnowledgeBase`** | Durchsucht die Wissensdatenbank | Vor technischen Anweisungen nutzen. Nie verwenden, nachdem bereits Anweisungen gegeben wurden                                                                                                                                | Kunde stellt Produktfrage, die im Prompt nicht behandelt wird          |
  </Tab>
</Tabs>
