Affektiver Dialog
Affektiver Dialog macht den Agenten emotionsbewusst: Er erkennt den Tonfall des Benutzers anhand seiner Stimme — Frustration, Begeisterung, Zögern — und passt seine eigene Ausdrucksweise daran an. Ein frustrierter Kunde hört einen ruhigeren, bedachteren Agenten; ein glücklicher Kunde hört Wärme zurück. Das ist der Unterschied zwischen einem Skript und einem Gespräch.
Aktivierung
Ein Aufruf des Builders für RealtimeConfig:
let config = RealtimeConfig::default()
.with_instruction("You are a warm, empathetic support agent.")
.with_voice("Kore")
.with_audio_only()
.with_vad(VadConfig::server_vad())
.with_transcription()
.with_affective_dialog(true); // ← emotion-aware responses
Anforderungen (bitte lesen)
Affektiver Dialog ist eine Funktion nur für Gemini mit zwei zwingenden Anforderungen:
- Ein Native-Audio-Modell. Es wird von
gemini-3.1-flash-live-previewnicht unterstützt. Verwenden Sie ein Native-Audio-Modell wiemodels/gemini-live-2.5-flash-native-audio. - Der Endpunkt
v1alpha.GeminiLiveBackend::studio(...)der Crate verbindet sich bereits überv1alpha, daher wird dies für Sie erledigt.
Wenn Sie with_affective_dialog(true) für ein Modell festlegen, das dies nicht unterstützt, wird die Gemini-Konfiguration mit „Unknown name enableAffectiveDialog“ abgelehnt und die Sitzung beendet. Wechseln Sie daher beim Aktivieren die Modellkonfiguration:
let (default_model, voice) = if affective {
("models/gemini-live-2.5-flash-native-audio", "Kore")
} else {
("models/gemini-3.1-flash-live-preview", "Kore")
};
Bei OpenAI (und bei nicht nativen Gemini-Modellen) ist with_affective_dialog(true) ein No-op — harmlos und wird einfach ignoriert — daher kann es sicher bedingungslos festgelegt werden, sodass der Anbieter die Entscheidung trifft.
Der Kompromiss
Native-Audio-Modelle bieten die natürlichste, ausdrucksstärkste Stimme und die Affektanpassung, rufen Tools jedoch weniger zuverlässig auf als das Half-Cascade-Modell. Es handelt sich also um eine echte Entscheidung:
- Tool-lastiger Agent (Rückerstattungen, Abfragen, Aktionen) → Half-Cascade (
gemini-3.1-flash-live-preview), kein affektiver Dialog. - Empathieorientierter Agent (Deeskalation im Support, Begleitung, Coaching) → Native Audio + affektiver Dialog.
Das Beispiel customer_service macht dies genau aus diesem Grund optional: CS_AFFECTIVE=1 wechselt Gemini zum Native-Audio-Modell und aktiviert das Flag; andernfalls bleibt das Tool-zuverlässige Modell erhalten.
Unter der Haube
with_affective_dialog(true) setzt RealtimeConfig.affective_dialog, und die
Gemini-Einrichtung gibt enableAffectiveDialog: true innerhalb von generationConfig
aus (nicht auf der obersten Einrichtungsebene – der v1alpha-Endpunkt weist es
dort zurück). Das musst du für die Verwendung nicht wissen, aber deshalb sind
die Anforderungen an Modell und Endpunkt strikt.
Empathie ohne die Markierung. Selbst bei OpenAI oder dem Halb-Cascade-Modell erzeugt eine gut formulierte Anweisung („Beachte den emotionalen Zustand des Benutzers und erkenne ihn aufrichtig an“) ein deutlich einfühlsames Verhalten. Affektiver Dialog fügt bei Gemini native-audio zusätzlich echte akustische Tonfallanpassung hinzu.
Als Nächstes: Erinnerung →