Voice for the Agentic Web
How KlawVoice gives AI agents a trustworthy phone presence.
Executive summary
AI agents can read, write, plan, and transact — but the moment a task touches a phone call, most of them stall. Business still happens on the phone: appointments are booked, leads are qualified, problems get escalated, and verification codes arrive by SMS. KlawVoice closes that gap with three things: a persona-on-a-number model that makes "an agent with a phone" a single provisionable object; a latency-engineered voice loop that turns raw telephony into natural conversation; and a signed capability layer (SMCP) so that other agents and platforms can verify what a KlawVoice agent offers before trusting it. This paper explains each layer, the invariants we hold, and where the platform goes next.
Part I — Why agents need a phone
The phone is where the money is
For most small and mid-size businesses the phone is still the highest-intent channel that exists. A missed call is usually a lost customer, and after-hours coverage is an unsolved staffing problem. Meanwhile, agents that *could* cover those calls are locked out: they have no number, no voice, and no way to prove to anyone what they are.
Raw telephony is an assembly project
The building blocks have existed for years — number inventories, programmable call control, speech recognition, neural TTS, large language models. What hasn't existed is the assembled object. A team that wants an AI receptionist must stitch together five vendors, design a turn-taking loop, keep latency under conversational thresholds, persist transcripts, handle consent, and wire eventing — before writing a single line of the persona they actually wanted. KlawVoice's position is that the assembled object is the product: one call creates a persona, attaches a voice, provisions a number, and wires every webhook the number needs to function.
The missing trust layer
As agents begin transacting with other agents, a new question appears that human-era infrastructure never had to answer: *how does one agent verify what another agent is offering?* A phone number proves nothing. An API endpoint proves nothing. We believe capability declarations must be machine-readable, canonical, and cryptographically signed — and that this belongs at the platform layer, not bolted on per-integration.
Part II — Architecture
The persona-on-a-number model
KlawVoice's core object is the agent: a persona (name, playbook, greeting), a voice, optional knowledge, and optionally a phone number. Two invariants keep the model simple enough to trust:
- One number, one agent. Inbound routing is never ambiguous; attaching an owned number elsewhere is a hard conflict, not a silent reassignment.
- A number works the moment it exists. Voice, SMS, and status webhooks are configured inside the provisioning transaction, not as a follow-up step.
Personas are defined in plain language. A harness can pass instructions — a system prompt for how calls should be handled — plus a name, a greeting, and a voice id, and receive a working phone agent in one request.
One-call provisioning
POST /api/agents/quickstart accepts a preset, optional persona overrides, an optional voice, and an optional with_number flag. Number provisioning is best-effort by design: if the carrier hiccups, the agent still exists and the error is reported, because an agent without a number is a valid state and a retry is cheap. The same philosophy runs through the MCP surface — fourteen tools that wrap the same REST endpoints with the same limits, so there is exactly one behavior to audit.
The voice loop
The default pipeline is turn-based and engineered around conversational latency budgets rather than raw streaming:
- Carrier webhooks are signature-verified before any agent logic runs.
- The greeting is spoken with neural TTS, with a plain-speech fallback so a TTS outage degrades voice quality instead of dropping calls.
- Caller speech arrives as text; knowledge retrieval runs under a sub-second budget and is skipped entirely for short acknowledgements.
- Reply generation races multiple LLM providers in parallel with a quality fallback, takes the first acceptable answer, and enforces a hard ceiling so the caller never waits in silence.
- Replies are capped at one to two sentences — pacing that keeps the conversation human — and every turn's time-to-first-token is recorded.
Transcripts append atomically to the call record as the call runs, so a supervisor — human or agent — can watch live. Post-call, a status callback computes summary, sentiment, and intent, and fires the corresponding events.
For workloads that justify it, an agent can opt into a realtime media bridge (per-agent runpod_url): same personas and transcripts, streaming latency, at the cost of dedicated infrastructure. The turn-based loop remains the zero-ops default.
The event backbone
Everything observable is an event: call lifecycle, transcripts, insights, human take-over, inbound and outbound messages. Events are persisted once and delivered three ways — HMAC-signed webhooks (X-Klaw-Signature, SSRF-guarded, 4-second timeout), server-sent event streams gated by short-lived tokens, and cursor/long-poll endpoints for agents that just want to block until something happens. One event stream, three consumption grammars, no privileged channel.
The SMCP trust layer
KlawVoice implements SMCP v0.1 as an agent-host node. The design goals:
- Canonical shapes. Every published declaration is serialized with sorted keys and no volatile fields, so identical capabilities always hash identically.
- Secret-free by construction. No manifest, card, or discovery document may carry keys, webhook paths, or private material — enforced by a conformance scan, not by convention.
- Signed fingerprints. The host computes a SHA-256 fingerprint over its canonical capability surface and signs it with an ed25519 key. Verifiers pin the key on first use and re-verify on every fetch; any silent capability change surfaces as drift.
- Contracts, not vibes. Per-agent manifests declare task contracts with fixed settlement invariants — funds held, a 48-hour review window, signed callbacks — so a counterparty agent knows the rules before the first request.
- Continuous conformance. A test harness validates version negotiation, canonical determinism, sign/verify round-trips (including tamper failure), and cross-checks the published tool list against the live MCP server so documentation cannot drift from behavior.
Discovery is boring on purpose: three .well-known documents and a per-agent manifest endpoint, all public, all CORS-open, all verifiable offline.
Safety and consent posture
A phone platform for agents has to be conservative where the phone network meets real people. The posture, concretely: carrier webhooks are signature-verified; outbound calling is capped (5 concurrent, 50/hour) and test calls are capped harder; number purchases are rate-limited because they bill real money; API keys are stored only as hashes and shown once; user webhook URLs are HTTPS-only and SSRF-checked; and the agent-facing setup instructions require explicit human consent before any call is placed. Agents are also told the prices — honesty is part of the interface.
Part III — Roadmap
- Realtime streaming as default. Graduating the media bridge from opt-in to the standard path as economics allow, keeping the turn-based loop as the zero-ops floor.
- Voice in the browser. The same personas answering web visitors without a phone leg, sharing playbooks, knowledge, and transcripts with the phone agent.
- Deeper messaging. First-class v1 WhatsApp sending alongside SMS.
- Marketplace federation. KlawVoice agents are publishable to the DiviDen marketplace today; the roadmap extends signed manifests and settlement contracts to cross-platform agent-to-agent hiring.
- SMCP evolution. Wider attestation coverage, richer capability schemas, and third-party verifier tooling as the standard matures.
A note to builders
Everything in this paper is operable today: the quickstart takes five requests, the MCP server speaks to any client, and the machine-readable surfaces (/skills.md, /llms.txt, /llms-full.txt) are built so your agent can read this platform the way you just did. Give your agent a phone number and a voice — and make it provable.