By Sagar Shankaran, Founder of CallSphere
Should the planning brain also call tools? Almost never. We separate orchestrator from tool-using workers, show why mixing the two is the #1 cause of unreadable traces, and how CallSphere enforces the split across 37 agents.
Key takeaways
TL;DR — Orchestrator agents route. Worker agents call tools. The moment your orchestrator starts calling
search()ordb.query(), your traces become unreadable and your routing accuracy drops. Keep the split clean.
Orchestrator — owns the conversation, routes to workers, has zero domain tools. Workers (tool-using agents) — each owns a narrow tool set and a tight system prompt; they don't decide whether to act, just how.
The split is the inverse of "agent-as-tool" thinking: instead of "any agent can be wrapped as a tool," we say "tools belong to one specialist worker, and orchestrators never touch them directly."
flowchart TD
USER[User] --> ORCH[Orchestrator: routing only]
ORCH -->|delegate| W1[Worker: search tools]
ORCH -->|delegate| W2[Worker: db tools]
ORCH -->|delegate| W3[Worker: payment tools]
W1 --> T1[(search API)]
W2 --> T2[(Postgres)]
W3 --> T3[(Stripe)]
W1 --> ORCH
W2 --> ORCH
W3 --> ORCH
ORCH --> USER
Across CallSphere's 37 agents · 90+ tools · 115+ DB tables · 6 verticals, the rule is enforced in code:
OneRoof = 10 specialists with Triage Aria → property/suburb/mortgage/viewing/agent matcher. UrackIT = 10 specialists + ChromaDB. After-hours = 7 with Primary→Secondary→6-fallback ladder. Pricing: Starter $149 · Growth $499 · Scale $1,499, 14-day trial, 22% affiliate.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
# Orchestrator: NO tools. Routing only.
orch = create_react_agent(
model="gpt-4o",
tools=[], # intentional
prompt="Route to: search_worker, db_worker, payment_worker. Never call tools yourself."
)
# Worker: narrow toolset + tight prompt
search_worker = create_react_agent(
model="gpt-4o-mini",
tools=[web_search, scrape_url],
prompt="You only do web search. Never write to DB or process payment."
)
In LangGraph this is a node graph; in OpenAI Agents SDK it's handoffs. Either way — keep the orchestrator's tool list empty.
Q: What if the orchestrator needs to know something to route correctly? Give it a "lookup" worker, not a lookup tool. The worker call is one extra hop but keeps the split clean.
Q: Can a worker have sub-workers? Yes — that's recursive sub-agents (separate pattern). The worker becomes an orchestrator for its own sub-graph.
Q: How many tools per worker? 3–7 is the sweet spot. Past 10, the worker's accuracy on tool selection drops below 90%.
Q: Does the orchestrator need a stronger model? Usually yes. Routing benefits from reasoning; tool execution benefits from speed.
Q: Memory: orchestrator or worker? Shared state. Both read; orchestrator writes "intent" and "routing decisions"; workers write tool results.
Tool-Using Agent vs Orchestrator Split: The 2026 Decision Tree usually starts as an architecture diagram, then collides with reality the first week of pilot. You discover that vector store choice (ChromaDB vs. Postgres pgvector vs. managed) is not really a vector store choice — it's a latency, freshness, and ops choice. Picking wrong forces a re-platform six months in, exactly when you have customers depending on 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.
Production AI agents live or die on three loops: evals, retries, and handoff state. CallSphere runs 37 agents across 6 verticals, each with its own eval suite — synthetic call transcripts replayed nightly with assertion checks on extracted entities (date, time, party size, insurance, address). Without that loop, prompt regressions ship silently and you only find out when bookings drop.
Structured tools beat free-form text every time. Our 90+ function tools all enforce JSON schemas validated server-side; if the model hallucinates an integer where a string is required, we retry with a corrective system message before falling back to a deterministic path. For long-running flows, we treat agent handoffs as a state machine — booking → confirmation → SMS — so context survives turn boundaries.
The Realtime API vs. async decision usually comes down to "is the user holding the phone right now?" If yes, Realtime; if no (callback queue, after-hours voicemail), async wins on cost-per-conversation, which we track per agent in 115+ database tables spanning all 6 verticals.
Is this realistic for a small business, or is it enterprise-only?
The healthcare stack is a concrete example: FastAPI + OpenAI Realtime API + NestJS + Prisma + Postgres healthcare_voice schema + Twilio voice + AWS SES + JWT auth, all SOC 2 / HIPAA aligned. For a topic like "Tool-Using Agent vs Orchestrator Split: The 2026 Decision Tree", that means you're not starting from scratch — you're configuring an agent template that's already been hardened across thousands of conversations.
Which integrations have to be in place before launch? Day one is integration mapping (scheduler, CRM, messaging) and prompt tuning against your top 20 real call transcripts. Day two through five is shadow-mode running, where the agent transcribes and recommends but a human still answers, so you can compare side-by-side. Go-live is the moment your eval pass-rate clears your internal bar.
How do we measure whether it's actually working? The honest answer: it scales until your tool catalog gets stale. The agent is only as good as the integrations it can actually call, so the operational discipline is keeping schemas, webhooks, and fallback paths green. The platform handles the rest — observability, retries, multi-region routing — without your team owning the GPU layer.
Want to see how this maps to your stack? Book a live walkthrough at calendly.com/sagar-callsphere/new-meeting, or try the vertical-specific demo at realestate.callsphere.tech. 14-day trial, no credit card, pilot live in 3–5 business days.
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.
Five proven multi-agent architecture patterns built on A2A — orchestrator, peer mesh, hub-and-spoke, marketplace, and tiered specialist.
How to design a multi-agent system using MCP for tools and A2A for cross-vendor coordination, with a CallSphere voice agent as a participating node.
A2A is the open standard for agent-to-agent coordination. Here is how the Agent Card JSON works, how discovery happens, and what to publish.
A2A unlocks cross-vendor agent coordination, but most enterprise voice/chat workloads still ship faster on a single-vendor stack. Here is how to choose.
Every 100ms of latency costs you. So does every cent per minute. Here is the decision matrix we use across 6 verticals to pick where to spend and where to save on voice AI infrastructure.
Fully autonomous agents are still a fantasy in production. LangGraph's interrupt() lets you pause for human approval mid-graph without losing state. We cover approve/edit/reject/respond actions and CallSphere's escalation ladder.
© 2026 CallSphere LLC. All rights reserved.