用途
livekit-simulations 用于为 LiveKit 语音或聊天智能体生成有针对性的测试场景,并将其作为模拟运行。其核心价值在于:基于智能体的真实代码和用户希望压力测试的内容,生成高质量、多样化、切中目标的场景,然后交给 CLI 执行。
主要能力
- 场景生成:场景 = 模拟用户的人设 + 目标(instructions)+ 通过标准(agent_expectations)。模拟会以文本方式对智能体运行每个场景,并由 LLM 裁判评分。
- 本地代码分析:使用常规工具在本地读取智能体代码(不上传任何内容),由编码智能体本身作为生成模型,无需额外 API 密钥或服务。
- 风险清单驱动:将智能体的约束转化为显式风险清单,要求每一项至少有一个场景覆盖,避免生成漂移到看似合理的正常路径而静默跳过困难用例。
- 用户意图引导:用户最清楚自己担心什么,技能会捕获并贯穿该意图;焦点是叠加的,会加深所选风险但不会降低每项风险的覆盖下限。
- 覆盖强制校验:通过脚本组装配置,若任何风险未被覆盖则失败,直到通过为止。
- 回归复用:保存的 scenarios.yaml 可在提示词、模型或工具变更后作为回归套件重新运行。
使用方式
- 描述智能体并构建风险清单:本地读取代码,写出面向测试的描述(Identity / Capabilities / Constraints)到 description.md,并将显式风险清单写入 risks.yaml(每个必须测试的约束/护栏一条,含 id 与 category)。切勿上传代码。
- 获取用户测试焦点:若用户未说明要探测什么,主动询问。将焦点以
# Test Focus追加到 description.md 并影响编写。若用户确实没有偏好,则广泛生成并说明。 - 编写场景:每个风险至少一个场景,围绕 description.md 与焦点写出约 10 个多样化场景,人设/情绪/情境的多样性由自身判断生成(此版本不附带属性库)。每个 risks.yaml 条目至少获得 1 个专用场景,使用真正能触发该风险的形态,并打上
covers: [<risk id>, …]标签。写入 authored.yaml,用户指定的必测项也在此加入。 - 组装配置(强制覆盖):运行
python scripts/build_scenarios.py assemble --in authored.yaml --agent-description-file description.md --risks risks.yaml --strict --out scenarios.yaml该命令校验 schema,若有风险未覆盖则失败,并输出lk agent simulate --scenarios可加载的 YAML 场景文件。修复缺口并重跑直到通过。 - 运行:
lk agent simulate --scenarios scenarios.yaml(用--help确认确切参数;需要 beta 说明中提到的 SDK/认证)。向用户展示结果,并提供重掷、重新聚焦或添加场景的选项。 - 回归复用:在提示词/模型/工具变更后重新运行已保存的 scenarios.yaml。
适用场景
- 为 LiveKit 语音或聊天智能体构建系统化测试场景。
- 需要覆盖护栏与滥用面(越界、有害、专业建议、敏感数据、提示词提取)的测试。
- 在提示词、模型或工具变更后进行回归测试。
限制
- 模拟功能处于私有测试阶段,尚未普遍可用。
- 暂无文档或 MCP 覆盖;
lk agent simulate命令面请使用lk agent simulate --help和 LiveKit Cloud 仪表盘,而非lk docs/ MCP。 - 需要较新的 SDK:运行模拟需要 livekit-agents 1.6 系列,应确认已安装版本而非假设。
- 可用性/认证受限:创建运行需要项目已启用模拟功能,并拥有有效的 lk cloud 认证会话。生成场景(本技能的主要工作)则两者都不需要,完全本地进行。
- 确切参数、CI 等待/失败标志、最低 SDK 版本和仪表盘来自实时来源,会变化,应查阅而非猜测。
- 本技能是方法本身,不附带库,多样性需自行提供。