τ-bench:评估 AI 代理在现实世界工具调用领域的可靠性
在花了数周时间追踪表格推理和 text-to-SQL 的发展脉络之后,我想放大视野并提出一个不同的问题:一旦将当前的 AI 代理置于与真实用户的实时操作循环中,它们的实际表现究竟如何?τ-bench 给出了我所见过的最诚实的答案,而这些数据令人警醒。
论文内容
来自普林斯顿大学和 Sierra Research 的 Yao、Shinn、Razavi 和 Narasimhan 发布了 τ-bench(arXiv:2406.12045,2024 年 6 月),填补了一个事后看来显而易见的空白:大多数 AI 代理基准测试只是交给模型一个任务,并孤立地评估其最终答案。真实的部署并非如此。客户服务代理会被打断、被要求回答后续问题、被提供矛盾的信息,并且在对数据库进行任何更改之前,被期望在开放式对话中始终执行业务策略。
τ-bench 将两个现实世界的客户服务领域(零售和航空)整合到一 个模拟框架中,其中一个语言模型扮演用户,另一个扮演代理。代理可以访问特定领域的 API(取消订单、更改座位、使用优惠券)以及一份规定在何种条件下允许执行何种操作的政策文档。评估过程不为中间步骤评分,而是将最终的数据库状态与标注的目标状态进行比较。作者还引入了 pass^k,这是一种可靠性指标,用于衡量代理在针对同一任务的 k 次独立尝试中始终成功的比例。
核心观点
- pass^k 作为真实的指标:单次的 pass@1 分数干扰过多。pass^k 揭示了代理在同一任务的 k 次重复运行中每一次都成功的概率 —— 这是衡量在生产环境中是否信任它的指标。
- 一致性断崖:零售领域中的 GPT-4o 在 pass@1 时得分为 0.604,但到 pass@4 时下降到 0.383。这意味着在约 60% 的任务中,它在四次尝试中至少失败了一次 —— 这很难称得上是生产级安全的代理。
- 航空领域比零售领域更难:GPT-4o 的 pass@1 从 0.604(零售)下降到 0.420(航空)。Claude 3.5 Sonnet(2024 年 10 月版)表现更好 —— pass@1 分别为零售 0.692 / 航空 0.460 —— 但其 pass@4 仍分别仅达到 0.462 和 0.225。
- 函数调用优于 ReAct:GPT-4o 的函数调用代理变体(航空领域的 pass@1 = 0.420)优于在相同底座上的 Act (0.365) 和 ReAct (0.325),这表明结构化的工具 API 减少了格式引起的失败。
- 用户模拟是一个变量:作者使用语言模型来模拟用户,这引入了其自身的方差。较弱的用户模拟器可能会降低或提高 代理的得分,这取决于它模拟对抗性用户行为的忠实程度。
- 数据库状态评估回避了部分分数的博弈:比较最终状态而非对话步骤意味着,如果一个代理执行了正确的操作但随后无意中将其撤销,它将得不到任何分数 —— 对于回写系统来说,这是一个正确的决策。
哪些经得起推敲,哪些不能
pass^k 的框架确实非常有用,我预计它会比这个特定的基准测试更持久。根据数据库状态而非标记(token)层面的相似性进行评估的决定是正确的 —— 它直接衡量代理是否完成了任务,而不是它是否说了正确的话。
然而,这些领域的设计相对狭窄。零售和航空在程序上是清晰的:政策文档是有限的且是为该基准测试编写的,API 很小且规格明确,用户模拟器默认是配合的。现实世界中的政策文档是模棱两可的;真实用户会撒谎、记错,并对拒绝表示反对。基准测试的作者承认了这一点 —— 作为后续研究的 τ²-bench (arXiv:2506.07982) 的存在本身就是一种承认,它扩展到了双控制的 Dec-POMDP 模型,其中用户也会操纵环境状态,这说明单一控制的评估低估了难度。
还有一个问题是 pass^k 到底测量了什么。如果用户模拟本身是随机的,那么 k 次试验中的方差就会将代理的不一致性与模拟器的不一致性混为一谈。论文注意到了这一点,但未能完全分离这两个方差来源。对于安全关键型应用,你会希望对失败进行归因 —— 代理是在无视政策、误读用户意图,还是仅仅选择了错 误的工具调用格式?
llm-stats.com 上的排行榜现在显示 Step-3.5-Flash 等模型的得分为 0.882,如果你没有注意到评估设置可能已经发生了偏移,这看起来像是巨大的进步:较新的条目似乎是在不同的用户模拟器版本以及可能的不同任务划分下评分的。在不断演变的基准测试中进行跨条目对比总是值得怀疑的。
为什么这对金融 AI 至关重要
我心目中的 Beancount 回写代理在结构上与 τ-bench 评估的代理完全相同:它有特定领域的工具(追加交易、更正余额、重新分类分录)、政策约束(不要修改已关闭的期间、不要创建负余额、遵循会计科目表),以及一个在可能跨越多个轮次的对话中用自然语言给出指示的用户。
pass^k 的发现对我们来说是最具操作性的结果。如果像 Claude 3.5 Sonnet 这样的顶尖模型在零售(一个相对宽容的领域)中仅实现了 0.462 的 pass@4,那么我们应该预期账本回写的一致性会类似或更差,因为账本回写中的错误会在交易中累积,且违反政策的行为可能不会立即显现。从一开始就为 k 次试验的一致性进行设计 —— 而不仅仅是优化 pass@1 就完事了 —— 改变了架构:它倾向于保守的工具使用(回写前询问,而不是回写后说明)、在任何 API 调用之前进行显式的政策检查步骤,以及在提交之前审计建议的数据库差异(diff)的独立验证代理。
数据库状态评估方法也可以直接移植。Beancount 的结构化文件格式使得在回写会话后将预期的账本状态与实际状态进行对比变得非常简单 ,从而为我们提供了与 τ-bench 使用的同类客观评估信号。
延伸阅读
- τ²-bench (arXiv:2506.07982):这是将环境扩展到用户也可以调用工具的双控制环境的后续研究;如果我们建模用户作为账本更正的积极参与者而非被动请求者,这具有直接的相关性。
- AgentEval / GAIA (arXiv:2311.12983):GAIA 基准测试评估通用 AI 助手在需要网页浏览和工具调用的现实任务中的表现;是 τ-bench 领域特定关注点的有用补充。
- WorkArena (arXiv:2403.07718):在 ServiceNow 中评估代理处理真实企业软件任务的能力;其领域比零售或航空更接近会计工作流,值得为了任务设计的经验教训而阅读。
