SuperAPI AI 工具集

livekit-simulations

测试与质量

查看项目

更新于 10-15 15:00

技能介绍

用途

livekit-simulations 用于为 LiveKit 语音或聊天智能体生成有针对性的测试场景,并将其作为模拟运行。其核心价值在于:基于智能体的真实代码和用户希望压力测试的内容,生成高质量、多样化、切中目标的场景,然后交给 CLI 执行。

主要能力

  • 场景生成:场景 = 模拟用户的人设 + 目标(instructions)+ 通过标准(agent_expectations)。模拟会以文本方式对智能体运行每个场景,并由 LLM 裁判评分。
  • 本地代码分析:使用常规工具在本地读取智能体代码(不上传任何内容),由编码智能体本身作为生成模型,无需额外 API 密钥或服务。
  • 风险清单驱动:将智能体的约束转化为显式风险清单,要求每一项至少有一个场景覆盖,避免生成漂移到看似合理的正常路径而静默跳过困难用例。
  • 用户意图引导:用户最清楚自己担心什么,技能会捕获并贯穿该意图;焦点是叠加的,会加深所选风险但不会降低每项风险的覆盖下限。
  • 覆盖强制校验:通过脚本组装配置,若任何风险未被覆盖则失败,直到通过为止。
  • 回归复用:保存的 scenarios.yaml 可在提示词、模型或工具变更后作为回归套件重新运行。

使用方式

  1. 描述智能体并构建风险清单:本地读取代码,写出面向测试的描述(Identity / Capabilities / Constraints)到 description.md,并将显式风险清单写入 risks.yaml(每个必须测试的约束/护栏一条,含 id 与 category)。切勿上传代码。
  2. 获取用户测试焦点:若用户未说明要探测什么,主动询问。将焦点以 # Test Focus 追加到 description.md 并影响编写。若用户确实没有偏好,则广泛生成并说明。
  3. 编写场景:每个风险至少一个场景,围绕 description.md 与焦点写出约 10 个多样化场景,人设/情绪/情境的多样性由自身判断生成(此版本不附带属性库)。每个 risks.yaml 条目至少获得 1 个专用场景,使用真正能触发该风险的形态,并打上 covers: [<risk id>, …] 标签。写入 authored.yaml,用户指定的必测项也在此加入。
  4. 组装配置(强制覆盖):运行 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 场景文件。修复缺口并重跑直到通过。
  5. 运行:lk agent simulate --scenarios scenarios.yaml(用 --help 确认确切参数;需要 beta 说明中提到的 SDK/认证)。向用户展示结果,并提供重掷、重新聚焦或添加场景的选项。
  6. 回归复用:在提示词/模型/工具变更后重新运行已保存的 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 版本和仪表盘来自实时来源,会变化,应查阅而非猜测。
  • 本技能是方法本身,不附带库,多样性需自行提供。