Kotlin SDK
ElevenAgents SDK: Stellen Sie angepasste, interaktive Sprachagenten in Minuten für Android-Apps bereit.
Eine Erklärung zur Funktionsweise von ElevenAgents finden Sie in der ElevenAgents-Übersicht.
Installation
Fügen Sie das ElevenLabs SDK zu Ihrem Android-Projekt hinzu, indem Sie die folgende Abhängigkeit in die build.gradle-Datei Ihrer App einfügen:
Eine Android-Beispiel-App, die dieses SDK verwendet, finden Sie hier.
Anforderungen
- Android API-Level 21 (Android 5.0) oder höher
- Internetberechtigung für API-Aufrufe
- Mikrofonberechtigung für Spracheingaben
- Netzwerksicherheitskonfiguration für HTTPS-Aufrufe
Einrichtung
Manifest-Konfiguration
Fügen Sie die erforderlichen Berechtigungen zu Ihrer AndroidManifest.xml hinzu:
Laufzeitberechtigungen
Für Android 6.0 (API-Level 23) und höher müssen Sie die Mikrofonberechtigung zur Laufzeit anfordern:
Verwendung
Initialisieren Sie das ElevenLabs SDK in Ihrer Application-Klasse oder Hauptaktivität:
Starten Sie eine Unterhaltungssitzung mit einer der folgenden Optionen:
- Öffentlicher Agent: Übergeben Sie
agentId. - Privater Agent: Übergeben Sie
conversationToken, das über Ihr Backend bereitgestellt wird (geben Sie Ihren API-Schlüssel niemals an den Client weiter).
Beachten Sie, dass ElevenAgents Mikrofonzugriff benötigt. Erwägen Sie, Berechtigungen in der UI Ihrer App zu erläutern und anzufordern, bevor die Unterhaltung beginnt – insbesondere unter Android 6.0 und höher, wo Laufzeitberechtigungen erforderlich sind.
Wenn ein Tool auf dem Server mit expects_response=false konfiguriert ist, geben Sie in execute null zurück,
um kein Tool-Ergebnis an den Agenten zurückzusenden.
Öffentliche und private Agents
- Öffentliche Agents (keine Authentifizierung): Initialisieren Sie mit
agentIdinConversationConfig. Das SDK fordert ein Unterhaltungstoken von ElevenLabs an, ohne dass ein API-Schlüssel auf dem Gerät erforderlich ist. - Private Agents (Authentifizierung): Initialisieren Sie mit
conversationTokeninConversationConfig. Ihr Server fordert mit Ihrem ElevenLabs API-Schlüssel ein Unterhaltungstoken von ElevenLabs an.
Client-Tools
Registrieren Sie Client-Tools, damit der Agent lokale Funktionen auf dem Gerät aufrufen kann.
Wenn der Agent einen client_tool_call ausgibt, führt das SDK das passende Tool aus und antwortet mit einem client_tool_result. Ist das Tool nicht registriert, wird onUnhandledClientToolCall aufgerufen und ein Fehlerergebnis an den Agenten zurückgegeben, sofern eine Antwort erwartet wird.
Callback-Übersicht
- onConnect – Wird aufgerufen, wenn die WebRTC-Verbindung hergestellt ist. Gibt die Unterhaltungs-ID zurück.
- onMessage – Wird aufgerufen, wenn eine neue Nachricht eingeht. Dies können vorläufige oder endgültige Transkriptionen der Nutzersprache, vom LLM erzeugte Antworten oder Debug-Nachrichten sein. Stellt die Quelle (
"ai"oder"user") und die rohe JSON-Nachricht bereit. - onModeChange – Wird aufgerufen, wenn sich der Unterhaltungsmodus ändert. Dies ist nützlich, um anzuzeigen, ob der Agent spricht (
"speaking") oder zuhört ("listening"). - onStatusChange – Wird aufgerufen, wenn sich der Unterhaltungsstatus ändert (
"connected","connecting"oder"disconnected"). - onCanSendFeedbackChange – Wird aufgerufen, wenn sich die Möglichkeit zum Senden von Feedback ändert. Aktiviert bzw. deaktiviert Feedback-Schaltflächen.
- onUnhandledClientToolCall – Wird aufgerufen, wenn der Agent ein Client-Tool anfordert, das nicht auf dem Gerät registriert ist.
- onVadScore – Wird aufgerufen, wenn sich der Score der Spracherkennung ändert. Bereich von 0 bis 1; höhere Werte weisen auf eine höhere Sicherheit hin, dass Sprache erkannt wurde.
- onAudioAlignment – Wird aufgerufen, wenn Audioausrichtungsdaten eingehen, und stellt Zeitinformationen auf Zeichenebene für die Agentensprache bereit.
Nicht alle Client-Ereignisse sind standardmäßig für einen Agenten aktiviert. Wenn Sie einen Callback aktiviert haben, aber keine Ereignisse erhalten, stellen Sie sicher, dass das entsprechende Ereignis für Ihren ElevenLabs-Agenten aktiviert ist. Dies können Sie im Tab „Advanced“ der Agenteneinstellungen im ElevenLabs-Dashboard tun.
Methoden
startSession
Die Methode startSession initialisiert die WebRTC-Verbindung und beginnt, das Mikrofon für die Kommunikation mit dem ElevenLabs Agents-Agenten zu verwenden.
Öffentliche Agents
Für öffentliche Agents (d. h. Agents ohne aktivierte Authentifizierung) ist nur die agentId erforderlich. Die Agent-ID erhalten Sie über die ElevenLabs UI.
Private Agents
Für private Agents müssen Sie einen über die ElevenLabs API abgerufenen conversationToken übergeben. Zum Generieren dieses Tokens ist ein ElevenLabs API-Schlüssel erforderlich.
conversationToken ist 10 Minuten lang gültig.Übergeben Sie das Token dann an die Methode startSession. Beachten Sie, dass für private Agents nur der conversationToken erforderlich ist.
Optional können Sie eine Nutzer-ID übergeben, um den Nutzer in der Unterhaltung zu identifizieren. Dies kann Ihre eigene Kundenkennung sein. Sie wird in die an den Server gesendeten Daten zur Gesprächsinitiierung aufgenommen.
endSession
Eine Methode zum manuellen Beenden der Unterhaltung. Die Methode trennt die Verbindung und beendet die Unterhaltung.
sendUserMessage
Senden Sie während einer aktiven Unterhaltung eine Textnachricht an den Agenten. Dies löst eine Antwort des Agenten aus.
sendContextualUpdate
Sendet Kontextinformationen an den Agenten, die keine Antwort auslösen.
sendFeedback
Geben Sie Feedback zur Gesprächsqualität. Dies trägt zur Verbesserung der Leistung des Agenten bei. Verwenden Sie onCanSendFeedbackChange, um Ihre Daumen-hoch-/Daumen-runter-UI zu aktivieren, wenn Feedback erlaubt ist.
sendUserActivity
Informiert den Agenten über Nutzeraktivität, um Unterbrechungen zu verhindern. Nützlich, wenn der Nutzer die App aktiv verwendet und der Agent das Sprechen pausieren soll, etwa wenn der Nutzer in einem Chat schreibt.
Nach diesem Signal pausiert der Agent sein Sprechen für etwa 2 Sekunden.
getId
Rufen Sie die Unterhaltungs-ID ab.
Stummschalten/Stummschaltung aufheben
Überwachen Sie session.isMuted, um die UI-Beschriftung zwischen „Stummschalten“ und „Stummschaltung aufheben“ zu aktualisieren.
Eigenschaften
status
Rufen Sie den aktuellen Status der Unterhaltung ab.
ProGuard / R8
Wenn Sie Code verkleinern/verschleiern, stellen Sie sicher, dass Gson-Modelle und LiveKit beibehalten werden. Beispielregeln (bei Bedarf anpassen):
Fehlerbehebung
- Stellen Sie sicher, dass die Mikrofonberechtigung zur Laufzeit erteilt wird.
- Wenn die Wiederverbindung hängt, prüfen Sie, ob Ihre App
session.endSession()aufruft und vor der Wiederverbindung eine neue Sitzungsinstanz startet. - Prüfen Sie bei Emulatoren, ob die Audioein-/-ausgaberouten funktionieren; physische Geräte verhalten sich in der Regel zuverlässiger.
Beispielimplementierung
Eine Beispielimplementierung finden Sie in der Beispiel-App im ElevenLabs Android SDK-Repository. Die App zeigt:
- Verbinden/Trennen mit einem Tipp
- Sprech-/Zuhöranzeige
- Feedback-Schaltflächen mit Aktivierung/Deaktivierung in der UI
- Tippanzeige über
sendUserActivity() - Kontext- und Nutzernachrichten aus einer Eingabe
- Schaltfläche zum Stummschalten/Aufheben der Stummschaltung des Mikrofons