Update Listen

Send a message to update the Listen configuration on the fly during a conversation.
Voice Agent

The UpdateListen message is a JSON message that updates the speech-to-text configuration of your existing Flux model during a conversation.

Purpose

The UpdateListen message allows you to change Listen parameters on the fly without restarting the session. You can adjust end-of-turn detection thresholds, keyterms, and language hints while continuing to use the same Flux model.

The payload uses the same shape as agent.listen in the Settings message — tunable fields live under listen.provider alongside the required provider identity.

The provider identity (type, version, model) is required and must match the current session. You cannot change the model (e.g., switch from flux-general-en to flux-general-multi) or version mid-session. Attempting to do so is rejected with a Warning (code UPDATE_LISTEN_UNSUPPORTED_FIELDS_CHANGED) and the session keeps its existing config.

Tunable Parameters

ParameterTypeDescription
listen.provider.eot_thresholdNumberConfidence threshold for end-of-turn detection. Valid range: 0.5 - 0.9.
listen.provider.eager_eot_thresholdNumberConfidence threshold for eager end-of-turn detection. Valid range: 0.3 - 0.9.
listen.provider.eot_timeout_msIntegerTime in milliseconds after speech to finish a turn regardless of EOT confidence.
listen.provider.keytermsArrayKeyterms to boost recognition for. Replaces the current keyterms list.
listen.provider.language_hintsArrayArray of BCP-47 language codes to bias toward. Only supported with flux-general-multi. See supported languages.

Partial Update Semantics

UpdateListen is a partial update — any tunable field you omit keeps its current value, with one exception:

language_hints is cleared (reset to empty) when omitted. Always re-send language_hints if you want to preserve language biasing.

Example Payloads

To send the UpdateListen message, send the following JSON message to the server:

JSON
1{
2 "type": "UpdateListen",
3 "listen": {
4 "provider": {
5 "type": "deepgram",
6 "version": "v2",
7 "model": "flux-general-multi",
8 "eot_threshold": 0.8,
9 "eager_eot_threshold": 0.5,
10 "eot_timeout_ms": 3000,
11 "keyterms": ["Deepgram", "speech-to-text"],
12 "language_hints": ["en", "es"]
13 }
14 }
15}

Upon receiving the UpdateListen message, the server applies the changes and returns a ListenUpdated message.

JSON
1{
2 "type": "ListenUpdated"
3}