Diálogo afetivo
O diálogo afetivo torna o agente consciente das emoções: ele capta o tom do usuário pela voz — frustração, entusiasmo, hesitação — e adapta sua própria forma de falar para corresponder. Um cliente frustrado ouve um agente mais calmo e cuidadoso; um cliente feliz ouve cordialidade de volta. É a diferença entre um roteiro e uma conversa.
Ativando-o
Uma chamada do builder em 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
Requisitos (leia isto)
O diálogo afetivo é um recurso exclusivo do Gemini, com dois requisitos obrigatórios:
- Um modelo de áudio nativo. Ele não é compatível com o
gemini-3.1-flash-live-previewde meia cascata. Use um modelo de áudio nativo, comomodels/gemini-live-2.5-flash-native-audio. - O endpoint
v1alpha. OGeminiLiveBackend::studio(...)do crate já se conecta porv1alpha, então isso é tratado automaticamente.
Se você definir with_affective_dialog(true) em um modelo que não oferece suporte a esse recurso, a
configuração do Gemini será rejeitada com "Unknown name enableAffectiveDialog" e a
sessão será encerrada. Portanto, troque o modelo ao ativá-lo:
let (default_model, voice) = if affective {
("models/gemini-live-2.5-flash-native-audio", "Kore")
} else {
("models/gemini-3.1-flash-live-preview", "Kore")
};
Em OpenAI (e em modelos Gemini não nativos), with_affective_dialog(true) é uma
no-op — inofensiva, simplesmente ignorada — portanto é seguro defini-la
incondicionalmente e deixar o provedor decidir.
A compensação
Os modelos de áudio nativo oferecem a voz mais natural e expressiva, além da adaptação afetiva, mas chamam ferramentas com menos confiabilidade do que o modelo de meia cascata. Portanto, é uma escolha real:
- Agente com uso intenso de ferramentas (reembolsos, consultas, ações) →
meia cascata (
gemini-3.1-flash-live-preview), sem diálogo afetivo. - Agente que prioriza a empatia (desescalada no suporte, companhia, orientação) → áudio nativo + diálogo afetivo.
O exemplo customer_service faz com que isso seja opcional
exatamente por esse motivo: CS_AFFECTIVE=1 troca o Gemini para o modelo de áudio nativo
e ativa a flag; caso contrário, mantém o modelo mais confiável para ferramentas.
Por baixo dos panos
with_affective_dialog(true) define RealtimeConfig.affective_dialog, e a configuração do Gemini emite enableAffectiveDialog: true dentro de generationConfig
(não no nível superior da configuração — o endpoint v1alpha a rejeita nesse local). Você não
precisa saber disso para usá-lo, mas é por isso que os requisitos de modelo + endpoint são
rigorosos.
Empatia sem o sinalizador. Mesmo em OpenAI ou no modelo de meio-cascata, uma instrução bem escrita ("perceba o estado emocional do usuário e reconheça-o sinceramente") produz um comportamento significativamente empático. O diálogo afetivo adiciona uma correspondência de tom verdadeiramente acústica a isso, no áudio nativo do Gemini.
Próximo: Memória →