LiveKit Agents:实时语音 AI 智能体框架
构建可实时对话、能看能听的语音智能体,支持多模态交互和灵活集成。
- Star 数
- ★ 15k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 43/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 开发人员快速构建 WebRTC 语音助手,用于客户服务或虚拟助手。
- 不适合
- 不想部署或连接 LiveKit 服务器的开发者
- 希望 API 长期稳定不变的团队
这个 Agent 能做什么,适合哪些场景?
LiveKit Agents 是一个面向服务器端实时语音智能体的 Python 框架。它提供 AgentSession 管理对话,Agent 定义指令与工具,AgentServer 负责任务调度,并通过 WebRTC 与客户端交互。框架支持多种 STT、LLM、TTS 模型,可通过插件或 LiveKit Inference 统一 API 接入,并提供 RPC、数据 API、MCP 支持和内置测试框架。
该框架提供一个 AgentServer 进程,监听房间会话并启动 AgentSession。开发者在 @server.rtc_session 入口函数中创建会话,配置 VAD、STT、LLM、TTS(例如 deepgram/nova-3、google/gemma-4-31b-it、cartesia/sonic-3),然后通过 Agent 的 instructions 和工具(@function_tool)定义行为。会话支持生成回复、多智能体交接、结构化输出,并可通过 CLI(console、dev、start)运行。
- 开发人员快速构建 WebRTC 语音助手,用于客户服务或虚拟助手。
- 需要实时语音交互的场景,如电话机器人(通过 SIP 集成)。
- 多智能体协同任务,如收集信息后交给后续智能体处理。
- 需要结构化输出(如 JSON)来引导 TTS 语气的场景。
- 需要 MCP 工具集成,实现与外部系统的交互。
- 测试语音智能体行为,使用内置测试框架和 judge 进行自动验证。
如何安装或部署这个 Agent?
使用 pip 安装核心库及插件:pip install "livekit-agents[openai,deepgram,cartesia]"。需要 Python 环境。
如何使用这个 Agent?
设置环境变量 LIVEKIT_URL、LIVEKIT_API_KEY、LIVEKIT_API_SECRET。运行 python myagent.py dev 启动开发服务器并支持热重载。生产环境使用 python myagent.py start。也可用 python myagent.py console 在终端测试。
这个 Agent 有哪些优点和局限?
- 持续更新,提供多种模型集成(OpenAI、Deepgram、Cartesia 等)。
- 内置任务调度和分发 API,易于扩展多智能体。
- 支持 WebRTC 客户端 SDK,覆盖主流平台。
- 内置测试框架,帮助确保智能体行为正确。
- MCP 原生支持,一行代码集成 MCP 服务器工具。
- 需要 LiveKit 服务器(云或自托管),增加部署复杂性。
- 必须配置 API 密钥和网络连接。
- 部分功能依赖特定模型提供商,可能产生费用。
- 框架处于快速开发阶段,API 可能变化。
这个 Agent 与同类方案有什么区别?
此框架区别于纯聊天的库,它专注于实时语音交互,并且与 LiveKit 生态深度集成,需要搭配 LiveKit 服务器使用。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| LiveKit Agents:实时语音 AI 智能体框架 当前 | 43 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 15k | 今天 | Python | OpenAI API · Claude API |
| OpenAI Agents SDK(JavaScript/TypeScript) | 55 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 3.9k | 3 天前 | TypeScript | OpenAI API |
| TanStack AI | 76 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 3.2k | 4 天前 | TypeScript | OpenAI API · Claude API |
| AgentScope 2.0 | 70 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 33k | 今天 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示框架需要环境变量(LIVEKIT_URL等)和API密钥,但未提供最小权限原则的明确说明;用户确认机制未提及;数据流透明度部分体现在文档中提及RPC和数据API,但未详细说明数据流向;敏感数据处理未明确;依赖安全方面有依赖锁定(uv.lock)和CI构建,但未提及漏洞扫描;外部影响方面,框架会连接外部服务(STT/LLM/TTS),但未说明副作用;回滚机制未提及;来源归属方面,代码和文档明确标注了LiveKit,但发布者未验证。扣分原因:缺乏安全最佳实践文档和用户确认机制。
自一致性较好,README和示例代码一致,但未发现版本兼容性说明;依赖可用性方面,依赖众多且部分需要外部API密钥,但未提供离线或降级方案;失败消息方面,文档未详细说明错误处理。扣分原因:依赖外部服务可能导致不可用,且错误处理文档不足。
受众明确为开发者,场景覆盖语音、视频、文本等;能力边界在README中通过功能列表和示例说明,但未明确限制;触发精度方面,工具调用和事件处理有示例,但未详细说明触发条件;环境适配方面,支持多种平台和部署方式,但未说明资源需求。扣分原因:触发精度和资源需求说明不足。
信息架构清晰,有README、文档链接、示例目录;安装说明详细,提供pip安装命令;命名稳定性方面,API名称在示例中一致,但未提供命名规范文档;示例和FAQ丰富,但FAQ未单独列出;已知限制未明确;许可证为Apache-2.0,清晰;版本变更日志未提供;维护责任方面,有贡献指南和社区渠道,但未明确维护者。扣分原因:缺少版本变更日志和已知限制说明。
输出可用性方面,提供了多种示例和测试框架,但未提供输出格式规范;边际价值方面,框架功能丰富,但未与同类产品对比;成本效益方面,未提供性能或成本数据。扣分原因:缺乏成本效益分析。
声明可追溯性方面,README中的功能声明有示例支持,但未提供详细文档链接;跨来源佐证方面,有多个示例和测试,但未提供独立验证;事实与推断分离方面,文档中未明确区分事实和推断。扣分原因:缺乏独立验证和事实推断分离。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未验证,需谨慎对待供应链风险。
- 框架依赖大量外部服务和API密钥,需确保密钥安全。
- 未提供版本变更日志,升级时需自行检查兼容性。
- 未明确已知限制,生产使用前需自行评估。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
GPT-Live through LiveKit Inference You can now run GPT-Live with your LiveKit credentials instead of a separate OpenAI key. inference.DuplexModel handles its protocol, and you can adopt it directly with a model string: ```python session = AgentSession(llm="openai/gpt-live-1") ``` New providers and models - OpenAI GPT-Live 1: now available through LiveKit Inference. - Google Gemini Live: adds Inference model-string support for google/gemini-3.8-live, google/gemini-3.8-live-extended-thinking, and google/gemini-live. …在 GitHub 查看 ↗ -
发布说明摘录
Realtime E2E latency You can now measure realtime replies from the last detected user speech to first assistant playback when you configure local VAD. Read the latency from assistant message metrics: ```python @session.on("conversation_item_added") def on_message(event): if event.item.type == "message" and event.item.role == "assistant": print(event.item.metrics.get("e2e_latency")) ``` New providers and models - Claude Opus 5, Opus 5.5 and Sonnet 5.5: model support through the Anthropic SDK upgrade. Breaking changes …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(sarvam): close the streams the STT collects by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/7058 * fix(aws): keep realtime session active after stream restart by @uuzzrm in https://github.com/livekit/agents/pull/6811 * fix(telemetry): format a loop stall report without reading source files by @zdurm in https://github.com/livekit/agents/pull/7616 * update deps by @davidzhao in https://github.com/livekit/agents/pull/7655 * fix(deps): bump bithuman in uv.lock for Windows wheel support by @abhijeetgaur-dev in https://github.com/livekit/agents/pull/7559 …在 GitHub 查看 ↗