Workspace live build, test, and monitor agents →
The all-in-one S2S router + Supervisor harness

One S2S router. A Supervisor on top.

Build voice agents with Ultravox, OpenAI, Gemini, Grok, or Smallest AI Hydra. Choose the speaking model, add Supervisor coaching, and keep one workflow for stages, tools, knowledge, and calls.

One Supafone API key for managed speech and supervision. Or bring your own keys for either.

One agent. Five possibilities.

Ultravox

Your default managed runtime

Start with the familiar Supafone agent and the shared Agent Factory workflow. Keep Ultravox’s external TTS and compatible voice profiles.

SAME INTERFACEnew UltravoxS2S(client)
Explore the options here. Apply your choice in Agent Factory for the next call.
Meet the shared S2S interface
Start with one Supafone API key. Managed speaking model + Supervisor Choose a supported speaking model and enable managed coaching. Supafone uses its configured provider keys on the server; you authenticate with your Supafone key.
Or bring your own model keys. Choose the voice and coach independently Connect a workspace key for the speaking provider and a separate key for your agent’s Supervisor. Mix managed and BYOK. Provider keys stay on the server.
S2S · Speech to speech

Choose the voice.
Keep the agent around it.

Think “one API, many models” for live conversation. Speech-to-speech (S2S) takes caller audio in and returns spoken audio. Supafone gives you one place to choose the supported model and build the agent around it.

The S2S router connects your chosen speaking model. The Supervisor harness observes the call and returns quiet guidance. Agent Factory supplies the stages, tools, knowledge, and team. Use the same SupafoneS2S interface in Python or TypeScript.

  • Change the voice model. Keep the workflow. Apply a model for future calls, or opt into bounded native model handoffs from your exact allowlist.
  • Pick the keys for each job. Use Supafone-managed credentials or BYOK independently for the speaking model and Supervisor. See Supervisor options.
  • Choose how callers connect. Browser preview, an embedded voice widget, a managed number, or your supported phone provider.
Explore the S2S interface
Your applicationPython or TypeScript
Supafone S2SOne interface · one saved agent
create · apply · preview
Ultravox
OpenAI
Gemini
Grok
Hydra

Five provider families, one saved workflow. You choose from the supported catalog. Saved model changes apply to future calls; configured native handoffs open a new provider session and keep call state. Access and voices depend on the provider.

Supervision and teamwork built around the call. Supervisor coaches the speaking model. Manager assigns specialists and proposes next steps. Explore the shared workflow ↓

Choose the model. Keep the agent.

Keep the stages, tools, and specialist team when you change the speaking model. Enable Supervisor coaching alongside it, or use standalone adapters with supported existing stacks.

Inside Agent Factory

A clear path through every call.

Build a plan with 3–8 stages across every hosted speaking model. Set the facts and successful tool results each step needs. Supafone checks those requirements before moving on.

Start with understanding.

Collect the required details and save them as structured facts. A stage can require those fields before the call moves forward.

Required name + request → saved facts
How call stages work
SUPAFONE / CALL FLOW01 → 02 → 03
A three-stage example inside Agent FactoryAn illustrated call flow connecting intake, booking, and confirmation. The selected stage is highlighted. 01 / INTAKE 02 / BOOKING 03 / CONFIRM CALLERNEXT STEP
The team behind the conversation

Manager coordinates.
Specialists think. Your agent speaks.

Manager coordinates the work: choose an allowed specialist or propose the next stage. Specialists reason privately; Supafone checks each proposal against your saved plan. Supervisor remains the conversation coach.

Supafone ManagerState → reasoning → bounded proposal
Coordinate
IntakeUnderstand the request
BookingCheck the next step
ConfirmationReview what succeeded
Shared call runtimeChecks the specialist’s allowed stages
Role allowed
Your speaking model
UltravoxOpenAIGeminiGrokHydra
IntakeBookingConfirmation
Illustrated booking example · no live call

Bring in the right specialist.

Manager asks the configured booking specialist to review the caller’s request. The specialist reasons privately; your chosen S2S model keeps the voice.

Server evidence

Current stage: booking. Booking specialist is enabled for this stage.

A specialist’s advice is a proposal. It cannot run arbitrary tools or change the call plan.

Bound the work Per-call task budget · parallel-task limit · timeoutKeep authority on the server Saved facts · successful tool receipts · allowed transitions
Explore Manager and the shared workflow
The layer above the voice

Your model speaks. Supervisor guides.

Supervisor watches available call evidence and offers quiet guidance while the selected model speaks. Explore the same coaching loop across all five hosted families.

Supafone SupervisorObserve · reason · guide
COACH
Call context ↑
Silent guidance ↓
UltravoxThe speaking model
Caller ↔ voice agent
Managed guidance

The default managed Ultravox agent can receive deferred Supervisor guidance during a call.

ILLUSTRATED BOOKING EXAMPLE

Supervisor seesThe caller chose a time. The booking tool is still running.

Guidance to the voice agent“Wait for the booking result before confirming the appointment.”

Supported across all five hosted speaking families. Enable Supervisor and configure its credentials separately from the speaking model. Native guidance is delivered on a tool request, without forcing an interruption.

View the support matrix
One agent, connected layersThree floating layers represent your saved agent, the Supafone S2S runtime, and the selected browser or phone connection. YOUR SAVED AGENT SUPAFONE S2S BROWSER PREVIEW

Same agent. Same model interface. Your connection.

One voice stack

From the browser
to the phone.

Start with a preview. Connect a managed number or your own carrier when you’re ready.

