评测与工程
测量端到端体验与故障恢复
从用户说完到实际起音直接计时,保留失败与超时的分母。
先做什么
端到端延迟要从同一话轮直接测量。将 ASR、LLM、TTS 的 p95 相加,通常得不到一通真实对话的 p95,因为各组件慢的请求未必是同一批。
理解这条链路
用户声学结束话轮提交模型与工具首个可播音频实际起音成功或失败归档
用统一事件定义体验
一轮的体验延迟=playout_start−user_acoustic_end。若没有播放回执,只能报告测到的代理指标,不能冒充实际起音。跨主机用同步时钟并估计误差,进程内时长用单调时钟。失败和未起音轮次保留为失败,不悄悄从延迟报表删除。
恢复策略也消耗预算
给整轮设置 deadline,再为外部请求分配剩余预算;对 429、连接故障与业务拒绝分类处理。重试次数、退避和 fallback 必须有上限。用户已取消或任务代次过期时,返回得再快也不得进入播放和业务提交。
按这个顺序操作
- 先写清什么是合格话轮、计时起止点和允许失败类型。
- 沿同一 trace 采集事件,检查跨主机时钟误差与缺失事件。
- 注入慢响应、429、工具回执丢失和取消,验证 deadline 与降级。
- 以所有合格话轮为分母报告成功率,另列成功话轮延迟及失败数量。
配套本地工具
以下工具位于 AI 学习工作区。先阅读对应说明,确认所需数据与依赖;本轮未重新运行这些实验。
- voice-sla-fault-bench/README.md
可直接复用的记录模板
eligible_turns = 所有符合定义的话轮 good_turns = 在目标时间内完成且无关键错误的话轮 SLI = good_turns / eligible_turns e2e_ms = playout_start - user_acoustic_end 缺失播放回执:标记 proxy_metric,不填伪造起音时间 SLO:业务目标;SLA:合同约定,二者单独记录。
做到什么程度才算通过
- 端到端分位数由逐轮总时长计算。
- 失败与未起音保留在质量分母。
- 时钟和代理指标的限制明确。
- 重试不会超过总预算或重复业务动作。
当前证据的限制
本地状态机没有真实网络和播放设备;本轮未测生产 SLO 或合同 SLA。
本轮确认的事实与来源
以下为公开资料支持的具体结论;操作流程和验收建议属于工程推导。仓库说明或厂商效果表述不等于独立实测。
[1] W3C · WebRTC Stats
W3C WebRTC Stats 将 jitter、jitterBufferDelay、concealedSamples 等定义为不同指标,不能把一个网络统计量当完整通话体验。
资料日期:2025-09-25 · 复核:2026-09-08
阅读原始来源 ↗[2] IETF RFC 9110 · HTTP Semantics
RFC 9110 对可自动重试的请求语义作出限制;工具产生副作用时,超时重试必须先处理幂等与结果未知。
资料日期:2022-06 · 复核:2026-09-08
阅读原始来源 ↗这次更新了什么
保留 SLA 故障注入的测量契约,移除合成毫秒数作为真实性能的展示。
合并前的内容入口
以下旧地址仍可访问,并会带你来到本篇。完整重构前材料已留存本地备份。
- research-hub/voice-agent-sla-fault-injection.html