TEN Framework 是什么?1.1 万星的实时语音 Agent 框架,声网开源的对话式 AI 底座(基础篇)

TEN Framework 是什么?1.1 万星的实时语音 Agent 框架,声网开源的对话式 AI 底座(基础篇)

TEN Framework 是什么?1.1 万星的实时语音 Agent 框架,声网开源的对话式 AI 底座(基础篇)

大部分 Agent 框架——LangGraph、CrewAI、Dify——拼的都是文本链路:提示词、工具调用、工作流编排。但你想做一个”能打电话、能随时插嘴打断、延迟还不能高”的语音 Agent,文本那套就不够用了:音频是全双工流,不是一问一答。TEN Framework 就是冲这个来的:声网(Agora)开源的实时多模态对话 Agent 框架,GitHub 1.1 万星(11.2K star、1.4K fork),最新版本 0.11.73 发布于 2026 年 9 月 22 日,仓库隔天就有提交。

它到底是个啥

一句话:给语音对话 Agent 用的”扩展图”运行时。核心设计就三条:

1. 扩展(Extension)即积木。 ASR、LLM、TTS、工具调用、数字人、RTC 接入,全都是扩展。每个扩展由 manifest.json + property.json 描述,带 on_init → on_start → 处理消息 → on_stop → on_deinit 生命周期。写 Python 的话直接继承 AsyncASRBaseExtension、AsyncLLMBaseExtension、AsyncTTS2BaseExtension 这些基类,不用自己管异步管道。

2. 图编排,不是代码写死。 Agent 的管线在 property.json 的 predefined_graphs 里声明:哪些扩展是节点、怎么连、数据往哪流。换编排不用改代码,改 JSON 就行——和 Dify 那种拖拽画布是一个思路,只不过 TEN 面向的是写代码的人。

3. RTC-first,不是 HTTP 一问一答。 默认传输是 Agora RTC(实时音视频),WebSocket 是备选。连接分四类:cmd(命令)、data(数据消息,比如 asr_result)、audio_frame(PCM 音频帧)、video_frame(视频帧,给数字人用)。全双工对话要的低延迟和抢话处理,靠 HTTP 轮询是做不出来的。

生态一共五件:TEN Framework(核心运行时,C/C++ 内核加 Go/Python/Node.js 绑定)、Agent 示例(仓库里 ai_agents/ 目录)、TEN VAD(2.3K 星的语音活动检测)、TEN Turn Detection(全双工抢话断句)、TEN Portal。

TEN Framework 语音 Agent 运行时架构图
TEN 的运行时:音频从 RTC 或 WebSocket 进来,扩展图里 VAD → ASR → LLM → TTS 串成一条流,TTS 结果回传客户端

上手:两条路

快路(先跑示例感受一下):准备 Docker + Node.js 18+,克隆仓库进 ai_agents 目录,.env 里填四样:Agora App ID/Certificate、OpenAI API key、Deepgram ASR key、ElevenLabs TTS key,然后 docker compose up -d、进容器、build 默认的语音助手示例。最低配置 2 核 CPU + 4GB 内存。

正路(自己开发扩展):装 tman(TEN Manager 命令行,apt PPA、Homebrew、winget 都有包),依赖是 Python 3.10(注意:只支持 3.10,高版本直接不认)+ Go 1.20+ + Node.js。然后四步走:

tman install app transcriber_demo
cd transcriber_demo
tman install && tman run install_deps
tman run build

示例全家桶挺丰富:语音助手(链式管线和 Realtime 端到端两种)、说话人分离、Live2D 数字人口型同步、SIP 电话(对接 Twilio/Plivo/Telnyx)、音频转写,甚至还有 ESP32-S3 开发板上跑的硬件方案——拿一块几十块钱的板子就能做离线语音入口。

实话

先说好的:语音 Agent 这条细分赛道上,TEN 是目前开源里工程化最完整的一套——扩展图、全双工、数字人、SIP 电话全齐了,RTC 是声网的老本行,文档和示例一直在维护(最近一次提交就是昨天)。

丑话说在前:

  • 许可证不是纯 Apache-2.0:在 Apache 2.0 之上加了两条附加条款——不允许把 TEN 部署到最终用户设备(包括手机终端),不允许以与 Agora 竞争的方式部署。想拿它套壳做手机语音 App 或卖竞品平台的,动手前先读完 LICENSE。
  • 示例深度绑定 Agora RTC:免费额度之外的 RTC 用量要花钱;WebSocket 路线能绕开,但延迟和抢话断句就得自己多费心。
  • Python 卡死 3.10:高版本环境先 pyenv 隔离,别跟它讲道理。
  • C/C++ 内核 + Go 构建链:想改运行时本体,工具链比纯 Python 框架重得多;只想写和调扩展的话无视这条。

一句话总结:想做”能实时对话的语音/数字人 Agent”、不想从零搓音频管线,TEN 值得直接上手;只是想做文本 Agent,站内写过的 LangGraph、Mastra、Eino 那几篇更对口。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注