Preview your saved agent, then embed a native voice widget on your site. The server keeps provider credentials private and carries conversation context into the call.

Explore browser calls
Five supported speaking-provider families

Five model families. One agent. Your phone provider.

Choose the supported model and voice that fit the job. Every family connects to Agent Factory’s shared stages, tools, Manager, specialists, and Supervisor. Ultravox is the default; OpenAI, Gemini, Grok, and Hydra use their native browser and phone paths.

UltravoxThe default managed runtime, with shared workflow controls plus its existing external TTS and compatible voice profiles.
OpenAIgpt-realtime-2.1 or gpt-live-1 with marin.
Googlegemini-3.1-flash-live-preview with Puck.
xAIgrok-voice-latest with eve.
Smallest AI Hydrahydra-v1.0 with sterling, or hydra-v1.1 with maya.
Phone transportsSupafone-managed, Twilio, Telnyx, Plivo, and SIP.

The shared foundation

Configured stages, required facts, tool receipts, Manager, specialists, and Supervisor. Add native web widgets and optional recording. Carrier controls follow the configured phone connection.

Deliberate native handoffs

Allow exact models and voices, with at most three handoffs per call. Opt into one provider-connection recovery. Each handoff opens a new provider session while keeping the same facts and stage.

Know each model’s edges

External TTS remains Ultravox-only, and Ultravox is outside native handoffs. Hydra is English-only with no native transcripts. Native voicemail detection is not supported.

Agent Factory · everything around the conversation

Build the whole agent.
Keep your choice of voice model.

Give your agent a job, ground it in your knowledge, and connect the tools that get work done. Add stages, a Manager, specialists, and Supervisor coaching, then test in the browser or connect a phone number.

Agent FactoryDescribe the job, then edit the prompt, stages, tools, voice, and safeguards in the builder or SDK.
Phone + browser widgetsRun inbound, outbound, browser previews, and embedded voice widgets through one saved agent.
Managed numbersSearch, buy, assign, and release numbers without building a carrier control plane.
Grounded knowledgeAttach approved websites and documents. Give the agent a private knowledge corpus to search for grounded answers.
Manager + specialistsAsk a separate reasoning agent to coordinate configured specialists. Bound tasks, concurrency, and timeouts per call.
Call evidenceInspect saved facts and tool outcomes. Opt into native audio recording and post-call Deepgram transcription with a configured platform key. Hydra has no native transcript stream.
Supafone SupervisorAn independent coach for all five hosted S2S providers and compatible existing stacks. Native models receive guidance through tools.
Managed or BYOKChoose credentials independently for speech and Supervisor reasoning. A workspace speaking key takes priority; explicitly switch back to managed when ready.
Voice catalogChoose each native model’s supported voices. Ultravox also supports the external TTS catalog and compatible voice profiles.
Multi-stage flowsUse 3–8 configured stages across hosted models. Require captured fields and successful tool results before an allowed transition.
Carrier controlsUse bounded DTMF, media pauses, and configured human transfer destinations through the supported carrier path.
Language routingKeep Ultravox’s compatible voice profiles. Native routing selects an exact allowed model and voice in a new provider session; Hydra is English-only.
TypeScript
import { Supafone, HydraS2S, OpenAIS2S } from "supafone-labs"; const supafone = new Supafone({ apiKey: process.env.SUPAFONE_API_KEY! }); const hydra = new HydraS2S(supafone, { model: "hydra-v1.1", voice: "maya" }); await hydra.create({ agentKey: "northline-intake", name: "Northline intake", description: "Understand the request and book the next step.", supervisor: true, }); // Same agent. New speaking model for the next call. const openai = new OpenAIS2S(supafone, { model: "gpt-realtime-2.1", voice: "marin" }); await openai.apply("northline-intake"); const preview = await openai.testCall("northline-intake");
Supafone Supervisor · the supervision layer

One model speaks.
Supervisor helps it stay on task.

Give the speaking agent a separate coach. Supervisor checks available transcripts, stage progress, and tool results, then proposes guidance within your rules. Choose managed supervision or your own supported reasoning provider independently of the speaking model.

Supafone SupervisorObjective · evidence · guardrails
Supervision
Call events & tool results ↑ Silent guidance ↓
Your selected voice agentKeeps its speaking model, tools, and carrier
Live conversation with the caller

Example guidance “Confirm the booking only after the scheduling tool succeeds.”

Observe across turns

Follow the caller’s intent and the agent’s progress. Compare what the agent says with what its tools actually returned.

Guide within your rules

Send a short directive through the adapter’s supported control channel. Configure evidence thresholds, output limits, and operator guardrails.

Review and improve

Use available call evidence for scoring and QA, then improve the standing directive for future conversations.

Same coach, supported delivery paths. Enable Supervisor across all five hosted families with configured managed or BYOK credentials. Native models request guidance through check_guidance; Ultravox uses deferred delivery. Hydra supplies labeled model-reported context because it has no native transcript stream. Standalone SDK adapters have their own capability matrix.

Pricing

Free to start. Minutes, not seats.

Open source

$0 forever
  • SDK, adapters, and examples under MIT
  • Bring your own AI keys
GitHub

Cloud

$0.10/min 5 minutes free, then $40 per 400-minute reload
  • One Supafone API key for configured managed models, Supervisor, and telephony
  • Shared Agent Factory workflow and optional Supervisor coaching across five speaking families
  • Standard managed stack rate; native S2S features and provider usage have separate boundaries. See billing details.
Get an API key in console
Powered by Supafone Labs