Aywa Runtime Documentation
Website Create account

docs.aywaruntime.com

Run voice-to-voice agents inside your own infrastructure.

Aywa Runtime is a private voice-to-voice agent runtime for teams that want provider ownership, data residency, predictable licensing, and production control without rebuilding their assistant stack.

private-runtime
curl -fsSL https://api.aywaruntime.com/v1/installer | \
  sudo AYWA_INSTALL_TOKEN="$AYWA_INSTALL_TOKEN" \
  RUNTIME_PUBLIC_URL="https://runtime.example.com" \
  AYWA_RUNTIME_IMAGE="$AYWA_RUNTIME_IMAGE" \
  bash

aywa status
aywa update --channel stable
aywa support-bundle --redact
Control plane Licenses, billing, registry tokens, Runtime Slot metadata.
Customer runtime Calls, audio, transcripts, provider keys, tools, webhooks.
Deployment target VPS and Docker Compose first, Kubernetes when the team needs it.

Why Aywa Runtime

Built from Aywa's own voice infrastructure constraints.

Aywa Runtime exists because production phone agents eventually need a tighter execution layer than a hosted voice-agent platform can always provide: predictable runtime licensing, private data flow, provider control, fast turn-taking, and operational visibility when a real call goes wrong.

The runtime is shaped by Aywa's own SDR phone-agent work and deployed production requirements: streaming STT, model routing, TTS fallback, barge-in, BYO telephony, webhook tools, and call-level observability in one private runtime boundary.

Provider usage is paid at source Bring your providers and audit the real STT, LLM, TTS, storage, analytics, and telephony costs.
Call data stays close Audio, transcripts, recordings, provider keys, and tool payloads remain in the deployed infrastructure.
Designed for real voice latency Turn management, endpointing, interruption, and TTS playout are treated as the core product.

Documentation library

The pages a production team needs before it routes calls.

Start with the install flow, then move into providers, API resources, operations, and migration validation.

Quickstart

From dashboard token to a live runtime host.

The dashboard issues a short-lived install token. The Standard installer prepares one private runtime, writes local configuration, pulls a digest-pinned image, and registers the instance heartbeat.

01

Create a workspace

Sign in, choose Trial or Standard, create the workspace, then generate an install token scoped to that workspace.

02

Install on a host

Run the generated command on Ubuntu with Docker. The Standard production path is one VPS + Docker Compose.

03

Open runtime dashboard

Use the Open Runtime Dashboard button once check-in reports the runtime dashboard URL.

04

Verify readiness

Use aywa status, /readyz, and /metrics before routing production calls.

Deployment

VPS first. Compose by default. Kubernetes when needed.

The first production distribution is a Standard installer for one Docker Compose runtime. Enterprise custom covers multi-runtime, HA, load balancing, private builds, and accompanied installation.

Single VPS Best for trial, agencies, and initial production.
Advanced topology Multiple runtime nodes can share Postgres, Redis leases, S3 artifacts, and analytics when the routing model is designed for it.
Kubernetes Helm chart target for teams with existing platform engineering.

Architecture

A small control plane, a private data plane.

Aywa's SaaS layer does not need raw call audio, transcripts, provider secrets, tool payloads, or recordings. Those belong to the deployed runtime and the customer's storage.

Aywa control plane

Auth
Billing
License issuer
Registry access

Customer runtime

Assistant API
Turn manager
STT / LLM / TTS router
Tools and webhooks
SIP / WebRTC media

Customer data plane

Postgres
Redis / Valkey
S3 / R2 / MinIO
ClickHouse

Runtime engine

The phone experience is governed by the turn manager.

The runtime coordinates streaming speech recognition, model streaming, tool calls, speech synthesis, interruption, and media playback as one voice session rather than separate provider calls.

Smart endpointing

Partial and final STT events decide when to wait, continue listening, or start the next assistant turn.

Barge-in

User speech can cancel pending LLM work, abort TTS, and stop RTP/WebRTC playout for the active turn.

Provider fallback

TTS and model routes can fail over while preserving the same call and assistant lifecycle.

Warm transfer

Transfer is modeled as a state machine with bridge, return, and SIP dialog handling.

Answering machine detection

AMD signals feed the same call state and webhook flow as live human conversations.

Live controls

Monitor and control URLs can say, add a message, end a call, transfer, or hand off.

