Creating Voice Agents
Voice agents enable real-time spoken interactions between users and AI agents. A typical voice interaction involves a telephony provider, Voice Gateway, voice models, and the agent runtime. At a high level:Core Components
| Component | Role |
|---|---|
| Telephony Provider | Establishes inbound or outbound calls and provides phone or SIP connectivity. |
| Voice Gateway | Connects telephony infrastructure with the agent and manages voice sessions and audio routing. |
| Voice Models | Process incoming speech and generate spoken responses. |
| Agent Runtime | Applies agent instructions, maintains context, accesses knowledge, and invokes tools or workflows. |
Voice Architectures
Agent Platform supports different voice processing architectures, including: Pipeline Voice — Processes speech through separate speech-to-text (STT), agent/LLM, and text-to-speech (TTS) stages.Steps to Enable Voice Interaction
Step 1: Configure Voice Service Credentials
Configure the credentials required by the voice models you plan to use.- Go to: Workspace Settings > AI Configuration > Voice Services
- Voice service credentials are managed at the workspace level and can be reused across projects.
- Configure credentials based on the voice architecture:
- For Realtime LLM Voice, configure credentials for a supported S2S provider, such as OpenAI Realtime, Google Gemini Live, or Grok Realtime.
- For Pipeline Voice, configure the required STT and TTS service credentials.
Step 2: Create a Voice Channel
Create a voice channel to make the agent available via voice.- Go to Deployments > Channels
- Under Voice, select one of the following:
- Realtime LLM Voice — For real-time conversations using S2S models.
- Pipeline Voice — For voice interactions, using separate STT, agent/LLM, and TTS stages.
- Other voice integrations, such as VXML IVR, Genesys Audio Connector, and AudioCodes, are also available. Learn more.
Configuring Realtime LLM Voice
When creating a Realtime LLM Voice channel, configure the channel, call routing, and S2S model settings. Learn More.- Provide the basic details.
- Display Name — Enter a name to identify the channel.
- Provider Verification Strength — Specify how strongly the platform trusts identity assertions received from the channel or provider.
- Select the Voice Provider used to connect the voice channel with the agent. The Voice Gateway manages the voice session and routes audio between the call connection and the configured voice processing path. Default Voice Provider: Kore.ai Voice Gateway.
- Configure Call Routing. Choose how calls reach the voice agent. You can enable one or both of the following routes.
- Soft Phone — Enable Soft Phone to call the agent directly from the browser. Select Launch dialer to start a test call.
- Phone Number (DID) — Enable Phone Number (DID) to connect a real phone number to the voice agent. Select the telephony provider and configure the phone number. For example, when using Twilio, you can purchase and assign a phone number to the channel.
- Configure the supported call directions: Inbound calls route calls received on the configured number to the voice agent, and Outbound calls allow the configured number to be used for campaign dialout.
- Select the S2S Provider that processes the voice interaction. Configure provider-specific settings. Supported providers include:
- Google Gemini Live (S2S)
- Grok Realtime (S2S)
- OpenAI Realtime
Configuring Pipeline Voice
Create a Pipeline Voice channel when you want speech processing to use separate stages:- STT service to convert incoming speech to text.
- Agent/LLM processing to interpret the request and generate a response.
- TTS service to convert the generated response into speech.
Step 3: Test the Voice Agent
Before using a production phone number, test the end-to-end voice interaction with the built-in Soft Phone. For a Realtime LLM Voice channel:- Enable Soft Phone.
- Select Launch dialer.
- Start a call with the agent.
- Verify that the agent can receive speech and return audio responses.
- Verify tool execution and agent behavior via traces.
Agent Level Voice Configurations
By default,RESPOND: blocks in ABL work as-is; the runtime automatically strips markdown and passes clean text to TTS. The VOICE: block is optional and only needed when you want to override the default behavior for a specific step:
- SSML markup — prosody, pauses, emphasis, phonemes
- A different spoken version than the text — e.g.
RESPOND:has a formatted table but you want a short spoken summary - Voice-specific instructions for real-time providers (OpenAI Realtime / Gemini Live)
Agent-level voice defaults
Use aBEHAVIOR_PROFILE to set voice behavior defaults for the whole agent without changing every RESPOND: block.