Agent 这次成功了,下次还会吗?

Agent 在排练时成功了,现场演示却走了另一条路,然后失败。同样的任务,用户第一次请求成功,第二次可能失败。对财务对账、合同义务检查这类关键业务,这是无法接受的。大多数基准测试用平均值掩盖这种不稳定性。在 AppWorld 的 test_normal 上,一个由 GPT-4.1 驱动的 ReAct agent 五次重复运行的平均成功率为 77.4%,但只有 53.0% 的任务五次全部成功——一致性差距高达 24.4 个百分点,困难任务上更接近 30 个点

标准评估报告的是 Mean@k:跑 k 次后平均通过率。它回答“平均而言有多好”,却不回答用户真正关心的“同样的请求再来一次还成不成”。后者需要 Pass^k:k 次全部成功的任务占比。Pass^k 恒小于等于 Mean@k,而常见的 Pass@k 是另一个方向——只要 k 次中至少一次成功就算过,适合可验证、可重试的场景。作者建议把 Pass^k 与 Mean@k 一起报告。一致性差距即 Mean@k 减 Pass^k。

为什么同一任务会时而成功时而失败?因为模型每次决策都来自一个概率分布。分布如果尖锐,主导 token 明显胜出,结果就稳定;分布如果平坦,几个候选几乎并列,GPU 浮点非结合性、请求批处理等平台的微小扰动就可能改变胜出者。一条轨迹包含几十个决策点,单步翻转概率会复合放大,于是产生 24 个点的差距。即使在 temperature 0.0、固定种子的场景下问题依然存在,因为托管的推理端点上概率本身会漂移,贪婪解码只能处理分布到 token 的转换,无法改变分布是平坦的这一事实。

作者在 ALTK-Evolve 中加入了一类新的 consistency guidelines,由诊断工具 Consistency Analyzer 驱动。Consistency Analyzer 只需要一条已记录的轨迹:对每个决策步骤发一次额外的模型调用,请求 k=5 个 completions,在已记录的上下文里重放,而不是重新运行整个任务。检测是黑盒的,不需要 ground truth,不需要 logits 或额外插桩。每个决策步骤得到一致性分数,从而标出哪些决策点在下一次运行中有翻转风险,并自动变成指南注入回推理流程。示例指南包括:统计 checkbox 标记时用行锚定正则而不是简单计数;处理笔记查询时要确认多个匹配并核实正确笔记。这些点不是任务专属细节,而是在许多 AppWorld 任务上反复出现的高不确定性决策,而且它瞄准的是“这次可能侥幸做对、下次可能做错”的步骤。

AppWorld test_normal 的 168 个任务上,用 GPT-4.1 的 ReAct agent 从每个任务单条基线轨迹生成指南,再测试 5 次全新运行,一致性差距从 24.4 个百分点降到 12.0:Pass^5 从 53.0% 提升到 69.0%,Mean@5 从 77.4% 提升到 81.0%。近三分之一原本不一致的任务变成每次全对。按难度分层,Medium 提升 22.9 个点(相对 +44%),Hard 提升 14.3 个点(相对 +45%),Easy 提升 12.2 个点。平均准确率没有在任何难度级别下降。指南还能泛化到同一场景下的类似任务,Pass^5 提升 13.0 个点。换用更弱的 gpt-oss-120b 模型,same-task Pass^5 从 10.1% 提升到 16.1%,similar-task 提升反而达到 +8.7 个点,说明学到的失败模式确实在迁移,而不是记忆单条轨迹。

对要上线 Agent 的团队,作者给出的建议是:报告 Pass^k 时始终配上 Mean@k;难度越高的任务差距通常越大,单一平均值越有误导性;不要第一时间换更大的模型,一致性是独立于能力的轴;诊断成本很低,一条轨迹加每步一个调用即可,适合无法端到端回放的生产流量。完整的评估方法在 arXiv 技术报告中,开源仓库已经包含 Consistency Analyzer 和指南生成实现。

Your Agent Aced the Task. Will It Do It Again?

查看原文