Agora’s Conversational AI Engine ships LiveAvatar as a first-class avatar provider. You keep Agora’s voice orchestration (ASR, LLM, TTS) and Agora SD-RTN transport — LiveAvatar adds the avatar video participant inside the same channel.Documentation Index
Fetch the complete documentation index at: https://docs.liveavatar.com/llms.txt
Use this file to discover all available pages before exploring further.
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 you do not, a different integration path will likely fit better — head back to Integration paths to pick one.
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:
| Parameter | Required | Notes |
|---|---|---|
api_key | yes | Your LiveAvatar key from app.liveavatar.com. |
avatar_id | yes | The avatar to render. |
quality | yes | high (720p), medium (480p), or low (360p). |
agora_uid | yes | RTC UID the avatar publishes under. Must be distinct from your agent_rtc_uid and any remote_rtc_uids. |
agora_token | yes | RTC token minted for agora_uid on the same channel as the agent, with publish permission. |
activity_idle_timeout | no | Seconds of silence before the avatar tears down. Default 120. |
disable_idle_timeout | no | Default false. Set true to keep the avatar alive indefinitely; overrides activity_idle_timeout. |
How Agora + LiveAvatar fit together
An Agora RTC channel hosts the conversation between three participants:| Participant | Publishes | Subscribes to |
|---|---|---|
| End user | Microphone audio | Avatar audio + video |
Agora agent (agent_rtc_uid) | (no media; forwards TTS audio to LiveAvatar) | User microphone |
LiveAvatar (agora_uid) | Lip-synced audio + video | TTS audio forwarded by Agora |
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
| Concern | Voice-only Agora agent | With LiveAvatar |
|---|---|---|
| Channel participants | User + agent | User + agent + avatar |
| Where TTS audio surfaces | Published by the agent | Forwarded to LiveAvatar; avatar publishes audio + video |
| Tokens to mint | Agent + user | Agent + user + avatar |
| TTS sample rate | Vendor default | Locked to 24 kHz |
| Frontend rendering | Audio-only subscribe | Must also subscribe to the avatar UID’s video track |
| Billing | Agora minutes + your inference | Agora minutes + your inference + LiveAvatar minutes |
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.