ConversationState
ConversationState answers: What is the Avatar doing now?
Use it to drive speaking indicators, pause controls, and idle UI. A conversation typically moves between idle, active playback, and paused behavior, but the exact enum cases and intermediate states vary by platform.
Do not infer network health from conversation state. An Avatar can be idle while its data path remains connected.
Platform definitions: Web · iOS · Android · Flutter
In LiveKit Agents and Agora Convo AI client integrations, the RTC package drives the Avatar and AvatarKit’s ConversationState callback does not fire. Read RTCConversationState from AvatarPlayer instead. It has two values, idle and speaking, and follows what is on screen. See Web and iOS and Android.
ConnectionState
ConnectionState answers: Can AvatarKit reach Motion Server?
This AvatarKit state applies to Direct Mode, where the client owns that connection. It is useful for connection UI, retry decisions, and distinguishing startup from an established session.
LiveKit Agents, Agora Convo AI, and Backend Mode own connectivity outside the core AvatarKit controller. Observe the RTC provider or your application transport for those paths instead.
Platform definitions: Web · iOS · Android · Flutter

