Pass@k 与 Pass^k:如何衡量 Agent 的可靠性
这篇文章强调:评估 Agent 的生产可用性,不能只看 pass@k,还应重点关注 pass^k 所代表的一致性成功概率。两个指标的本质差异pass@k 衡量“k 次里至少一次成功”,天然偏乐观。pass^k 衡量“k 次全部成功”,更贴近连续任务场景。为什么生产环境更需要 pass^k用户体验依赖稳定连续成功,而非偶…
转载提示:本文转载自 原文。原作者:Philipp Schmid。原文发布日期:2025-03-24。本文已按站点规范移除推广/导流内容,仅保留核心观点、论证链路与示例。Pass@k 与 Pass^k:如何衡量 Agent 的可靠性 在生产环境里,Agent 的最大挑战通常不是“峰值表现”,而是“稳定性”。一个每三次就失败一次的客服 Agent,即使偶尔表现惊艳,也无法真正上线。 传统评测常使用 pass@k,它更偏乐观,容易掩盖系统在连续任务中的不稳定。要评估可用性,我们需要把视角从“是否至少成功一次”转向“能否持续成功”,这正是 pass^k 的价值。什么是 Pass@k? Pass@k 衡量的是:在 k 次独立尝试中,至少有一次成功的概率。它在代码生成等 benchmark 中很常见。 其公式为: $$\text{Pass@k} = 1 - \frac{\binom{n-c}{k}}{\binom{n}{k}}$$ 其中:n:总尝试次数c:成功次数$\binom{n}{k}$:组合数(n 选 k) 它反映的是“抽到至少一个正确解”的概率。什么是 Pass^k? Pass^k(读作 pass power k)衡量的是:系统在 k 次独立任务里全部成功的概率,更适合看一致性和可靠性。 公式是: $$\text{Pass}^k = \left(\frac{c}{n}\right)^k$$ 其中 $c/n$ 是单次成功率,再提升到 k 次连续成功的联合概率。真实例子:航班改签 Agent 假设一个客服 Agent 负责改签。用户请求: “我想把 7 月 15 日从伦敦飞纽约的航班改到 7 月 18 日,订单号 XYZ123。” 设该 Agent 单次成功率为 70%,令 k=3。 按 Pass@3: $$\text{Pass@3} = 1 - \frac{\binom{30}{3}}{\binom{100}{3}} \approx 0.97 \text{(97%)}$$ 看起来非常优秀,似乎三次机会几乎必成一次。 按 Pass^3: $$\text{Pass}^3 = \left(\frac{70}{100}\right)^3 = 0.343 \text{(34.3%)}$$ 这给出完全不同的结论:若连续处理三次改签,仅有 34.3% 的概率全部成功。对高并发客服场景而言,这意味着大量用户仍会落入人工兜底。结果与启示 这说明仅看 pass@k 不足以指导生产部署:用户体验:pass@k 可能掩盖连续流程中的失败密度,pass^k 更接近用户感知。资源规划:pass^k 可更准确估算人工升级比例,辅助排班与 SLA 设计。系统设计:若 pass^k 偏低,架构上应增加校验、重试、人工回路等机制。结论 pass@k 容易高估系统可用性,因为它强调“至少一次成功”。 pass^k 则强调“连续且稳定的成功”,更符合真实产品目标。对于要上线的 Agent,追求一致性应优先于追求最佳单次结果。
正在初始化 WebAssembly 引擎…
首次编译原生模块可能需要数秒
就绪后,页面交互将以接近原生的速度运行