Skip to main content

At a glance

Architecture

  1. The user joins an Agora channel and speaks to the Convo AI agent.
  2. The Convo AI agent runs the ASR, LLM, and TTS pipeline.
  3. The Spatius avatar provider opens a Motion Server session with Agora egress.
  4. Motion Server generates motion data from the agent audio and publishes synchronized audio + motion data to the Agora channel.
  5. The client joins the same Agora channel with AgoraProvider and renders the avatar locally.
Spatius is not a video streaming service. Even when you use Agora as the transport layer and Convo AI as the voice agent platform, Agora transports avatar audio and motion data, not finished avatar video. AvatarKit renders the avatar locally on the client.

Client setup

Choose the client package for your platform: Each client joins the same Agora channel configured in the Convo AI agent or TEN extension. Use a distinct Agora UID for every participant so the avatar publisher, browser users, and native users do not collide.

Agora Convo AI Client

Install and connect Web, iOS, and Android clients.

Server setup

Choose the setup path that matches what you run:

Convo AI Agent

Configure Spatius as properties.avatar.vendor = "spatius" in the Convo AI start-agent request.

TEN Extension

Use spatius_avatar_python when you run a TEN Framework graph directly.
Most Agora Convo AI users should start with Convo AI Agent. Use TEN Extension only when your deployment exposes a TEN Framework graph that you configure directly.

Next steps

Convo AI Agent

Add Spatius to the Agora Convo AI start-agent payload.

TEN Extension

Configure spatius_avatar_python inside a TEN Framework graph.

Client

Render the avatar in your Web, iOS, or Android app with AgoraProvider.