Tencent TRTC edge transport for Vision Agents
Project description
Vision Agents Plugin: Tencent TRTC Edge
Tencent TRTC (Real-Time Communication) edge transport for Vision Agents. Lets an agent join a Tencent TRTC room and exchange audio/video with participants using the Tencent LiteAV SDK Python bindings.
Quickstart
Talk to an agent in 5 minutes. You'll need Docker, an .env with TENCENT_SDK_APP_ID, TENCENT_SDK_SECRET_KEY, OPENAI_API_KEY, and ELEVEN_API_KEY at the repo root, and a working microphone in a Chromium-based browser. The example pairs Tencent TRTC with OpenAI (LLM) and ElevenLabs (STT + TTS) — chosen because Gemini and Cartesia aren't reachable from mainland China, which is the natural deployment target for this edge.
-
Open Tencent's hosted TRTC Web SDK quick demo: https://web.sdk.qcloud.com/trtc/webrtc/v5/demo/quick-demo-js/index.html
- Paste your
TENCENT_SDK_APP_IDinto SDKAppID andTENCENT_SDK_SECRET_KEYinto SDKSecretKey — the page generatesUserSigclient-side. - Leave the auto-generated UserID and RoomID(String) as is.
- Click Enter Room → demo log should print
🟩 [user_***] enterRoom. - Click Start Local Video — this also publishes the mic.
- Paste your
-
Copy the
RoomID(String)from the demo form and launch the agent with it:cd plugins/tencent TENCENT_TEST_ROOM_ID=<paste-room-id-here> docker compose run --rm tencent-agent
On first run this builds the image and resolves the workspace; subsequent runs are fast. When the agent joins you'll see
Tencent TRTC OnRemoteUserEnterRoom: <userId>matching the UserID shown in the demo. -
Talk. The flow is
browser → Tencent → STT (ElevenLabs) → LLM (OpenAI) → TTS (ElevenLabs) → Tencent → browser. Confirm each leg in the agent log:🎤 [Transcript Complete]: …— STT got your speech.🤖 [LLM response final]: …— LLM produced a reply.- Reply plays back in the browser.
Usage in your own code
from vision_agents.core import Agent, User
from vision_agents.plugins import tencent
agent_user = User(id="agent-1", name="Agent")
edge = tencent.Edge(
sdk_app_id=YOUR_SDK_APP_ID,
user_sig=USER_SIG, # or key=KEY to generate per join
)
agent = Agent(
edge=edge,
agent_user=agent_user,
llm=...,
# stt, tts, etc.
)
call = await edge.create_call(call_id=str(ROOM_ID), room_id=ROOM_ID)
await agent.join(call)
await agent.finish()
Install
uv add vision-agents-plugins-tencent
On Linux this pulls liteav from PyPI. On macOS the liteav dependency is skipped via a platform marker, so the package installs but tencent.Edge() raises at runtime — use the Docker setup from the Quickstart.
Configuration
tencent.Edge(...) parameters:
- sdk_app_id (int): Tencent TRTC SDK App ID. Falls back to
TENCENT_SDK_APP_IDenv var. - user_sig (str): User signature for the agent user.
- key (str): Optional. If set and
user_sigis not, the plugin generatesuser_sigvia TLSSigAPIv2. Falls back toTENCENT_SDK_SECRET_KEYenv var. - video_fps (int): Outgoing video frame rate.
Environment variables:
TENCENT_SDK_APP_ID,TENCENT_SDK_SECRET_KEY— credentials.TENCENT_TRTC_SCENE— one ofauto(default),videocall,call,record.TENCENT_TEST_ROOM_ID— interpolated bydocker-compose.ymlinto the example runner's--call-idflag.
Platform support
The underlying liteav package ships only manylinux wheels — Linux x86_64 / aarch64 only. macOS and Windows must run the agent inside a Linux container (see Quickstart). User sigs are needed for room entry; either generate them with TLSSigAPIv2 or pass key= and let the plugin sign per join.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vision_agents_plugins_tencent-0.6.5.tar.gz.
File metadata
- Download URL: vision_agents_plugins_tencent-0.6.5.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4bf51ade72298713c50bffe1c6d68b9c17f5a3733a430e65da88be0d750667
|
|
| MD5 |
1e55b622f412f60cd5ec6663b85b5bdf
|
|
| BLAKE2b-256 |
b71ef2851c85fed9c04da5a85412e5da912956f1d1169d58e96fe4301a6b9f6f
|
File details
Details for the file vision_agents_plugins_tencent-0.6.5-py3-none-any.whl.
File metadata
- Download URL: vision_agents_plugins_tencent-0.6.5-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e226e50afdefdbc0647888e8a2b12e50c7c498c6900c7b99afce5e07f8645de6
|
|
| MD5 |
935c42d547c8cc78d20711bb32b31ebd
|
|
| BLAKE2b-256 |
b1cd08e5c9bfc1dfd0cf55d6b79d9bbefdb35d70f503bd8f866598c5544fe02f
|