Client-Tools

Ermöglichen Sie Ihrem Assistenten, clientseitige Vorgänge auszulösen.

Client-Tools ermöglichen Ihrem Assistenten, clientseitige Funktionen auszuführen. Im Gegensatz zu Webhook-Tools können Client-Tools Aktionen wie das Auslösen von Browserereignissen, das Ausführen clientseitiger Funktionen oder das Senden von Benachrichtigungen an eine UI durchführen.

Überblick

Anwendungen benötigen möglicherweise Assistenten, die direkt mit der Umgebung des Benutzers interagieren. Clientseitige Tools geben Ihrem Assistenten die Möglichkeit, clientseitige Vorgänge auszuführen.

Hier sind einige Beispiele, bei denen Client-Tools nützlich sein können:

  • UI-Ereignisse auslösen: Ermöglichen Sie einem Assistenten, Browserereignisse wie Warnungen, Modals oder Benachrichtigungen auszulösen.
  • Mit dem DOM interagieren: Ermöglichen Sie einem Assistenten, das Document Object Model (DOM) für dynamische Inhaltsaktualisierungen zu bearbeiten oder Benutzer durch komplexe Oberflächen zu führen.

Verwenden Sie zum Aufrufen serverseitiger APIs stattdessen Webhook- Tools.

Anleitung

Voraussetzungen

1

Neues clientseitiges Tool erstellen

Konfigurieren Sie ein Client-Tool namens logMessage mit dem erforderlichen String-Parameter message (“Die in der Konsole zu protokollierende Nachricht”).

Navigieren Sie zum Dashboard Ihres Agenten. Klicken Sie im Bereich Tools auf Tool hinzufügen. Stellen Sie sicher, dass der Tool-Typ auf Client gesetzt ist. Konfigurieren Sie dann Folgendes:

EinstellungParameter
NamelogMessage
BeschreibungVerwenden Sie dieses clientseitige Tool, um eine Nachricht beim Client des Benutzers zu protokollieren.

Erstellen Sie dann einen neuen Parameter message mit der folgenden Konfiguration:

EinstellungParameter
DatentypString
Bezeichnermessage
Erforderlichtrue
BeschreibungDie in der Konsole zu protokollierende Nachricht. Stellen Sie sicher, dass die Nachricht informativ und relevant ist.

Einrichtung des logMessage-Client-Tools

2

Client-Tool in Ihrem Code registrieren

Im Gegensatz zu Webhook-Tools müssen Client-Tools in Ihrem Code registriert werden.

Verwenden Sie den folgenden Code, um das Client-Tool zu registrieren:

from elevenlabs import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation, ClientTools
def log_message(parameters):
message = parameters.get("message")
print(message)
client_tools = ClientTools()
client_tools.register("logMessage", log_message)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

Bei den Tool- und Parameternamen in der Agentenkonfiguration wird zwischen Groß- und Kleinschreibung unterschieden. Sie müssen mit den in Ihrem Code registrierten Namen übereinstimmen.

3

Testen

Starten Sie eine Unterhaltung mit Ihrem Agenten und sagen Sie beispielsweise:

Protokolliere eine Nachricht mit dem Text „Hello World“ in der Konsole

In Ihrer Konsole sollte ein Hello World-Log angezeigt werden.

4

Nächste Schritte

Nachdem Sie ein einfaches clientseitiges Ereignis eingerichtet haben, können Sie:

  • Komplexere Client-Tools erkunden, etwa zum Öffnen von Modals, Navigieren zu Seiten oder Interagieren mit dem DOM.
  • Client-Tools mit serverseitigen Webhooks für Full-Stack-Interaktionen kombinieren.
  • Client-Tools verwenden, um die Benutzerinteraktion zu verbessern und während Unterhaltungen Echtzeit-Feedback bereitzustellen.

Ergebnisse von Client-Tools an den Unterhaltungskontext übergeben

