Provider resolution
Each flow selects its STT, TTS, and LLM provider. Configuration for the selected provider merges three layers: Config precedence: flow > organization > provider defaults. The organization supplies credentials and shared defaults; the flow picks the provider and tunes it per use case. Required secrets are validated at flow trigger; missing keys raise HTTP 412 before the agent worker starts — preventing opaque mid-call SDK errors.STT providers
Cloud
Self-hosted
Self-hosted models appear aslocal-stt-<model> providers, published
by the deployed STT service. The current engine catalog:
Which models are available depends on the deployment: each instance
enables the models its hardware supports (CPU, CUDA, or ROCm builds).
TTS providers
Cloud
Self-hosted
Published aslocal-tts-<model>:
Voices
Cloning-capable engines synthesize with avoice_id referencing a
reference recording provisioned on the instance. The voice library is
managed at the deployment level by the operator — treat cloned voices
as operator-managed assets, not per-flow uploads. Preset engines
expose their built-in voices directly in the flow config.
LLM providers
Cloud
openai, anthropic, google, groq, azure-openai, cerebras,
deepinfra, fireworks, qwen (Alibaba Cloud), ollama (bring
your own Ollama endpoint), and cli-proxy (vendor CLIs exposed as an
OpenAI-shaped proxy). Model catalogs per provider are maintained in
the platform and selectable per flow.
Self-hosted
The LLM inference plane runs vLLM with a per-model catalog, published aslocal-llm-<model>. Current catalog includes
Ling-2.6-flash (full, FP8, and INT4 quantizations), Gemma 3
(27B / 12B / 4B), Qwen3 (30B-A3B, 8B), GPT-OSS-20B, and Llama-4
Scout. All local models speak the OpenAI-compatible chat API with
streaming and tool calling.
Conversation tuning (voice)
Two layers of tuning govern voice turn-taking:Flow-level voice settings
Per-flow controls for the live voice pipeline, all optional with sensible defaults:- Turn detection — semantic turn-detector threshold, minimum and maximum endpointing delay.
- Voice activity detection — activation threshold, minimum speech / silence durations, padding.
- Interruptions — allow/deny barge-in, minimum interruption duration and word count, false-interruption recovery.
- Behavior — preemptive response generation, user-away timeout, TTS streaming granularity (token or sentence).
Engine-level endpointing (self-hosted STT)
Streaming self-hosted STT engines (Whisper, Qwen3-ASR, Cohere) also emit finals via server-side silence detection:
Cloud STTs expose their own vendor equivalents.
Configuration tiers
Per-flow fields cover everything an organization admin tunes: language, voice, endpointing, temperature, style. Engine-internal settings (model paths, GPU device, backend selection) are operator-only and never appear in the per-flow UI — the API rejects them on per-flow calls regardless of caller role.Secrets handling
Fail-fast validation
At flow trigger every effective provider is validated against its required secrets. Missing keys raise HTTP 412 with a structured list of misconfigured providers — preventing opaque vendor 401s mid-call. Dashboard reads also receive avalidation field so the UI can flag
misconfigured providers without failing the request.