We’re building a production voice AI system on LiveKit with a parent agent that delegates to multiple specialist sub-agents (identification, user management, etc.) using enter_agent() / handoff. Today the whole system runs as a single monolith — one ECS task, one worker process.
We want to move to independently deployable sub-agents, where each specialist runs in its own container/process and can be deployed, versioned, and scaled independently. This is a standard microservices concern — changing one sub-agent shouldn’t require redeploying and retesting the entire system.
We’ve researched the current options and understand the constraints:
-
enter_agent()is purely in-process — it callsupdate_agent()under the hood, so there’s no way to hand off to an agent running in a different worker. -
Agent dispatch (
RoomAgentDispatch) supports dispatching multiple named agents to the same room from separate workers (docs, confirmed working in #2220). But there’s no built-in protocol for coordinating handoff between them — who’s “active,” passing conversation context/state, muting/unmuting, or managing turn detection across agent switches. -
send_text()data channels can be used for DIY coordination between agents in the same room, but it’s a significant amount of custom infrastructure (state serialization, ack protocols, audio isolation, turn detection stability).
Our questions:
-
Is LiveKit planning to add cross-process agent handoff — something like
enter_agent()but targeting a named agent running in a different worker? -
Alternatively, are there plans for a multi-agent coordination layer that handles the mute/unmute, turn detection, and context passing when multiple agents share a room?
-
Is there a public roadmap or feature prioritization board we can follow for this kind of architectural feature?
We want to avoid building a custom solution if LiveKit has this on the near-term roadmap.