This page assumes you already have an Agora project with Conversational AI enabled and can start a voice agent against an Agora RTC channel. If not, start with Agora’s Conversational AI quickstart, or pick a different integration path.
Prerequisites
- A LiveAvatar account and API key. Sign up at app.liveavatar.com.
- An Agora project with Conversational AI Engine enabled, plus an App ID and Basic Auth credentials for the REST API.
- A way to mint Agora RTC tokens for at least three participants: the end user, the Agora agent, and the LiveAvatar avatar. The agent and avatar tokens need publish permission; the user token needs both publish (microphone) and subscribe.
Installation
There is no SDK to install on your side. The integration is server-driven: you call Agora’sjoin REST endpoint with an avatar block, and Agora’s backend brings LiveAvatar into your channel.
Configuration
LiveAvatar is selected by adding anavatar block under properties in the Agora join request body:
How Agora + LiveAvatar fit together
An Agora RTC channel hosts the conversation between three participants:
The avatar is its own RTC publisher. Agora’s Conversational AI Engine routes synthesized TTS audio to LiveAvatar, which lip-syncs and publishes audio + video back into the channel under
agora_uid. Your frontend subscribes to that UID for the avatar’s tracks.
How the session starts up
- You mint tokens. Issue Agora RTC tokens for the agent UID and the avatar UID against the channel your end user will join.
- You POST
/join. Callhttps://api.agora.io/api/conversational-ai-agent/v2/projects/:appid/joinwithproperties.avatarset to the LiveAvatar block above, alongside yourllm,asr, andttsconfiguration. The response returns anagent_id— store it; you will need it to stop the session. - Agora starts the agent. The Conversational AI Engine joins the channel as
agent_rtc_uidand starts its ASR → LLM → TTS loop. - Agora spawns LiveAvatar. Using your
api_key,avatar_id,agora_uid, andagora_token, Agora’s backend opens a LiveAvatar session and the avatar joins the channel as a publisher. - Your frontend subscribes. The end user joins the channel, subscribes to the avatar’s audio + video tracks, and the conversation runs.
Stopping the session
POST tohttps://api.agora.io/api/conversational-ai-agent/v2/projects/:appid/agents/:agent_id/leave with the same Authorization: Basic header used for /join, where :agent_id is the value returned from /join. Agora tears down the agent and the LiveAvatar session together.
Minimal example
ElevenLabs TTS at 24 kHz, pointed at LiveAvatar:agent_rtc_uid, the user UID in remote_rtc_uids, and avatar.params.agora_uid must all be different. Mint a separate token for each.
What changes versus a voice-only Agora agent
Concurrency and limits
Concurrent sessions are capped by the lower of your Agora Conversational AI limit and your LiveAvatar plan limit. Provision both sides before scaling load tests.Resources
Agora — LiveAvatar by HeyGen
Upstream Agora reference for the LiveAvatar avatar provider.
Agora Conversational AI Engine
Product overview of the Agora pipeline LiveAvatar plugs into.