agent-1 ist der Standard-Konversations-Avatar-Agent. Er verbindet eine komplette Sprach-KI-Pipeline — Speech-to-Text, Large Language Model und Text-to-Speech — direkt mit einem Avaluma-Avatar über LiveKit Inference. Spricht ein Nutzer, läuft das Audio durch AssemblyAI zur Transkription, OpenAI GPT-4.1-mini für eine Antwort und Cartesia Sonic-3 zur Synthese; das finale Audio wird vom Avatar-Server in einen Live-Video-Stream gerendert.
Pipeline
Setup
Plugin installieren
Das Paket
avaluma-livekit-plugin stellt die AvatarSession-Klasse bereit, die die Agent-Pipeline mit deinem Avatar verbindet. Die pyproject.toml deklariert es bereits als Abhängigkeit — bei Verwendung von Docker ist kein zusätzlicher Installationsschritt nötig:pyproject.toml
Zugangsdaten konfigurieren
Kopiere
.env.example nach .env.local und trage deine Zugangsdaten ein:.env.local
Avatar-ID setzen
Öffne
agents/1-agent-with-livekit-inference/agent-1.py und setze avatar_id auf den Namen deiner .hvia-Datei ohne Endung:agent-1.py
Vollständiger Agent-Code
Dies ist der komplette Quellcode vonagent-1.py:
agent-1.py
Wichtige Komponenten erklärt
AvatarSession
AvatarSession ist der Kern der Avaluma-Integration. Du instanziierst sie mit deinem Lizenzschlüssel, der Avatar-ID (passend zum .hvia-Dateinamen) und der Avatar-Server-URL:
await avatar.start() registriert den Avatar als Teilnehmer im LiveKit-Raum und verbindet ihn mit der AgentSession, sodass TTS-Audio-Frames zum Rendern an den Avatar-Server weitergeleitet werden. Der Aufruf blockiert, bis der Avatar-Teilnehmer dem Raum vollständig beigetreten ist.
AgentSession mit LiveKit Inference
DieAgentSession konfiguriert die vollständige Sprach-Pipeline über die verwalteten Inference-Endpunkte von LiveKit — für STT, LLM oder TTS sind keine separaten API-Keys erforderlich:
| Parameter | Wert | Zweck |
|---|---|---|
stt | assemblyai/universal-streaming | Echtzeit-Speech-to-Text |
llm | openai/gpt-4.1-mini | Sprachmodell für Antworten |
tts | cartesia/sonic-3 | Text-to-Speech-Synthese |
turn_detection | MultilingualModel() | Erkennt das Sprechende über Sprachen hinweg |
vad | silero.VAD | Sprachaktivitätserkennung (vorgewärmt) |
preemptive_generation | True | Startet die LLM-Generierung vor Abschluss der STT für geringere Latenz |
Geräuschunterdrückung
Die Unterdrückung von Hintergrundgeräuschen wird auf Raum-Eingabeebene mitnoise_cancellation.BVC() angewendet:
Prewarm-Funktion
Dieprewarm-Funktion lädt das Silero-VAD-Modell in den Speicher des Worker-Prozesses, bevor der erste Job eintrifft, und eliminiert so Kaltstart-Latenz:
Einen neuen Agent hinzufügen
Folge diesen Schritten, um einen zusätzlichen Agent nebenagent-1 zu erstellen:
Neues Agent-Verzeichnis anlegen
Füge ein Verzeichnis unter
agents/ hinzu und lege dein Agent-Skript hinein:Eindeutigen Agent-Namen setzen
Setze in deinem neuen Skript
agent_name auf einen Wert, der innerhalb deines LiveKit-Projekts eindeutig ist:agent-3.py
Service zur docker-compose.yaml hinzufügen
Mounte dein Skript in den Container und setze
AGENT_NAME passend zu agent_name in deinem Skript:docker-compose.yaml
