Install
$ agentstack add skill-heygen-com-liveavatar-agent-skills-liveavatar-debug ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
LiveAvatar Debugging Guide
Symptom-based troubleshooting for LiveAvatar integrations. Find your symptom below and follow the fix.
Avatar is silent / not responding to speech
Most likely: Missing context_id in FULL Mode.
Without a context_id, the avatar enters restricted mode — streams video but ignores user input. No error thrown.
Fix: Create a context via POST /v1/contexts with at least a prompt field. Include the returned context_id in your session token's avatar_persona.
Other causes:
- Browser mic permissions blocked (check
allow="microphone"on iframe) - Push-to-Talk enabled but PTT events not being sent
- OS-level mic mute
Audio is garbled or distorted (LITE Mode)
Most likely: Wrong audio format.
Required: PCM 16-bit signed, 24KHz, base64. No error returned for wrong format.
Checklist:
- [ ] Sample rate is exactly 24,000 Hz
- [ ] Raw PCM (no WAV/MP3/OGG headers)
- [ ] 16-bit signed, not 8-bit or 32-bit float
- [ ] Base64 encoded
- [ ] Chunks under 1MB
Quick test: Send a known-good 440Hz test tone. If it works but your TTS doesn't, resample your TTS output.
401 error / session fails to start
Most likely: Wrong auth header.
| Endpoint | Correct auth | |----------|-------------| | POST /v1/sessions/token | X-API-KEY: | | POST /v1/sessions/start | Authorization: Bearer |
Common mistakes: using API key on /start, using Bearer token on /token, putting API key in Bearer format.
Events not received (FULL Mode)
- Subscribed to correct topics? Send to
agent-control, receive fromagent-response - LiveKit room connected? Check connection state
- Parsing JSON correctly? Events have
event_type,event_id,session_id
WebSocket events silently dropped (LITE Mode)
Most likely: Sending before connected.
Wait for {"type": "session.state_updated", "state": "connected"} before sending any commands.
Also check:
- Using correct event names? LITE uses
agent.*, notavatar.*(that's FULL) - WebSocket still open? 5-min inactivity timeout
Session times out
5 minutes of inactivity kills the session.
- FULL:
POST /v1/sessions/keep-alivewithBearer - LITE:
{"type": "session.keep_alive", "event_id": "..."}via WebSocket
Send every 2-3 minutes.
Sandbox won't start
- [ ]
is_sandbox: trueset in session token - [ ] Avatar ID is
dd73ea75-1218-4ef3-92ce-606d5f7fbc0a(sessions) or65f9e3c9-d48b-4118-b73a-4ae2e3cbb8f0(embeds) - [ ] Not using a different avatar with sandbox mode
~1 minute auto-termination is expected behavior.
Image avatar fails / no audio
Image avatars have no auto-generated voice. Specify voice_id in avatar_persona. Browse voices at GET /v1/voices.
Custom LLM / TTS not working
LLM checklist:
- [ ] Secret:
secret_type: "LLM_API_KEY" - [ ] Config: correct
model,secret_id,base_url - [ ]
llm_configuration_idin session token - [ ] Endpoint supports OpenAI
/chat/completionsprotocol
TTS checklist:
- [ ] Secret:
secret_type: "ELEVENLABS_API_KEY" - [ ] Voice imported via
POST /v1/voices/third_party - [ ] Using the returned LiveAvatar voice_id (not the ElevenLabs ID)
CORS / network errors
- API calls should come from backend, not browser
- Allow outbound
wss://for LiveKit and WebSocket - Allow
*.livekit.cloud,api.liveavatar.com,embed.liveavatar.com
General approach
- Start with sandbox mode to eliminate billing issues
- Check session state:
GET /v1/sessions/{id} - Check transcript:
GET /v1/sessions/{id}/transcript - Check credits:
GET /v1/users/credits - Verify you're not mixing FULL and LITE event systems
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: heygen-com
- Source: heygen-com/liveavatar-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.