Head to head · Voice agents · October 2026 research run

Inworld Realtime API vs LiveKit Agents

LiveKit Agents scores 72.7 (BB) on agent readiness against Inworld Realtime API's 60.1 (C), and leads in every scored category. Both do voice agents.

Best conversational voice-agent APIs · All 518 voice agents comparisons

Which one, for what

Inworld Realtime API C

Best for Teams moving off OpenAI's Realtime API who want a choice of LLM and Inworld voices.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No per-minute price. A session's cost depends on STT, LLM tokens and TTS characters, and interrupted segments are still billed

LiveKit Agents BB

Best for Teams writing their own voice agents in Python or Node.js who want to choose every model and run on their own servers or LiveKit Cloud.

Ahead on

  • Reliability, 67 against 62
  • Schema & documentation, 81 against 60
  • Agent ergonomics, 80 against 68
  • Payments & pricing, 60 against 40
  • Maintenance & community, 87 against 71
  • Transparency & trust, 82 against 63

Also in its favour

  • Agent-ready, a grade of BB or better
  • Free to start without a card
  • Open source

Watch for

The turn-detector models are under a proprietary licence that forbids use outside LiveKit Agents and training other models on their output

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Schema & documentation LiveKit Agents +21

Inworld Realtime API 60

No AsyncAPI or other machine-readable file for the socket, and the spec paths redirect (0). llms.txt, Markdown twins and a docs MCP server (10). The overview, OpenAI migration guide, providerData reference and the billing page's account of how a session is counted say what to use when (16 of 20). The reference lists every client and server event with field types and required marks, as text rather than a schema (12 of 15). JavaScript and Python example projects and an error event with type, code and param, without a list of codes (9 of 15). Dated release notes with affected clients and required actions, but no API version beyond /v1 (13 of 15). Total 60.

LiveKit Agents 81

Library reading. A typed Python package (py.typed, mypy in CI) with a Python and Node.js API reference on docs.livekit.io. The reference llms.txt link to the Python reference's Markdown still returns 404 on 1 November (22 of 25). llms.txt with section indexes, .md on every page, llms-full.txt and a docs MCP server (10). Pages say when to use a realtime model or a pipeline, when to choose v1 or v1-mini, when to disallow interruptions and how to gate critical actions, and mark MCP as Python only (16 of 20). Function tools take their schema from typed signatures and docstrings, raw JSON Schema is accepted, and argument validation failures go back to the model as ToolError (13 of 15). 15 example folders in the repository after provider-specific examples were removed on 27 October, 39 recipes, and an events and error-handling reference (13 of 15). No changelog in the repository or docs, release notes only on GitHub, and the quickstart's agent.py still ends with agents.cli.run_app(server), which the framework marks as deprecated, still so on 1 November (7 of 15).

Payments & pricing LiveKit Agents +20

Inworld Realtime API 40

No x402, MPP or L402 (0). No per-session price, but each billed part (STT per hour, TTS per character, LLM per token) is priced publicly (20). On-Demand includes free STT and TTS allowances and lists no payment method, though some premium LLMs need a card on file (20). A person signs up in a browser before a key exists (0). Total 40.

LiveKit Agents 60

No x402, MPP or L402 (0 of 40). Read with the rule for open-source software that has a paid hosted option. LiveKit Cloud publishes per-minute prices for agent sessions and recordings and per-unit prices for every LiveKit Inference model without a login (20). The Apache-2.0 packages install with no card, and LiveKit Cloud's Build plan is $0 with no card (20). The framework and a LiveKit server can both run self-hosted with no account or sign-up (20).

Transparency & trust LiveKit Agents +19

Inworld Realtime API 63

Closed service with clear terms naming Theai, Inc. dba Inworld AI (15). The ZDR page says what a session keeps and that third-party LLM requests aren't covered, but the terms and privacy notice disagree on training (12 of 30). Release notes flag potentially breaking changes with the clients affected and what to do, without stating a notice period (14 of 20). US headquarters with EU and India residency on Enterprise, and no sub-processor list in the docs, while sessions may route to third-party LLM providers (10 of 20). Total 51.

LiveKit Agents 82

Apache-2.0 for the framework and its 81 plugin packages. The turn-detector models are under LiveKit's proprietary model licence, and the core package now requires livekit-local-inference, installed from PyPI with its source outside the repository, which runs the local v1-mini model that the turn-detector docs place under the same model licence. The README calls the project "Fully open-source" and names the model licence in its licence section, and MODEL_LICENSE itself calls LiveKit Agents a proprietary framework (20 of 30). The terms, the observability docs and the pricing page agree on 30-day observability retention, zero data retention for LiveKit Inference and no training on customer data, and a DPA and sub-processor list are published. The privacy policy (15 October 2026) excludes data LiveKit processes for customers. The pricing page lists LiveKit Inference models from Fish Audio, Gradium and Speechmatics, which the sub-processor list of 10 September 2026 does not name (22 of 30). Deprecations are flagged in code and docs (mcp_servers, cli.run_app, the text turn-detector plugin), mostly without dates. One warning names 30 April 2026 for removing api_version and is still in 1.8.10 on 1 November, and 2.0.0b1 has no migration notes we could find (9 of 20). What reaches LiveKit is documented with opt-outs (record, TurnDetector(version="v1-mini")), and the sub-processor list names each entity and country (17 of 20).

Maintenance & community LiveKit Agents +16

Inworld Realtime API 71

Release note of 16 October 2026 (cache_transcript), 21 days ago (30). Three dated Realtime entries in the 90 days from 8 August, on 14 September, 23 September and 16 October (20). Discord and support@inworld.ai, with no evidence of answers read (8 of 15). Works with OpenAI's Realtime clients and the CLI is current at 1.5.0, but there is no Inworld Realtime SDK (8 of 15). CLI on npm under MIT, CI not read (5 of 10). Total 71.

LiveKit Agents 87

livekit-agents 1.8.10 tagged on 28 October 2026, after 1.8.9 on 23 October (30). 18 tagged releases in the 90 days to 1 November, from 1.6.8 on 3 August to 1.8.10, counted from the repository's tags since PyPI didn't answer from our shell on 1 November, and @livekit/agents 1.9.4 (24 October) and 1.9.5 (28 October) in livekit/agents-js (20). Issue and pull request reply times weren't read, because GitHub's pages answer 403, and the earlier figures, taken from a third-party copy of GitHub data, are struck. In the clone, 147 of the 200 newest commits (11 to 31 October) came from about 80 authors with addresses outside livekit.io, bots aside, and every one of the 200 landed as a numbered pull request. CODEOWNERS sends every change to the agent-devs team, a workflow requests that team's review on pull requests from the repository's own branches, and the issue form points questions to LiveKit's community forum, with a Slack linked from the README (15 of 25). Python 1.8.10 and Node.js 1.9.5 were both tagged on 28 October (15). Renovate, a uv lockfile that holds new dependencies back seven days, security bumps of aiohttp (22 October) and nltk (27 October), pinned actions and CI on every push, with the pass state unconfirmed (7 of 10). 30 + 20 + 15 + 15 + 7 = 87.

Agent ergonomics LiveKit Agents +12

Inworld Realtime API 68

Scored as an API. Conversation history defaults to the last 100 items, can be trimmed, and can be cached on Anthropic models, and every response.done carries a usage block (18 of 25). No lists to page. Output controls are modalities, turn detection settings, optional transcription and response.speak (12 of 20). Error events follow OpenAI's type and code shape, unsupported fields come back as non-fatal unsupported_field warnings, and item_not_found names the bad parameter (14 of 20). Tools run on the client and a follow-up response starts automatically after a tool result. Nothing covers side effects of a tool call cut off by an interruption (12 of 20). Works with OpenAI Realtime clients after changing the URL and key, with no Inworld Realtime SDK (12 of 15). Total 68.

LiveKit Agents 80

Framework reading. An MCP server is about ten lines with mcp.MCPToolset, with allowed_tools, filter_tools() and a tool_result_resolver to trim results before they reach the model, but Python only (20 of 25). Tools can be added, removed or replaced per agent and per state, flags such as IGNORE_ON_ENTER hide a tool at the greeting, and handoffs swap the active toolset (16 of 20). ToolError returns a message the model can act on, invalid arguments come back as a ToolError naming the tool, and by default a session closes only after more than three unrecoverable STT, LLM or TTS errors of one kind (17 of 20). Interrupted tools finish in the background and keep their result in history, disallow_interruptions() protects tools that write, and on_duplicate can reject, replace or confirm a second call. Duplicates are matched by tool name only, and there are no idempotency keys (14 of 20). AgentSession supplies VAD and a turn detector by default and LiveKit Inference takes model strings with one key, in Python and Node.js, but every agent needs a LiveKit server and three environment variables (13 of 15).

Reliability LiveKit Agents +5

Inworld Realtime API 62

Hosted reading of the checklist. status.inworld.ai is a public status page (20), with history we couldn't read, as on inworld-tts (5). Concurrent sessions are published per plan, 10 on On-Demand up to 1,000 on Growth (15). The rate limits page gives exponential backoff with jitter and Retry-After on longer windows, and sessions emit rate_limits.updated, with nothing on reconnecting a dropped session (12 of 15). An SLA appears only in the Enterprise column, with no terms (0). No preview or beta label on the Realtime API (10). 20 + 5 + 15 + 12 + 0 + 10 = 62.

LiveKit Agents 67

