Skip to main content
AICO ships with cloud and self-hosted speech and language providers. Cloud providers are part of the platform catalog; self-hosted providers are published dynamically by the inference services actually deployed with your instance — so the local catalog always reflects what your deployment can really run.

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 as local-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 as local-tts-<model>:

Voices

Cloning-capable engines synthesize with a voice_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 as local-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 a validation field so the UI can flag misconfigured providers without failing the request.