Wenn Ihr Agent Daten von einem Client-Tool zurückerhalten soll, aktivieren Sie in der Tool-Konfiguration die Option Auf Antwort warten.

Option „Auf Antwort warten“ in der Konfiguration des Client-Tools

Nachdem das Client-Tool hinzugefügt wurde, wartet der Agent beim Aufruf der Funktion auf deren Antwort und fügt diese dem Unterhaltungskontext hinzu.

def get_customer_details():
# Fetch customer details (e.g., from an API or database)
customer_data = {
"id": 123,
"name": "Alice",
"subscription": "Pro"
}
# Return the customer data; it can also be a JSON string if needed.
return customer_data
client_tools = ClientTools()
client_tools.register("getCustomerDetails", get_customer_details)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

In diesem Beispiel wird die Funktion auf dem Client ausgeführt, wenn der Agent getCustomerDetails aufruft. Der Agent erhält die zurückgegebenen Daten, die dann als Teil des Unterhaltungskontexts verwendet werden. Die Werte aus der Antwort können optional auch dynamischen Variablen zugewiesen werden, ähnlich wie bei Webhook-Tools. Beachten Sie, dass System-Tools keine dynamischen Variablen aktualisieren können.

Fehlerbehebung

  • Stellen Sie sicher, dass die Tool- und Parameternamen in der Agentenkonfiguration mit den in Ihrem Code registrierten Namen übereinstimmen.
  • Sehen Sie sich das Gesprächstranskript im Agenten-Dashboard an, um zu prüfen, ob das Tool ausgeführt wird.
  • Öffnen Sie die Browserkonsole, um auf Fehler zu prüfen.
  • Stellen Sie sicher, dass Ihr Code die notwendige Fehlerbehandlung für nicht definierte oder unerwartete Parameter enthält.

Best Practices

Tools intuitiv benennen und detailliert beschreiben

Wenn der Assistent nicht die richtigen Tools aufruft, müssen Sie möglicherweise Tool-Namen und Beschreibungen anpassen, damit der Assistent besser versteht, wann er welches Tool auswählen soll. Vermeiden Sie Abkürzungen oder Akronyme, um Namen von Tools und Argumenten zu verkürzen.

Sie können auch detailliert beschreiben, wann ein Tool aufgerufen werden soll. Bei komplexen Tools sollten Sie jedes Argument beschreiben, damit der Assistent weiß, welche Informationen er vom Nutzer abfragen muss.

Tool-Parameter intuitiv benennen und detailliert beschreiben

Verwenden Sie klare und aussagekräftige Namen für Tool-Parameter. Geben Sie gegebenenfalls in der Beschreibung das erwartete Format eines Parameters an, zum Beispiel YYYY-mm-dd oder dd/mm/yy für ein Datum.

Erwägen Sie, im System-Prompt Ihres Assistenten zusätzliche Informationen dazu bereitzustellen, wie und wann Tools aufgerufen werden sollen

Klare Anweisungen in Ihrem System-Prompt können die Genauigkeit von Tool-Aufrufen deutlich verbessern. Leiten Sie den Assistenten beispielsweise mit Anweisungen wie den folgenden an:

Use `check_order_status` when the user inquires about the status of their order, such as 'Where is my order?' or 'Has my order shipped yet?'.

Geben Sie bei komplexen Szenarien Kontext an. Zum Beispiel:

Before scheduling a meeting with `schedule_meeting`, check the user's calendar for availability using check_availability to avoid conflicts.

LLM-Auswahl

Bei der Verwendung von Tools empfehlen wir leistungsstarke Modelle wie GPT 5.2, Gemini-2.5-Flash oder Claude Sonnet 4.5 und raten von Gemini-2.0-Flash ab.

Die Wahl des LLM ist entscheidend für den Erfolg von Funktionsaufrufen. Einige LLMs haben Schwierigkeiten, die relevanten Parameter aus der Unterhaltung zu extrahieren.