Providers
A provider is the connection between Delphi and an AI vendor (OpenAI, Azure, Pythia, TOBi, …). Every voice agent ultimately calls a provider to do speech-to-text, generate a response, and synthesise speech.
There is no top-level /providers sidebar entry outside this section. Providers are configured inside the Flow Designer — on the flow's default provider (Flow Settings) or as a per-node override on a voice agent. This page is the section overview; for editing, open the Flow Designer.
Saved provider references are no longer supported. Flows that still contain { ref: "<provider-id>" } must be converted to inline provider configuration before the patch migration drops saved provider records.
Two pipeline modes
Each flow picks one of two pipeline modes for its default provider:
| Mode | What it does |
|---|---|
| Realtime | One provider runs STT, LLM, and TTS in a single bidirectional connection (lowest latency; e.g. OpenAI Realtime, Azure Realtime). |
| Pipeline | Separate STT + LLM + TTS providers chained together (more flexibility; e.g. Azure STT → OpenAI Chat → Azure TTS). |
A voice-agent node can override the flow default with its own inline provider configuration. There is no separate saved-provider record at runtime.
Custom endpoints
Modular STT and TTS providers, and most Realtime providers, accept custom base URLs — including hostnames and IP addresses. Use this for private-network speech services, mock servers, and non-default Azure Speech deployments.
See Custom STT/TTS endpoints for IP vs DNS, path defaults, Squid/proxy behaviour, and troubleshooting.
Speech playback and hangup
Pipeline flows queue TTS output and coordinate hangup with wait for silence and delay bot disconnect. Realtime flows stream vendor audio but use the same hangup timing on the call leg. See Speech playback and hangup — the shared reference for multi-message playback, TOBi queueing, and managed hangup settings.
Provider reference
The catalogue below depends on feature flags. Per-vendor field lists and endpoint settings are on each reference page.
| Provider | Modes | Reference |
|---|---|---|
| OpenAI | Realtime, Chat (LLM), TTS | OpenAI |
| Azure | Realtime, STT, TTS | Azure |
| Gemini Live | Realtime | Gemini Live |
| Inworld | STT, TTS | Inworld |
| Grok (xAI) | Realtime | Grok |
| Pythia | Realtime | Pythia |
| TOBi (managed LLM) | Managed LLM (pipeline) | TOBi managed LLM |
Audio preprocessing
For voice flows the provider config also picks the noise-reduction profile applied to inbound audio (legacy per-provider VAD fields were removed in favour of this).
Teams on Starter or Business Small plans cannot enable audio preprocessing on new or published flow versions.
Resilience settings
Provider settings can define timeout and retry behavior per role (STT, TTS, realtime, or bot/LLM). The effective policy merges platform defaults, optional team overrides, and flow-level provider settings.
See Platform settings → Resilience defaults and Inspectors → Provider config editor.
Credentials
Provider credentials (API keys, deployment names) are not stored on the flow. They live as team variables and secrets, referenced by name inside the provider config (for example {{team.azureDefaultKey}}). Flow JSON stays portable across environments.
Where to edit
Open the Flow Designer for an app and:
- Click the Default Provider chip (or the Start node) to edit the flow-default provider.
- Click any voice agent node and use its Provider override tab.
See Inspectors → Provider config editor.
See also
- Speech playback and hangup
- Custom STT/TTS endpoints
- Flow Designer
- Endpoints (concept)
- Team variables
- Voice operations — proxy env vars for outbound speech traffic
- Squid proxy — private-network egress