Skip to main content
Agents is the product for building, testing and running voice agents. Omni is its realtime runtime. Use the visual builder, the API, or both to manage the same saved agent. The builder remains Live Beta; features, limits and production behavior may change during beta.

Build in the console

Describe the job, choose a voice, add knowledge and test your agent.

Build with the API

Create a saved profile with POST /v1/agents, then connect to /v1/omni.
Sandbox keys never bill. Live calls require available credit, and managed telephony is metered separately. See Pricing and metering for the current runtime and managed Agents rates.

Console workflow

1

Open the Agent builder

Go to Launch an Agent. Sign up or sign in. The path is preserved through authentication.
2

Describe the job

Choose a template or start blank. Set the agent’s persona, greeting, language, voice, and the rules it must follow.
3

Connect knowledge and tools

Add the information the agent should answer from. Bind tools when the agent needs to look up data or take an action. Keep sensitive credentials in server-side tool configuration.
4

Test before going live

Run the browser greeting test. Confirm that the opening line, voice, and first response match your instructions. Confirm consent behavior when recording is enabled. Browser tests have no phone leg and cannot prove transfer, DTMF, hold, collect, or hangup behavior.
5

Put it on your website

Open Website & phone. The wizard drafts a Call Now snippet and publishes it when you added a public site URL (localhost is always included so you can preview). Add any remaining origins, publish if needed, and paste the script tag. Guide: Add your Agent to a website.
6

Connect a phone number

Assign an available managed number or connect a supported carrier route. Availability and regulatory onboarding vary by country. Live calls consume Agents usage at 0.08/minplusmanagedtelephonyat0.08/min plus managed telephony at 0.01/min when PyAI carries the phone leg.
Managed call-control execution is not available yet. An Agent can decide to emit transfer_to_human, send_dtmf, play_hold, collect, or end_call, but those carrier actions work today only when your own Twilio, FreeSWITCH, or SIP transport handles the corresponding Omni control frame. Do not enable a call-control tool on a managed number until the console marks managed execution available for that tool.

Move between the console and API

The Agents workspace has Your agents, Realtime playground and Build with API. A saved agent’s API integration tab provides read, update and realtime connection examples for that agent. You can share the editor URL, including its selected tab, with a teammate who has access to the same organization and project. Use a key from your console project when creating an agent through the API. The profile then appears under Your agents in that project. Edits through either interface update the same profile; new sessions load the latest saved configuration. Inline configure fields can override saved settings for one call. For direct application connections, use wss://api.pyai.com/v1/omni?format=pcm16&rate=24000&session_label=<agent_id>. Saved profiles remain optional: omit session_label and send inline configuration when you want to manage each session entirely in code. Existing Omni clients keep their current endpoint, scope and wire protocol.

Need implementation help?

Talk to AtomsAI, our AI services business, for white-glove setup, bespoke integrations and ongoing agent improvement. Services are optional, scoped and quoted separately from PyAI usage.

Next steps

Website widget

Publish a Call Now button with one script tag.

Create agents via API

The same profile, from code.

Knowledge bases

Hosted files, URLs, and pasted text.

Omni tools

Hosted, server, or client tools.