.env file works with
node --env-file=.env). Numeric variables fail loudly at startup if set to a non-number, so a typo
stops the process with a clear message rather than silently misbehaving - the same goes for a
non-deepgram.com host, a malformed VISION_API_URL, or a non-https think endpoint.
Required
The agent
There is no dashboard - these variables define the agent:BYO-LLM endpoint
Deepgram-managedopen_ai and anthropic work with just a model name. Third-party providers
require an endpoint that Deepgram dials itself:
Common options
Vision (the look tool)
The look tool is registered automatically. The Voice Agent API is audio-only, so the bridge
answers it via your endpoint:
Custom tools
Function tools your own code executes (lookup_order, transfer_call, …) are registered
programmatically and run in-process, inside your trust boundary - see
Extending the agent’s tools
and the example.
Region and residency
Advanced
HMAC_FRESHNESS_MS (default 60000), MAX_CONNECTIONS (64), MAX_CONNECTIONS_PER_IP (= total cap),
PRE_START_TIMEOUT_MS (10000), WORKER_IDLE_TIMEOUT_MS (90000), TLS_CERT_PATH / TLS_KEY_PATH
(native wss://), LOG_LEVEL (info), and LOG_TRANSCRIPTS (false; still gated on Teams
recording being active). The bridge also exposes GET /metrics (Prometheus text, including a
call-duration histogram). Full reference:
configuration-reference.
Privacy
Caller audio, transcripts, and any vision descriptions transit Deepgram’s cloud (and the configured think provider) per your Deepgram data settings. KeepLOG_TRANSCRIPTS off and vision unconfigured
if not needed, use the regional hosts for in-region residency, and disclose the AI on the call via
DEEPGRAM_GREETING. See
Governors and privacy.