用途:对真实 LiveKit 智能体运行场景模拟,由 LLM 驱动的模拟用户与智能体对话,再由裁判给转录打分,用于部署前回归测试长程多轮行为,例如对话是否达成正确结果、早期收集的信息是否保留到结束、智能体在压力下是否遵守指令、是否在正确状态下结束。单轮测试用 testing-livekit-agents,边改边调试用 debugging-livekit-agents。
用法:在智能体项目目录下运行,模式以子命令给出,例如 lk agent simulate text --scenarios scenarios.yaml。运行前先读 lk agent simulate --help,子命令与参数会变化,写错参数会浪费付费运行。未提供场景文件时,CLI 会从智能体源码生成场景,此时会先上传代码并请求确认;场景编写属于 writing-livekit-scenarios。默认 CLI 以本地 worker 启动智能体、分发场景并在结束后停止;也可选择按名称对已运行的智能体评分,但这需要场景文件。
文本与音频:文本是默认且推荐模式,模拟用户与智能体交换文本,框架关闭 STT、TTS 和 VAD,更快更省更确定,适合迭代和自动化。音频模式走完整语音管线,能评分轮次衔接、打断处理、双向转写准确度和用户感知延迟;音频实时运行、每轮调用 STT/TTS 且计费更高,应留给发布候选或涉及语音、轮次、打断的改动,不要放进周期性任务。音频子命令可降低模拟来电者音频质量(噪声、差麦克风、丢包),用于测试听不清时的表现。
自动化与结果读取:只需提交场景文件和定时或发布分支任务;非终端下输出纯文本,任一场景失败即非零退出。自动化应保持文本模式,提交文件中每个场景都须通过,尚未通过的探索性场景应另存文件按需运行。每次运行会打印每个场景的判定和仪表盘链接;判定说明发生了什么,转录说明原因,应基于转录排查。可用 export 输出完整运行的 JSON(含各场景完整聊天上下文),用于读取失败转录、对比两次运行或归档;list 可找运行 id 并支持机器可读输出。失败可归为智能体 bug、场景不佳或模拟世界缺口三类,修复后应运行整个文件;反复同样失败的场景应下沉为单元测试。并发按运行和项目受限,具体限制见文档。