Providers

Bring the providers you already trust.

The table below describes runtime integration categories, not a closed marketplace. Native adapters, compatible API routes, and customer-specific adapters can coexist in the same private deployment. Provider credentials stay in the runtime environment, not in the Aywa SaaS control plane.

LLM Native model routes, OpenAI-compatible endpoints, warm-transfer model routes, and custom LLM adapters. Examples include OpenAI, Azure OpenAI, Anthropic, Gemini, Groq, Mistral, OpenRouter, and similar compatible providers.
STT Streaming speech-to-text with partial and final transcript events. Examples include Deepgram nova-3, AssemblyAI, Gladia, Speechmatics, Soniox, and custom STT routes.
TTS Low-latency voice routes, fallback voices, progressive playout, and custom TTS adapters. Examples include ElevenLabs, Cartesia, OpenAI TTS, Deepgram Aura, LMNT, Rime, and Azure Speech.
Telephony BYO SIP trunk, BYO phone number, FreeSWITCH hooks, SIP edge, customer carrier routes, and adapter paths for providers such as Telnyx, Twilio, or Vonage where configured.
Web calls WebSocket transport, WebRTC bridge paths, LiveKit adapter path, browser call experiences, and customer-owned media gateways.
Data plane Postgres documents, Redis/Valkey leases, S3/R2/MinIO artifacts, ClickHouse analytics, and external observability sinks.

Tools and webhooks

Tool execution belongs near the runtime.

Tool calls, webhook delivery, and replay sit inside the runtime boundary. The outbox writes jobs before dispatch, retries after crashes, and exposes delivery attempts for support review.

Webhook priority
tool server
assistant server
phone-number server
account webhook fallback

License

Signed leases, offline validation, fair renewal.

The runtime validates a signed license locally and renews it in the background when the subscription is active. If the network is unavailable, the runtime continues through the signed lease and grace window instead of depending on a per-call SaaS check.

Issue

Control plane issues a signed license with plan, Runtime Slot allowance, expiration, grace, and key id.

Run

Runtime validates the signature locally and reports heartbeat metadata without sending media data.

Renew

License agent renews the lease while billing remains active and registry access remains allowed.

Expire

Updates and activation stop after grace, while customer data stays in the deployed infrastructure.

Operations

Production readiness is explicit.

Production startup fails closed unless API auth, HTTPS public URL, Postgres, encryption key, Redis, S3 artifacts, and webhook signing are configured. Health and readiness endpoints make that visible.

Health

/health, /healthz, and /readyz separate liveness from readiness.

Metrics

/metrics exposes Prometheus text, while /metrics.json serves dashboard counters.

Timeline

/call/:id/timeline merges call logs, messages, webhook attempts, artifacts, and warnings.

Support bundle

aywa support-bundle --redact packages diagnostics without provider secrets or raw payload secrets.

Production essentials
RUNTIME_PUBLIC_URL=https://voice.example.com
RUNTIME_STORE_POSTGRES_URL=postgres://...
RUNTIME_STORE_ENCRYPTION_KEY=base64...
REDIS_URL=redis://...
RUNTIME_ARTIFACT_S3_BUCKET=voice-artifacts
WEBHOOK_SIGNING_SECRET=long-random-secret
VOICE_PIPELINE_ENABLED=true
VOICE_PIPELINE_STT_ENABLED=true
VOICE_PIPELINE_TTS_ENABLED=true

Migration

Switch execution without rewriting the assistant.

The importer is for compatible assistant configurations from third-party voice platforms. It is designed to move execution into Aywa Runtime while keeping the assistant contract familiar and the infrastructure boundary explicit.

Export assistant configuration Import into Aywa Runtime Map provider credentials Validate tools and webhooks Run a staging call Cut traffic over gradually

Security and privacy

Document the boundary clearly.

Aywa Runtime is independently developed. Compatibility workflows identify migration sources and payload shapes only when useful; the product boundary remains Aywa's own runtime, installer, license, and operator model.

Stored by Aywa SaaS

Account identity, workspace membership, billing state, license records, install token hashes, instance metadata.

Stored by customer infra

Provider keys, phone calls, recordings, transcripts, tools, webhook payloads, runtime logs, artifacts.

Never hide this

Customers still operate their runtime, providers, telephony, backups, network security, and incident response.