Skip to content
All comparisons
PyPI package availablePython pluginChecked August 17, 2026

PyAI vs LiveKit: managed agent or open framework

LiveKit Agents and PyAI solve different layers. The Python adapter has passed compatibility tests, but it is not on public PyPI yet. Use Omni or the direct Hear and Speak APIs today while the adapter release completes.

The honest answer

Choose the LiveKit plus PyAI path after the adapter is public when owning the media and agent pipeline is the requirement. Choose Omni today when reducing moving parts is the requirement.

Control boundary

The decision is who operates the conversation loop.

Both paths use PyAI speech. The difference is whether your application owns each stage or asks Omni to run the agent as one managed system.

Managed path

PyAI Omni

  1. 1Connect to Omni over one WebSocket.
  2. 2Configure persona, knowledge, tools, voice, and optional continuity when the Agent profile has it enabled and a caller key is available.
  3. 3PyAI runs turn-taking, speech, reasoning, and agent audio.
  4. 4Use managed telephony or connect your own call path.

Composable path

LiveKit Agents + PyAI

  1. 1Keep the caller inside a LiveKit room.
  2. 2Send caller audio to PyAI Hear through the plugin.
  3. 3Run your LLM, tools, and turn policy in the LiveKit worker.
  4. 4Send text to PyAI Speak and publish the audio back to the room.

PyAI Omni vs LiveKit Agents + PyAI, side by side

PyAI OmniLiveKit Agents + PyAI
Product shapeManaged speech-to-speech agent on one WebSocket.Open-source realtime agent framework with a tested, release-pending PyAI STT and TTS plugin.
What you ownPersona, tools, knowledge, and business configuration.The worker, media flow, LLM, turn policy, tools, deployment choices, and failure handling.
MediaVoice sessions and phone calls.WebRTC rooms with voice, video, multimodal, and multi-participant workflows.
SpeechSpeech is part of the integrated Omni path.PyAI Hear and Speak are explicit LiveKit AgentSession components.
TelephonyManaged telephony and built-in call controls are available.LiveKit supplies SIP and media primitives; your worker owns the call behavior.
RuntimeAny client that can speak the Omni WebSocket protocol.LiveKit supports Python and Node.js. The PyAI plugin is currently Python.

LiveKit facts are from its public Agents, models, and Cloud billing documentation, checked August 17, 2026.

The working object

Keep your LiveKit worker. Swap only the speech components.

Your framework still owns orchestration. The PyAI key stays on the server-side worker and authorizes Hear and Speak.

Install the PyAI adapter

pip install livekit-plugins-pyai==0.1.0

Set PYAI_API_KEY on the worker. A sandbox key is enough to test Hear and Speak with bounded daily usage and no billing gate.

Python
from livekit.agents import AgentSession
from livekit.plugins import pyai

session = AgentSession(
    stt=pyai.STT(language="en"),
    llm=llm,  # keep your existing LiveKit LLM
    tts=pyai.TTS(voice="stock_emma_en_gb"),
    vad=vad,  # keep your existing LiveKit VAD
)

Choose based on the work you want to own.

Choose LiveKit Agents + PyAI when

  • You already run LiveKit rooms or SIP.
  • Video, avatars, or multi-participant sessions matter.
  • You need to swap or inspect every pipeline component.
  • Your team wants to own worker deployment and failure policy.

Choose PyAI Omni when

  • You are shipping a phone-first voice agent.
  • One managed realtime contract matters more than component choice.
  • You want built-in call controls, knowledge, tools, and caller continuity when the Agent profile has it enabled and a caller key is available.
  • You do not want to operate an STT, LLM, and TTS cascade.
No benchmark theater

Run the same calls before you choose.

A framework result is the sum of its transport, region, LLM, speech services, endpointing, prompts, and tool loop. We do not turn one internal run into a universal ranking.

Compare task completion, grounded answers, interruption handling, first audio, and operating work on recordings from your own calls. Keep every component and test condition visible. If the managed path wins, use Omni. If pipeline control wins, keep LiveKit Agents and use PyAI for speech.

FAQ

Can I use PyAI with LiveKit Agents?

Yes. Install livekit-plugins-pyai in your Python worker and use PyAI Hear for speech-to-text and PyAI Speak for text-to-speech. Your framework keeps control of transport, the LLM, tools, and pipeline behavior.

When should I use LiveKit Agents with PyAI instead of Omni?

Use LiveKit with PyAI when WebRTC rooms, video, multi-participant media, or component-level orchestration are requirements.

When should I use PyAI Omni?

Use Omni when you want one managed speech-to-speech agent with turn-taking, knowledge, tools, optional managed telephony, and caller continuity when an Agent profile has it enabled and a caller key is available.

What changes in my code?

Keep your existing framework application. Replace its STT and TTS components with the PyAI services, set PYAI_API_KEY on the worker, and leave your transport, LLM, tools, and business logic in place.

How does pricing work?

$0.001/min for Hear and $0.04/min for Speak when used as components. Omni is $0.05/min for speech + brain; optional managed telephony is $0.01/min ($0.06/min combined). The LiveKit Agents framework is open source. LiveKit Cloud, media, inference, telephony, and your other model services are metered separately.

Does this page claim one framework is faster?

No. End-to-end behavior depends on the transport, hosting region, LLM, turn settings, and every processor in the pipeline. Test both paths on the same calls and publish the conditions with any result.

Pick your control boundary. Keep the speech layer.

Use PyAI Hear and Speak inside LiveKit Agents, or run the complete agent on Omni.

Agents is Live Beta. Sandbox keys have daily limits and never touch billing.