跳到主要内容
返回时间线
livekit.com来源发表:

语音智能体测试不再靠手拨:LiveKit 用 LLM 模拟用户跑完整任务,失败即让构建失败

核心概要

LiveKit 把语音智能体的测试从逐轮对话改成任务级模拟:由一个 LLM 驱动的模拟用户按设定的人设、目标和行为把场景演完,再由 LLM 裁判对照自由文本期望给出通过或失败及理由。场景可并行运行,结果、转写和轨迹进入 LiveKit Cloud 仪表盘;文本模式默认开启、按低优先级排入空闲算力,失败时 CLI 返回非零退出码。Serve AI 在切换任何流量之前,用模拟对一次完整智能体重写对照一百通真实生产通话做了验证。

Source-provided article image: Testing voice agents with Agent Simulations
livekit.com

深度剖析

语音智能体的测试对象从单轮问答变成一整段任务:测试者只声明用户要完成什么,智能体自己决定走哪条路径去完成。 LiveKit Agents 框架此前已支持逐轮测试,但逐轮测试无法复现真实对话的不可预测性,例如来电者必须先提供基本信息才能改约,而提供信息的顺序每次不同。 每个写好的场景都留在测试套件里,加入第十个功能时,前三个功能的检查会自动重跑,从而暴露新改动是否破坏了旧能力。

模拟由 LLM 驱动的用户从头到尾演完一个场景,再由 LLM 裁判按自由文本期望给转写打分。 场景里可以定义模拟用户的人设、目标和行为;对话自然结束后,裁判给出通过或失败以及理由。 场景并行运行,结果、转写和轨迹落到 LiveKit Cloud 仪表盘;Serve AI 在切换任何流量之前,用模拟对一次完整智能体重写对照一百通真实生产通话做了验证。

场景不必从零手写:命令行工具读取智能体代码,按其真实的提示词、工具和对话逻辑生成场景。 生成结果依据的是智能体自身的提示词、工具和对话逻辑,而不是一套通用对话。 生成的场景只是起点,需要保留暴露出问题的、调整没暴露问题的,并自己补写已知重要的用例;签入的 scenarios.yaml 成为与被测智能体一同版本管理的唯一依据。

启示与展望

已展示的设定是 LiveKit Cloud 项目中的语音智能体测试:文本模式绕过语音模型只测对话逻辑,音频模式覆盖含背景噪声、打断和附和声的完整音频管线,适用于级联或语音到语音的全双工智能体。模拟运行的是真实智能体,因此照常调用其 LLM,音频模式下还调用 STT 和 TTS,并按正常费率计费;使用需要 LiveKit CLI、启用 LiveKit 可观测性和一个 LiveKit Cloud 项目。

生成的场景被明确说明只是起点而非完成的测试套件,需要人工筛选、调整并补写。文本模式没有音频也没有停顿,严格一次一轮;音频模式中模拟用户可能通过附和声或在长停顿期间回话而与智能体重叠。Agent Simulations 目前对所有 LiveKit Cloud 项目正式可用,并将在此后与即将推出的 Agent Evaluations 配合使用。