When should I call avatar.start(...) in my LiveKit Agent?

Call await avatar.start(session, room=ctx.room) before session.start(...).

That gives the avatar participant time to join the LiveKit room, and lets the plugin route the agent’s audio to the avatar correctly. In practice, start the avatar first, then start the agent session.