Agent 圈有个反直觉的现象:GitHub 星数最少的那个,往往卡着最要命的一环。LiveKit Agents 一万四千星,放在 Dify 的十五万九、n8n 的二十万七面前像个小弟,但 PyPI 上个月它被拉了 360 万次,ChatGPT 的语音模式跑的就是它。这东西藏在几乎所有“能说话”的 AI 产品底下,却很少有人单独讲。
项目介绍:三层看,别糊在一起
LiveKit 2021 年由 Russ d’Sa 和 David Zhao 起家,最初只干一件事:把 WebRTC 那套低延迟音视频传明白。今天主仓库 livekit/livekit(SFU 服务器)两万一千星,Agents 框架仓库一万四千八百星,Apache-2.0,最新版 1.8.8 停在 10 月 15 日——光十月上半月就发了五个版本。
钱和客户也摆得清楚:2026 年 1 月 22 日拿到一亿美元 C 轮,估值十亿美元,Index Ventures 领投,Salesforce Ventures 跟投,累计融资 1.83 亿。官方口径二十万开发者,客户名单里有 OpenAI、xAI、Meta、Spotify、Tesla、Coursera,Salesforce 的 Agentforce 语音客服也跑在这上面。这些名字能说明一件事:它不是给 Demo 用的。
它的定位要分三层,很多介绍文章会糊在一起:
底层是传输。 SFU 只转发不转码,WebRTC 走浏览器和 App,SIP 直接接电话线。这一层决定延迟能压到多低。
中层是框架。 核心是一个很反常识的设计——你的 Python 或 Node 程序是作为“一个完整的房间参与者”进去的,不是外挂一个 HTTP 服务等回调。所以它能听见打断、能看见谁在说话、能把音频流直接拿去做 STT。
上层是云。 部署、模型推理、转写和追踪都在 LiveKit Cloud 上。
框架层只要记四个名字:AgentServer 负责注册和待命,有人进房就拉起来;AgentSession 是整条音频管线的总编排;Turn Detector 判断“用户这句话说完了没有”,语义加声学两条线一起看,官方支持 14 种语言;LiveKit Inference 是模型网关,五十多个模型不用自己配 API key。
上手:一条命令,或者十几行代码
不想写代码的走 Agent Builder,浏览器里拖完就能发链接;要写代码的,一条命令生成带测试和 AGENTS.md 的模板:
lk cloud auth
lk agent init my-agent --template agent-starter-python
也可以手动装:pip install “livekit-agents[openai]~=1.8”。然后是一个最小可跑的例子(简化自官方 starter):
from livekit.agents import Agent, AgentServer, AgentSession, JobContext, cli, inference
class Assistant(Agent):
def __init__(self):
super().__init__(instructions="你是语音助手,回答控制在三句话内。")
server = AgentServer()
@server.rtc_session(agent_name="my-agent")
async def my_agent(ctx: JobContext):
session = AgentSession(
stt=inference.STT(model="assemblyai/universal-3-6-pro"),
llm=inference.LLM(model="google/gemma-4-31b-it"),
tts=inference.TTS(model="fishaudio/s2.1-pro"),
)
await session.start(agent=Assistant(), room=ctx.room)
await ctx.connect()
if __name__ == "__main__":
cli.run_app(server)
跑起来后终端里就能直接说话。加工具是一个 @function_tool 装饰器的事,写法跟 OpenAI Agents SDK 那套几乎一样,迁移成本很低。
还有个细节值得单独说:lk skills install。它把 LiveKit 的 Agent Skills 和文档 MCP 直接装进 Claude Code、Cursor、Codex 的配置里,starter 还自带一份 AGENTS.md 和 CI 里的模拟对话测试。意思是你可以让编码 Agent 自己查文档、改代码、用 CLI 调试器试——这套“给 Agent 用的开发工具链”,比很多框架想得远。
实话:门槛不在 AI,在媒体层
第一,自建比想象中重。 你要自己托管,就得运维 livekit-server 这个 SFU,加上 TURN、证书、端口和 NAT 穿透。写 Agent 逻辑是一小时的事,把媒体链路调稳是按天算的。Cloud 有免费额度,规模一上来就是要付钱。
第二,最好用的几个能力绑在云上。 轮次检测模型、自适应打断、背景降噪,在 Cloud 上开箱即用;自托管要么自己补模型,要么走它的额度,超额单独计费。这是商业模式,不是 bug,但选型时得认。
第三,延迟是物理问题,不是代码问题。 一轮对话至少要串 STT、轮次判断、LLM、TTS 四段,模型大多不在你机器上。官方的预生成(边等你说完边生成)和自适应打断是在补这个洞,补不掉。国内做电话客服这类场景,跨境链路那笔 RTT 的账绕不开——要么自建 SFU,要么接受它。
第四,横向对比别搞混。 同样开源的 Pipecat 更自由、不带托管,什么都要自己拼;Vapi 是托管路线,按分钟计费、省事但黑盒;TEN Framework 是声网那套,国内网络更友好。LiveKit 的位置是“开源框架 + 全球云 + 电话线”三件套齐全,代价是它希望你留在它的云上。
一句话:你要做的是“能打电话、能被用户打断、还要上生产”的 Agent,这是目前最完整的一套;你只是想要个文字 Agent,别碰,它太重了。