Skip to content

About

The Sent Voice Agents protocol: the AsyncAPI spec and the conformance tests every Voice Agents SDK runs

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Sent Voice Agents protocol

The protocol an AI agent speaks to take and place phone calls through Sent: the session an agent holds while it is on a call, over a WebSocket at wss://voice.sent.dm. Any language with a WebSocket client can build an agent from it, with or without a Sent Voice Agents SDK.

Status: Preview, version 0.2.0. The protocol is not released yet and may change before 1.0.

What is here

Path What it is
docs/protocol.md How to connect, the order of frames, audio, tools, heartbeats and compatibility
asyncapi.yaml The protocol as an AsyncAPI 3.1 document: connections, frames and examples
schemas/ A JSON Schema (draft-07) for each frame, which asyncapi.yaml references
examples/ Valid frames and frames each schema must refuse, and sample agents in Node and Python
docs/decisions.md Why the protocol is shaped the way it is
conformance/ The harness, its scenarios and the agent every SDK writes to pass them
action.yml The GitHub Action an SDK's CI runs the harness with

A session in six frames

The agent connects with the account API key, and Sent sends connection.ready. When a call reaches the agent:

{"type":"session.start","session_id":"vs_7Hq2Lm9xQa","call_id":"call_01JBX6Y3R0QK5D8M2T4W6Z9C1E","agent_id":"agent_01JBX6Y3NHZ9V3K7T2Q5R8M4PA","direction":"inbound","from":{"kind":"number","value":"+14155550100"},"to":{"kind":"number","value":"+14155550199"},"session_type":"text","language":"en-US","started_at":"2026-10-23T12:00:00Z"}
{"type":"agent.say","session_id":"vs_7Hq2Lm9xQa","text":"Hi, this is Acme support. How can I help?"}
{"type":"user.said","session_id":"vs_7Hq2Lm9xQa","text":"I need to talk to a person"}
{"type":"tool.call","session_id":"vs_7Hq2Lm9xQa","call_ref":"t1","name":"transfer","arguments":{"to":{"kind":"user","value":"support-desk"}}}
{"type":"tool.result","session_id":"vs_7Hq2Lm9xQa","call_ref":"t1","ok":true}
{"type":"session.end","session_id":"vs_7Hq2Lm9xQa","reason":"transferred","duration_ms":48210}

Conformance

Every Sent Voice Agents SDK runs the same conformance scenarios in CI before it is released: a harness plays Sent's side of whole sessions against the SDK's conformance agent and checks every frame it sends. The SDK runs it with this repository's action, and conformance/ says how, and what the agent must do.

pnpm test checks this repository itself: the schemas against their examples, asyncapi.yaml against the schemas, and the harness against a reference agent.

Versions

Releases are tags such as v0.1.0, which the Sent Voice Gateway and every SDK pin. How versions relate to the sent.voice.v1 subprotocol, and what may change, is under Compatibility and versions.

The repository is also a Go module, github.com/sentdm/sent-dm-voice-protocol. Its one export, Files, embeds package.json, asyncapi.yaml, schemas/ and the frame examples of the release in go.mod, so a Go consumer reads the spec from the module instead of a submodule.

License

Apache License 2.0.

About

The Sent Voice Agents protocol: the AsyncAPI spec and the conformance tests every Voice Agents SDK runs

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages