Skip to main content

Python Worker

The Python worker runs the Voiceblox agent using the LiveKit Agents Python SDK (v1.4+).

Prerequisites

  • Python 3.12+
  • uv (Python package manager)

Setup

Download required ML models (run once after setup):

Running

Starting the agent server

The agent server spawns workers on demand via /ensure-worker. It auto-reloads on file changes in development.

Connecting to the playground

Start both the app and the agent server:
Ensure AGENT_SERVER_URL=http://localhost:8080 is set in .env.local. When you click Test in the builder, the app creates a LiveKit room with the AgentConfig in metadata and dispatches the job to this worker.

Required environment variables

The worker loads environment variables from the project root .env.local.
Plus provider keys for whichever LLM, TTS, and STT your flow uses. Keys not set fall back to the LiveKit inference gateway.

Supported providers

LLM

OpenAI, Gemini, Groq, Together, Azure, Cerebras, xAI, Fireworks, Perplexity, DeepSeek, Moonshot, Telnyx, Ollama, OVHcloud

TTS

ElevenLabs, Deepgram, OpenAI, Cartesia, Rime, Neuphonic, Resemble

STT

Deepgram, OpenAI, Groq, OVHcloud

Tools

  • MCP servers — native MCPServerHTTP support with bearer/API key auth
  • Exa web search — configurable search type and result count

Project structure

Deploying with Docker

See Docker Compose for running the Python worker alongside the web app in a container.