Correction: Browser Agent SDK has no client-side VAD
The Browser Agent SDK never shipped client-side Silero voice activity detection. Documentation published with the SDK described it as an available feature, and that documentation was wrong. The following did not exist in any released package:
- The
vadoption onMicrophoneOptionsin@deepgram/agents. - The
speechThresholdandsilenceThresholdVAD options. - The
speech-startandspeech-endevents onAgentMicrophone. - The
vadfield inWidgetConfigand the widget’s VAD configuration section. - The
@ricky0123/vad-webandonnxruntime-webpeer dependencies. Uninstall them if you added them for VAD.
MicrophoneOptions accepts sampleRate, echoCancellation, noiseSuppression, and autoGainControl. The microphone streams continuously while it is unmuted.
Barge-in works, and it is driven server-side. The Voice Agent API emits user-started-speaking, which you pair with player.interrupt() to stop playback:
@deepgram/react subscribes to that event and interrupts playback for you, so applications built on the provider and hooks need no change.
The Browser Agent pages now reflect the shipped API. See JavaScript SDK, Widget Embedding Guide, and React Hooks & Provider.
Correction: token minting uses ttl_seconds
The server-side token-minting example on the Browser Agent SDK overview posted {"ttl": 30} to POST /v1/auth/grant. The field is named ttl_seconds:
/v1/auth/grant accepts unrecognized fields, returns 200, and issues a token with the 30-second default, so a request built from the old example raised no error while ignoring the requested lifetime. If you copied that example and increased the number, your tokens expired after 30 seconds.
A 30-second token is enough for a full call. The token only has to be valid at the WebSocket handshake, and the connection stays open afterward. Minting a token requires an API key with Member permissions or higher. See Token-Based Authentication.