Build voice AI agents
for every one of your customers
Each tenant gets isolated agents, knowledge bases, and callable functions. Plug in Deepgram or Soniox for speech-to-text, ElevenLabs or Unreal Speech for voice, push-to-talk over WebRTC today, telephony via LiveKit/Pipecat next.
Everything a multi-tenant voice agent needs
True tenant isolation
Supabase Auth + Postgres Row Level Security scope every agent, document and conversation to its owning tenant automatically.
Server-side key vault
Deepgram, Soniox, ElevenLabs, Unreal and OpenAI keys live only inside Supabase Edge Function secrets — never in browser JS.
Pluggable providers
Switch STT/TTS/LLM providers per agent from a dropdown. Add new providers by dropping in one Edge Function branch.
Per-agent knowledge base
Paste or upload text; it's chunked, embedded with pgvector, and retrieved live during conversations (RAG).
Intent → API functions
Define a function once (name, description, endpoint, auth) and the agent's LLM calls it automatically when it detects the matching intent.
Push-to-talk WebRTC widget
Embeddable mic widget for instant testing today; LiveKit/Pipecat telephony slots into the same orchestrator next.
Architecture
Static frontend talks only to Supabase Auth, Postgres (via RLS) and Edge Functions. Every third-party API key stays server-side.
Frontend (this site)
- Supabase Auth (signup/login/session)
- Dashboard · Agent editor · Knowledge base UI
- Functions/Tools manager
- WebRTC push-to-talk widget
Supabase Edge Functions
- stt-transcribe → Deepgram / Soniox
- tts-speak → ElevenLabs / Unreal
- agent-orchestrator → RAG + tool-calling LLM
- kb-ingest / kb-search, function-executor
Supabase Postgres
tenants · profiles · agents · knowledge_bases · kb_documents · kb_chunks (pgvector) · agent_functions · agent_function_secrets · tenant_provider_keys · conversations · conversation_messages · function_call_logs — all with Row Level Security keyed to the caller's tenant.
Roadmap
Push-to-talk WebRTC
Record in-browser, transcribe, run the agent, hear the reply.
Streaming STT
WebSocket relay for live, continuous transcription instead of record-then-send.
Telephony
LiveKit or Pipecat media server bridges PSTN calls into the same orchestrator/functions.