How to run a single LiveKit worker for multiple clients (multi-tenancy)

This question originally came up in our Slack community and the thread has been consolidated here for long-term reference.

Is there any way to run the same LiveKit worker for different clients?

Currently, it seems like for each client I need to deploy a new worker instance. A production-grade LiveKit agent worker needs 4 cores and 8GB RAM, which becomes very expensive if deploying a separate instance for each client.

What’s the best approach for multi-tenant agent deployments?

For multi-tenancy, you can have a single worker that handles all clients. Use participant attributes to identify which client the call belongs to.

For example, with SIP/telephony you can listen to participant.attributes.get("sip.trunkPhoneNumber") to identify the customer, then inject that specific customer’s prompt, settings, etc.

This approach lets you share infrastructure costs across clients while still providing customized experiences for each.