JavaScript SDK
ElevenAgents SDK: Stellen Sie in Minuten angepasste, interaktive Sprachagenten bereit.
Installation
Installieren Sie das Paket über einen Paketmanager in Ihrem Projekt.
Upgrade von einer früheren Version? Führen Sie npx skills add elevenlabs/packages aus, um den
Skill elevenlabs:sdk-migration für Ihren KI-Coding-Agenten zu installieren. Er automatisiert
Importänderungen und API-Updates.
Verwendung
Diese Bibliothek ist primär für die Entwicklung in Vanilla-JavaScript-Projekten gedacht oder als Basis für Bibliotheken, die auf bestimmte Frameworks zugeschnitten sind. Prüfen Sie, ob Ihr Framework eine eigene Bibliothek hat. Sie können diese Bibliothek jedoch in jedem JavaScript-basierten Projekt verwenden.
Unterhaltung initialisieren
Erstellen Sie zunächst mit Conversation.startSession eine neue Unterhaltungssitzung:
Dadurch wird eine Verbindung hergestellt und das Mikrofon für die Kommunikation mit dem ElevenLabs Agents-Agenten verwendet. Erklären Sie den Mikrofonzugriff in der UI Ihrer App und erlauben Sie ihn, bevor Sie die Unterhaltung starten:
Sitzungs-Konfiguration
Die an startSession übergebenen Optionen legen fest, wie die Sitzung hergestellt wird. Unterhaltungen können mit öffentlichen oder privaten Agenten gestartet werden.
Öffentliche Agenten
Agenten, die keine Authentifizierung erfordern, können mithilfe der Agent-ID eine Unterhaltung starten. Die Agent-ID erhalten Sie über die ElevenLabs UI.
Bei öffentlichen Agenten können Sie die ID direkt verwenden:
Der Verbindungstyp wird automatisch anhand des Unterhaltungsmodus bestimmt. Sprachunterhaltungen
verwenden WebRTC, reine Textunterhaltungen standardmäßig WebSocket. Bei Bedarf können Sie
connectionType: 'webrtc' oder connectionType: 'websocket' weiterhin explizit angeben.
Private Agenten
Wenn die Unterhaltung eine Autorisierung erfordert, müssen Sie Ihrem Server einen eigenen Endpunkt hinzufügen. Dieser fordert über die ElevenLabs API entweder eine signierte URL an (bei Verwendung des WebSockets-Verbindungstyps) oder ein Unterhaltungstoken (bei Verwendung von WebRTC) und gibt es an den Client zurück.
Hier ist ein Beispiel für eine WebSocket-Verbindung:
Hier ist ein Beispiel für WebRTC:
Sobald Sie das Token haben, startet die Übergabe an startSession die Unterhaltung über WebRTC.
Optionale Callbacks
Mit den an startSession übergebenen Optionen können Sie auch optionale Callbacks registrieren:
- onConnect – Handler, der aufgerufen wird, wenn die WebSocket-Verbindung für die Unterhaltung hergestellt ist.
- onDisconnect – Handler, der aufgerufen wird, wenn die WebSocket-Verbindung für die Unterhaltung beendet wird.
- onMessage – Handler, der aufgerufen wird, wenn eine neue Textnachricht eingeht. Dabei kann es sich um vorläufige oder endgültige Transkriptionen der Nutzersprache oder von einem LLM erzeugte Antworten handeln. Primär für die Verarbeitung der Unterhaltungstranskription.
- onError – Handler, der aufgerufen wird, wenn ein Fehler auftritt.
- onStatusChange – Handler, der bei jeder Änderung des Verbindungsstatus aufgerufen wird. Möglich sind
connected,connectingunddisconnected(anfänglich). - onModeChange – Handler, der aufgerufen wird, wenn sich ein Status ändert, z. B. wenn der Agent von
speakingzulisteningwechselt oder umgekehrt. - onCanSendFeedbackChange – Handler, der aufgerufen wird, wenn das Senden von Feedback verfügbar oder nicht verfügbar wird.
- onAudioAlignment – Handler, der aufgerufen wird, wenn Audio-Alignment-Daten eingehen. Diese liefern Timing-Informationen auf Zeichenebene für die Sprache des Agenten.
Nicht alle Client-Ereignisse sind für einen Agenten standardmäßig aktiviert. Wenn Sie einen Callback aktiviert haben, aber keine Ereignisse empfangen, stellen Sie sicher, dass für Ihren ElevenLabs-Agenten das entsprechende Ereignis aktiviert ist. Dies können Sie im Tab „Advanced“ der Agenteneinstellungen im ElevenLabs-Dashboard tun.
Rückgabewert
startSession gibt eine Unterhaltungsinstanz zurück (VoiceConversation oder TextConversation, je nach Modus), mit der Sie die Sitzung steuern können. Die Methode löst einen Fehler aus, wenn die Sitzung nicht hergestellt werden kann. Das kann passieren, wenn der Nutzer den Mikrofonzugriff verweigert oder die Verbindung fehlschlägt.
endSession
Eine Methode zum manuellen Beenden der Unterhaltung. Sie beendet die Unterhaltung und trennt die WebSocket-Verbindung. Danach ist die Unterhaltungsinstanz nicht mehr verwendbar und kann sicher verworfen werden.
getId
Eine Methode, die die Unterhaltungs-ID zurückgibt.
setVolume
Eine Methode zum Festlegen der Ausgabelautstärke der Unterhaltung. Akzeptiert ein Objekt mit einem Lautstärkefeld zwischen 0 und 1.
getInputVolume / getOutputVolume
Methoden, die die aktuelle Eingabe-/Ausgabelautstärke auf einer Skala von 0 bis 1 zurückgeben, wobei 0 -100 dB und 1 -30 dB entspricht.
sendFeedback
Eine Methode zum Senden von binärem Feedback an den Agenten. Die Methode akzeptiert einen booleschen Wert, wobei true positives und false negatives Feedback bedeutet.
Feedback bezieht sich immer auf die letzte Antwort des Agenten und kann nur einmal pro Antwort gesendet werden.
Über onCanSendFeedbackChange können Sie feststellen, ob Feedback zum jeweiligen Zeitpunkt gesendet werden kann.
sendContextualUpdate
Eine Methode zum Senden kontextbezogener Updates an den Agenten. Damit können Sie den Agenten über Nutzeraktionen informieren, die nicht direkt mit der Unterhaltung zusammenhängen, aber seine Antworten beeinflussen können.
sendUserMessage
Sendet eine Textnachricht an den Agenten.
Damit kann der Nutzer die Nachricht eingeben, statt das Mikrofon zu verwenden. Anders als bei sendContextualUpdate wird dies als Nutzernachricht behandelt und veranlasst den Agenten, in der Unterhaltung zu antworten.
sendUserActivity
Benachrichtigt den Agenten über Nutzeraktivität.
Der Agent versucht mindestens 2 Sekunden lang nicht zu sprechen, nachdem Nutzeraktivität erkannt wurde.
Damit können Sie verhindern, dass der Agent den Nutzer beim Tippen unterbricht.
setMicMuted
Eine Methode zum Stummschalten bzw. Aktivieren des Mikrofons.
changeInputDevice
Ermöglicht das Ändern des Audioeingabegeräts während einer aktiven Sprachunterhaltung. Diese Methode ist nur für Sprachunterhaltungen verfügbar.
Im WebRTC-Modus sind Eingabeformat und Abtastrate fest auf pcm bzw. 48000 eingestellt.
Das Ändern dieser Werte beim Wechsel des Eingabegeräts hat keine Wirkung.
Wenn die Geräte-ID ungültig ist, wird stattdessen das Standardgerät verwendet.
changeOutputDevice
Ermöglicht das Ändern des Audioausgabegeräts während einer aktiven Sprachunterhaltung. Diese Methode ist nur für Sprachunterhaltungen verfügbar.
Im WebRTC-Modus sind Ausgabeformat und Abtastrate fest auf pcm bzw. 48000 eingestellt.
Das Ändern dieser Werte beim Wechsel des Ausgabegeräts hat keine Wirkung.
Der Gerätewechsel funktioniert nur bei Sprachunterhaltungen. Wenn keine spezifische deviceId angegeben ist,
verwendet der Browser die Auswahl seines Standardgeräts. Sie können verfügbare Geräte über die
API MediaDevices.enumerateDevices()
auflisten.
getInputByteFrequencyData / getOutputByteFrequencyData
Methoden, die Uint8Arrays mit den aktuellen Eingabe-/Ausgabefrequenzdaten zurückgeben. Weitere Informationen finden Sie unter AnalyserNode.getByteFrequencyData.
Diese Methoden sind nur für Sprachunterhaltungen verfügbar. Im WebRTC-Modus ist das Audio fest auf
pcm_48000 eingestellt. Daher können Visualisierungen mit den zurückgegebenen Daten andere Muster
zeigen als WebSocket-Verbindungen.