By Sagar Shankaran, Founder of CallSphere
PolyAI's Agent Studio is great for enterprise but pricing is bespoke and customization is gated. Build the same containment with the OpenAI Agents SDK in 400 lines.
Key takeaways
TL;DR — PolyAI's enterprise voice platform hits 80%+ containment but is closed-source and priced per seat plus per minute. The OpenAI Agents SDK (April 2026 release) ships realtime voice + multi-agent handoffs as a primitive — you can match the containment and own the IP.
A Python application using openai-agents[voice] that fields PSTN calls via Twilio, spawns a triage agent, hands off to specialist agents (billing, technical, retention), and persists every handoff to Postgres for analytics that mirror PolyAI's containment dashboard.
openai-agents[voice], twilio, asyncpg.flowchart TB
C[Caller] --> TW[Twilio]
TW --> BR[Bridge]
BR --> TR[Triage Agent]
TR -->|handoff| BIL[Billing Specialist]
TR -->|handoff| TEC[Tech Specialist]
TR -->|handoff| RET[Retention Specialist]
BIL --> CRM[(CRM API)]
TEC --> KB[(Knowledge Base)]
RET --> WIN[(Save Offers)]
```python from agents import Agent, Runner, RealtimeAgent, function_tool
billing = RealtimeAgent( name="billing", instructions=open("prompts/billing.md").read(), tools=[fetch_invoice, refund_charge], )
tech = RealtimeAgent( name="tech", instructions=open("prompts/tech.md").read(), tools=[run_diagnostic, file_ticket], )
retention = RealtimeAgent( name="retention", instructions=open("prompts/retention.md").read(), tools=[generate_offer], ) ```
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
```python triage = RealtimeAgent( name="triage", instructions="Greet, classify intent, hand off.", handoffs=[billing, tech, retention], ) ```
```python @function_tool async def fetch_invoice(account_id: str) -> dict: return await crm.get_invoice(account_id)
@function_tool async def refund_charge(account_id: str, amount_cents: int, reason: str) -> dict: if amount_cents > 50000: # guardrail return {"error": "amount over policy; escalate"} return await billing_api.refund(account_id, amount_cents, reason) ```
```python from agents.realtime import RealtimeRunner
async def serve(twilio_ws): runner = RealtimeRunner(starting_agent=triage) async with runner.run() as session: async def t2a(): async for msg in twilio_ws.iter_text(): ev = json.loads(msg) if ev["event"] == "media": await session.send_audio(base64.b64decode(ev["media"]["payload"])) async def a2t(): async for ev in session.events(): if ev.type == "audio_chunk": await twilio_ws.send_json({"event":"media", "media":{"payload": base64.b64encode(ev.audio).decode()}}) if ev.type == "handoff": await db.log_handoff(call_id, ev.from_agent, ev.to_agent) await asyncio.gather(t2a(), a2t()) ```
```sql SELECT date_trunc('day', started_at) AS day, count() FILTER (WHERE outcome = 'resolved') * 1.0 / count() AS containment FROM call_sessions GROUP BY 1 ORDER BY 1 DESC LIMIT 30; ```
Use the OpenAI Evals API to replay 200 calls per week, scoring each transcript on (a) correct intent, (b) correct specialist chosen, (c) successful tool execution, (d) no hallucinated balances. PolyAI hides this — you own it.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
Run the SDK stack on a sub-set of phone numbers for 4 weeks. PolyAI typically advertises 80%+ containment; aim to match within ±3 points before full migration.
CallSphere is built around exactly this pattern. 37 specialist agents handle 6 verticals: Healthcare (14 tools, OpenAI Realtime, FastAPI :8084 — HIPAA), OneRoof Property (10 specialists, WebRTC + Pion + NATS), Salon (4 agents, ElevenLabs, GB-YYYYMMDD-### refs). Triage agents always do classification → handoff, never long-form conversation. 90+ tools and 115+ DB tables back the network. /pricing · /compare/polyai.
Is the Agents SDK production-ready? Yes — April 2026 release added Realtime + handoffs as first-class.
What about non-OpenAI models? SDK is provider-agnostic for non-realtime; realtime voice currently OpenAI/Gemini only.
SOC2/HIPAA? OpenAI Enterprise has both; sign the BAA before HIPAA traffic.
Can I keep PolyAI's analytics? Replicate via Postgres + Metabase in 2 days.
Multi-language? Realtime supports 30+ languages out of the box.
Written by
Sagar Shankaran· Founder, CallSphere
Sagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
How we built a fault-tolerant HVAC emergency triage and tech-dispatch platform on Kubernetes — three-tier CQRS, 11 micro-agents on the OpenAI Agents SDK + LangGraph, NATS JetStream, DTMF/SMS/WebSocket acceptance, circuit breakers, and an evaluation pipeline that catches regressions before they wake a tech at 3 AM.
Deploy GPT-Realtime-2 on Azure AI Foundry. Region availability, networking, data residency, BAA, and the gotchas teams hit in the first 48 hours.
Haystack 2.7's Agent component plus an Ollama-served Llama 3.2 gives you tool-calling RAG with citations. Here's a complete pipeline against your own document store.
Run STT, LLM, and TTS entirely on Cloudflare's edge — no OpenAI, no ElevenLabs. Real working code with Whisper, Llama 3.3 70B, and Deepgram Aura.
How to stream tokens, tool-call deltas, and intermediate steps from an agent — with code for both the OpenAI Agents SDK and LangChain — and the gotchas that bite in production.
Handoffs done right — when one agent should hand control to another, how to preserve context, and how to evaluate the handoff decision itself.
© 2026 CallSphere LLC. All rights reserved.
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI