Most agents do not need this page. If you can remove the LiveKit server,
install the transport plugin —
livekit-plugins-clutchcall / @clutchcall/livekit-transport —
into your agent process instead. Then you do not need the sidecar, the room, or
the credentials setup below. This is the recommended path:
Run a LiveKit Agent on ClutchCall Transport.Use the front-proxy on this page when the room itself must stay — for
example, other participants join it, or another part of your stack depends on it.1. Configure a vendor-bridge agent
Give the agent a singleVENDOR_BRIDGE entry node instead of an ASR→LLM→TTS
cascade. With this configuration, the runtime runs no turn detection and
no model. It sends the caller’s audio to your LiveKit room. It streams the
room’s audio back.
agent-config.json
string
default:"livekit"
The external vendor to route to:
livekit, vapi, or twilio. Change this
one field to front-proxy a Vapi or Twilio agent with the same mechanism.string
The LiveKit room that the bridge sidecar joins. For the other vendors, this is
the Vapi assistant id or the Twilio app.
string
The key into your tenant’s sealed vendor credentials: your
LIVEKIT_URL,
LIVEKIT_API_KEY, and LIVEKIT_API_SECRET. The system stores these values at
rest and never inlines them.2. Place a call at that agent
Attach the agent onoriginate. The gateway connects the audio automatically on
answer. You do not need your own AudioBridge.
- TypeScript
- Python
3. Promote a live call to the LiveKit agent
If a call is already in progress, attach the vendor-bridge agent to the runningsid. This moves the conversation to your LiveKit room in the middle of the call.
- TypeScript
- Python
4. Run the bridge sidecar
The gateway side of the bridge — the vendor-bridge node plus the media handler — is shipped and in-tree. The process that joins your LiveKit room is a bridge sidecar. You run this sidecar next to your LiveKit deployment.What is shipped and what you deploy. The vendor-bridge routing is part of
the runtime and is shipped. The bridge sidecar is a separate component that
you operate with your own LiveKit URL, key, and secret. For this reason, its
exact CLI and image ship with the bridge, not with the gateway. The edge is
shipped. The bridge is a thin component that you run.
Browser leg? The compat shim (preview)
If your LiveKit surface is a browser app (livekit-client) and not a
server-side agent, you can skip the edge bridge. Change one import line to run
the client’s audio directly over the transport.
Related
LiveKit Agent Integration
All three paths: transport plugin, front-proxy, and browser shim.
Run a LiveKit Agent on the Transport
The recommended path: a plugin in your agent process, with no sidecar and no room.
From Self-Hosted LiveKit
The wave-by-wave migration off a LiveKit SFU.
Custom Agent Runtime
The same front-proxy pattern for any non-LiveKit runtime.
WebRTC Diversion
How the compat shim sends encoded Opus over QUIC in the browser.

