Build → Agents
AI voice agents that answer like they work for you.
Configure the prompt, voice, model, tools, and knowledge from a dashboard, not a deploy. The database is the single source of truth, fetched fresh on every call, and every edit leaves a revision you can restore.
- Configured in a dashboard, not a deploy
- One-click restore to any revision
- Squads hand off without losing the thread
- Tested in text before it takes a call
- Greeting starts, cached
- ~30ms
- First real reply, after the warm-cache ping
- 4.5s → 1.5–2.5s
- Prompt-cache hit ratio, steady state
- 0.98–0.99
Measured in production for a single flagship operator. Your first-call time depends on prompt length and provider.
Agent configuration
- Core
Identity, prompt, LLM
- Voice
Voice, language, STT
- Capabilities
Tools, MCP, transfer
- Tuning
Timing, audio
- Channel
Email, chat config
Live call trace
- STT chunk arrivesstreaming
Deepgram, nova-3:multi
- LLM calls a toolcache warm
check_availability()
- TTS starts speakingchunk queued
ElevenLabs, eleven_turbo_v2_5
Fetched fresh from the database on every call. Edit a group in the dashboard and the next ring uses it. No redeploy.
Config to call
Save it in the dashboard. The next caller hears it, live.
Every agent pulls its own configuration from the database at the start of the call. Nothing is baked into a deployed build, so nothing about your agent is stuck waiting on an engineering sprint.

He is already on one call. The next one goes to voicemail.
On the call
Talk to it like a person. It keeps up.
A voice that sounds good is the easy part. These are the mechanisms working under every call, not settings you have to go find.
It knows the difference between you and the TV.
A real interruption has to clear a few checks first. Is this a voice. Is it long enough. Is it not background chatter. Only then does the agent stop talking and listen, so a television or a radio in the room will not cut it off mid-sentence.
It waits while you read out the numbers.
A purpose-built model tracks whether you are actually still speaking, not just whether you paused. It waits through a full account number, phone number, or card number, digit by digit, then replies the instant you are done. No mid-number cut-ins, no rushed guesses.
It talks while it works, in your language.
Before it runs a lookup, the agent says something natural first, in the caller's own language. A lookup never sounds like the line went quiet. No dead air while it checks an order or an account.
It briefs the human before it hands off.
On a warm transfer, the caller goes on hold while the agent briefs the person picking up. Then it either connects the call or comes back to the caller with an answer. Never a blind handoff.
See how transfers workIt cleans up the line before it starts listening.
Real-time speech enhancement and speaker isolation strip background noise and crosstalk out of the audio first. The agent hears the caller, not the room they are calling from.
- Shipped
It finishes the sentence before it acts.
A transfer or a hangup waits behind the agent's own last sentence. It says goodbye, or finishes briefing the human, before the action fires. No caller is cut off mid-sentence.
The agent isn't just a talker. It's an operator on the line.
- end_call
- warm_transfer
- cold_transfer
- hold / resume
- transfer_to_agent
- book_meeting
- crm.write
- + your tools
Every one of these is a tool call the agent can decide to make mid-call, logged like anything else it does.
Build
Four ways the agent stays yours after launch
Most voice bots ship once and calcify. Here, you ship an agent the way you ship code: branch a draft, diff it against production, canary it on a slice of calls, then merge it in.
The dashboard is the source of truth
Prompt, voice, model, tools, and knowledge live in the database, not in a deployed build. An agent fetches its own configuration at the start of every call, so a change you make now is live on the next ring, not the next release.
- No redeploy for a prompt, voice, or model change
- The same configuration path for voice, chat, and email
- Five section groups: Core, Voice, Capabilities, Tuning, Channel
Agent editor
- CoreIdentity, prompt, LLM
- VoiceVoice, language, STT
- CapabilitiesTools, MCP, transfer
- TuningTiming, audio
- ChannelEmail, chat config
Fetched by the agent process at the start of every call. Nothing here waits on a build.
Branch a draft, diff it, then merge it in
Every edit leaves a revision you can restore in one click, and compare shows a field-level diff between any two agents. Roll a new version out to a slice of live calls first, a canary, before it takes every call. If it is not right, roll back in one click.
- Full agent revision history, one-click restore
- Prompt version history: manual, AI-suggested, or reverted
- A field-level compare (diff) between any two agents
- Canary a new version on a slice of live traffic before it takes every call
Revision history
Restored to Rev 12 in one click. A canary rolls back the same way.
Product interface · sample data
One caller, more than one specialist
A squad hands a caller from one configured agent to another inside the same room, general line to billing, sales to support, and carries the transcript along. The caller never repeats the story to a second bot.
- Handoff can be silent or announced to the caller
- The full transcript is preserved across the handoff
- Each specialist keeps its own prompt, voice, and tools
Squad handoff
Transcript carried over. The billing agent opens already knowing what the caller asked for.
Test it in a live playground. Then listen in for real.
An AI prompt builder can audit a prompt and suggest edits before you save. A live text playground runs the same agent as a real conversation, with every tool call it makes visible, so you see what it would have done before a caller does. Once it is live, a supervisor can listen in on a real call without interrupting it.
- AI-assisted prompt audit and suggestions
- A live text playground with full tool-call visibility, before a caller hears it
- Export a test run to JSON or CSV
- Supervisor listen-in on any live call
Live text playground
Tester: Can I move Thursday's pickup?
Agent: Let me check that slot for you.
Every tool call is visible before a caller ever hears the change. Once it is live, a supervisor can drop in on any call the same way.
Providers
Choose the models and voices, not the other way around
Speech-to-text, the language model, and text-to-speech are each a setting, not a lock-in. Swap a provider without migrating the agent.
Speech to text
- Deepgram (default, nova-3)
- OpenAI Whisper
- Cartesia
Language model
- OpenAI (default)
- Anthropic
- OpenRouter
A model-agnostic architecture. OpenAI carries the full production feature set today; Anthropic, Google, and OpenRouter are supported alongside it.
Text to speech
- ElevenLabs
- Cartesia
- FishAudio
Bring your own provider keys. Each one is encrypted per organization and validated with a live ping before it goes into service.
Measured, not modeled
86%
Interruption-detection precision, measured against real call audio, not a benchmark set.
- 11
- Named latency optimizations between a caller's last word and the reply
- 2
- Languages live today, English and Spanish, on a stack built for more
Every number here is a query we can rerun, not an estimate we are hoping holds up.
Questions
What teams ask before they change an agent
Still have questions?
Bring a prompt you are not happy with. We will show you the revision it leaves.
Book a demo
Configure it once. Watch it answer.
Bring your own prompt or start from a template. We will set up an agent with your voice and your knowledge, live, and show you the revision it leaves behind.
- No redeploy to change a word
- Restore any revision in one click
- Test in text before it takes a call