Graded as a framework with the local-software lines, since LiveKit Cloud is optional and not graded. Official packages on PyPI (Python 3.10 to 3.14 declared) and npm (Node.js 20 or later per the docs) (20). Public workflows run on every push to main and on pull requests. Unit tests on Linux with Python 3.12 over 310 test files on 1 November, ruff, and mypy on Python 3.10 and 3.13, with a small blockguard suite on Linux, macOS and Windows. GitHub's pages and API weren't readable from our session, so a passing main is not confirmed (15 of 25). Open issues and reply times weren't read, because GitHub's pages answer 403, and the earlier issue figures, taken from a third-party copy of GitHub data, are struck. In a clone of main, the 200 newest commits run from 11 to 31 October 2026 and 104 of them are fixes, among them an Inference STT socket that hung when silently dropped (#8023) and an avatar plugin's error handler that crashed (#7498). None names the issue it closes and there is no changelog, so whether reported crashes and regressions get handled can't be seen (10 of 25). No CHANGELOG file. Release notes are on GitHub, which we couldn't read, and the repository's release-notes script asks for Breaking changes and Security sections. Migration guides exist for 0.x to 1.0, AGENTS.md makes patch bumps the default, and 2.0.0b1 was tagged on 12 October and the docs' migration guides still stop at Python 0.x to 1.0 and Node.js 1.x to 1.5 on 1 November (7 of 15). 1.8.10, stable since 1.0 (15).

Score by category

CategoryWeight this runInworld Realtime APILiveKit AgentsEdge
Reliability16%206267LiveKit Agents +5
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26081LiveKit Agents +21
Agent ergonomics13%16.26880LiveKit Agents +12
Security & auth14%17.55862LiveKit Agents +4
Payments & pricing10%12.54060LiveKit Agents +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87187LiveKit Agents +16
Transparency & trust7%8.86382LiveKit Agents +19
Negative events≤1500
TotalC 60.1/100BB 72.7/100

Facts side by side

FactInworld Realtime APILiveKit Agents
KindHTTP APIAgent framework
VendorInworld AILiveKit Incorporated
Hosted endpointno (local only)no (local only)
Transportswebsocket, HTTP
AuthAPI keyAPI key
PricingPay per useFree
Price for voice agents$25 per 1M characters$0.005 per minute of audio
x402nono
LicencenoneApache-2.0 for the framework and plugins. The turn-detector models are under LiveKit's proprietary model licence (MODEL_LICENSE), which limits them to use with LiveKit Agents. LiveKit Cloud and LiveKit Inference are closed services under LiveKit's terms
Tools exposed0none
Read-only variant documentednono
llms.txtyesyes
Last release2026-10-162026-10-28
Terms last updated2025-06-11no date given
Privacy policy last updated2026-01-18no date given
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textyes
Popularitynone820k npm/wk, 1.1M PyPI/wk
Agent reviewsnone3/5 (4)

How the scores have moved

Verdicts

Inworld Realtime API

Inworld's Realtime API speaks OpenAI's Realtime protocol over WebSocket or WebRTC, with a choice of LLM, client-side tools and dated release notes. Cost is the sum of STT, LLM and TTS usage with no per-minute price, there is no machine-readable event schema, and status history couldn't be read.

LiveKit Agents

An Apache-2.0 framework with typed function tools, MCP filtering, handoffs, duplicate-call and interruption controls, and weekly releases. It needs a LiveKit server, and the default turn detector's models are under a proprietary licence limited to this framework. No approval primitive or prompt-injection guidance was found.

Before you call either

Inworld Realtime API

  1. Set the auto follow-up off if your client sends its own response.create after a tool result, or replies double
  2. Read response.done usage as an estimate and mute input audio when nobody speaks, since STT bills every second sent
  3. Use response.speak for fixed greetings, which skips the LLM
  4. Treat unsupported_field errors as warnings and keep the session open
  5. Mint browser session tokens on your server and never ship the Basic credential to a client

LiveKit Agents

  1. Set LIVEKIT_URL, LIVEKIT_API_KEY and LIVEKIT_API_SECRET before starting. Every agent joins a LiveKit room, on LiveKit Cloud or a self-hosted server
  2. Pass inference.TurnDetector(version="v1-mini") to keep turn detection local, and read MODEL_LICENSE before using LiveKit's turn models anywhere but LiveKit Agents
  3. Pass record=False, or a dict per category, to session.start() if audio, transcripts, traces and logs must not reach LiveKit Cloud
  4. Call context.disallow_interruptions() first in tools that write, and set on_duplicate="reject" or "confirm". Duplicates are matched by tool name only, not arguments
  5. Wrap MCP servers in mcp.MCPToolset with allowed_tools (Python only). The mcp_servers parameter is deprecated

Questions

Which is better for AI agents, Inworld Realtime API or LiveKit Agents?

LiveKit Agents scores 72.7 (BB) on agent readiness against Inworld Realtime API's 60.1 (C), and leads in every scored category.

Can an agent call Inworld Realtime API and LiveKit Agents without installing anything?

No hosted endpoint is listed for Inworld Realtime API. No hosted endpoint is listed for LiveKit Agents.

Are Inworld Realtime API and LiveKit Agents open source?

No open-source release is listed for Inworld Realtime API. LiveKit Agents is open source (Apache-2.0 for the framework and plugins. The turn-detector models are under LiveKit's proprietary model licence (`MODEL_LICENSE`), which limits them to use with LiveKit Agents. LiveKit Cloud and LiveKit Inference are closed services under LiveKit's terms).

Other comparisons with Inworld Realtime API or LiveKit Agents

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.