Industry & PracticeResearch & Benchmarks
τ - bench: 真实 世界 领域 中 工具 – 智能 体 – 用户 交互 基准
现有基准并不检验语言智能体与人类用户的交互,也不检验其遵循特定领域规则的能力,而这两者对于把它们部署到真实世界应用都至关重要。我们提出 τ-bench,这一基准模拟用户(由语言模型模拟)与语言智能体之间的动态对话;该智能体配备领域专用的 A
In this piece
τ-bench:真实世界领域中工具–智能体–用户交互基准(中文全译)
翻译说明:本文是 arXiv 论文 τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains(arXiv:2406.12045)的中文全译,由智测团队翻译。原作者:Shunyu Yao、Noah Shinn、Pedram Razavi、Karthik Narasimhan。原文以 CC BY 4.0 许可发布。译文保留原文全部章节、数据与结论;参考文献列表从略。
原作者:Shunyu Yao†、Noah Shinn、Pedram Razavi、Karthik Narasimhan 单位:Sierra 版本:arXiv:2406.12045v1 [cs.AI],2024 年 6 月 17 日 代码与数据:https://github.com/sierra-research/tau-bench
† 工作完成于实习期间。
说明:抓取到的源文件在「致谢」之后没有附录正文。网页目录中列出了附录 A(补充结果)、附录 B(基准构建)、附录 C(零售示例)、附录 D(航空示例)以及参考文献,但源文件只保留这些标题,没有对应正文。为避免编造案例、轨迹与数据,下列译文只覆盖源文件中实际存在的正文;参考文献从略,附录未译。图 3–图 6 在源文件中只有图题,没有可读的坐标点或扇区数值,凡正文未给出的图形细项均不补写。
摘要
现有基准并不检验语言智能体与人类用户的交互,也不检验其遵循特定领域规则的能力,而这两者对于把它们部署到真实世界应用都至关重要。我们提出 τ-bench,这一基准模拟用户(由语言模型模拟)与语言智能体之间的动态对话;该智能体配备领域专用的 API 工具与政策指南。我们采用一种高效且忠实的评测过程,把一次对话结束时的数据库状态与标注的目标状态相比较。我们还提出一项新指标(pass^k),用于在多次试验上评测智能体行为的可靠性。实验表明,即便是最先进的函数调用智能体(如 gpt-4o),任务成功率也低于 50%,并且相当不一致(零售领域中 pass^8 < 25%)。我们的发现指出,需要能够提升智能体一致行动、并可靠遵循规则之能力的方法。
1 引言
围绕语言智能体 [20, 24, 18, 1] 在各行业实现新一层自动化的潜力,人们的兴奋与日俱增。然而,要把它们部署到真实世界系统中,必须满足若干关键要求。智能体必须:(1)在长时程上与人类以及程序化 API 无缝交互,从而逐步收集信息并消解意图;(2)准确遵守某项任务或某个领域所特有的复杂政策与规则;(3)在规模上保持一致性与可靠性,覆盖数以百万计的交互。例如,考虑一名航空订票智能体(图 1)。当用户希望把航班预订改到另一个目的地机场时,智能体需要通过与用户交互来收集所需信息,依据所提供的指南检查航空公司政策,并利用复杂的预订 API 查找新航班,且在可能时为用户重新订票。此外,面对提出相同请求的不同类型用户,智能体的行为应当一致,并对对话流程中不应影响最终结果的微小变化保持稳健。
在智能体评测中刻画真实的人类交互与规则遵循,对于在开放环境中开发并部署可信智能体至关重要,也有助于有条不紊地应对长上下文推理与规划等挑战。面向语言智能体的现有基准 [27, 29, 12, 14, 16] 常常采用简化的指令遵循设定:在事先给定全部信息的条件下,智能体自主地与环境(网页、代码终端或 API)交互,既没有人在回路中的交互,也不需要查阅任何领域专用指南。
图 1:(a)在 τ-bench 中,智能体与数据库 API 工具以及由语言模型模拟的用户交互,以完成任务。该基准检验智能体的如下能力:通过多次交互,汇集并传达来自用户、也面向用户的全部所需信息;在遵循领域专用政策文档所载指南的同时,即时解决复杂问题。(b)τ-airline 中的一条示例轨迹:智能体需要依据领域政策拒绝用户请求(更改一张基础经济舱机票),并提出新的解决方案(取消并重新预订)。这挑战智能体在复杂数据库、规则与用户意图之上做长上下文零样本推理。
在本工作中,我们引入 τ-bench(Tool-Agent-User Interaction Benchmark,工具–智能体–用户交互基准的简称),用以衡量智能体在遵循领域专用政策的同时,以一致方式与(模拟的)人类用户及程序化 API 交互的能力。τ-bench 构建在一个模块化框架之上,包含:(1)真实的数据库与 API;(2)领域专用的政策文档;(3)面向多样用户情景的指令,以及对应的地面真值标注。作为首次演示,我们聚焦客户服务这一范畴,并创建两个不同领域,智能体需要协助模拟用户处理多样请求(τ-retail 与 τ-airline)。我们利用语言模型(LM)的生成能力来创建数据并模拟真实人类用户 [15],并与人工标注和核验相结合。
我们分三个阶段构建 τ-bench,包括人工设计模式与 API、由语言模型协助生成数据条目,以及为用户模拟器人工生成并核验情景。我们的评测方案把每一回合结束时的数据库状态与地面真值所期望的状态相比较。这样可以客观衡量智能体的决策,同时为对话本身的随机变化留出空间,因为用户可能以不同方式提出同一请求,而这些方式导致相同的数据库终态。我们还引入 pass^k 这一指标,它衡量智能体在 k 次独立同分布(i.i.d.)试验上的一致性与稳健性。
实验表明,用简单语言模型构造(如函数调用或 ReAct)搭建的智能体表现不佳,这凸显出需要更精致的智能体架构。例如,即便是 gpt-4o 这类最先进的语言模型,使用函数调用时的任务成功率(pass^1)仍然较低:在 τ-retail 上约为 61%,在 τ-airline 上约为 35%。随着 k 增大,稳定解决同一任务的机会迅速下降;对同一模型而言,τ-retail 上的 pass^8 低至约 25%。这表明,此类智能体在处理随机性与部分信息时十分脆弱,而这在人机交互中十分常见。在分析失败案例后,我们发现当前智能体难以在数据库上做复杂推理,难以理解并遵循专门规定的政策,也难以处理复合请求(不止一项)。我们希望 τ-bench 能够支撑对更一致、更有能力的智能体的评测与开发,使其胜任涉及人类交互的真实世界数字任务。
2 相关工作
面向智能体与面向任务的对话系统,现有基准大多只评测对话能力或工具使用能力二者之一。τ-bench 旨在把二者统一到真实设定之下,同时检验智能体能否以一致方式遵循领域专用政策。
面向语言智能体与工具使用的基准。 已有若干基准用于评测由语言模型驱动的智能体 [27, 29, 12, 14, 16]。近期工作特别聚焦于评测语言模型的工具使用能力,即从一组 API 函数中生成正确函数调用的能力。Berkeley Function Calling Leaderboard(BFCL)[23]、ToolBench [22] 与 MetaTool [11] 等项目在多种编程语言中测试工具使用/函数调用,并提出多种方法来评测函数调用的准确性。ToolEmu [16] 用语言模型自身来模拟工具的执行,重点在于暴露语言模型智能体未能正确使用工具时可能带来的安全风险。然而,这些工作都只包含单步用户交互:与智能体交互的人类在初始指令中提供全部所需信息。相比之下,我们的基准聚焦更真实的设定:智能体必须与人类用户交互,以收集信息并获得授权。
面向任务的对话。 面向任务的对话长期是自然语言处理中的挑战,多年来已有多项工作构建领域专用的离线数据集或用户模拟器。前一类基准是静态的,只在预先收集的对话轨迹上测试对话智能体 [4, 3, 2]。后一类要么依赖基于规则或符号规约的用户模拟器 [17, 8],要么通过众包平台与真实人类进行测试 [9]。一些很新的工作探索把语言模型用作回复评分器来训练对话系统 [10],或评测其模拟用户的能力 [7]。τ-bench 利用最先进语言模型强大的文本生成能力,借助文本情景描述来模拟真实的用户话语与长上下文对话,目标是评测智能体。从语言模型中随机抽样,使得在完全相同的情景下重新运行时,对话仍能产生多样而又忠实的变化——正如我们在第 5.1 节所示,这对测试智能体一致性极为有用。
用语言模型做用户模拟。 我们的工作也与近期把语言模型用作人类角色模拟器的努力相关。这包括:在文字冒险游戏中模拟非玩家角色(NPC)的论文 [13],在类人社会中模拟多个智能体 [15] 或特定协作任务 [21],以及为人在回路的交互提供支持,例如网购 [6] 或网页搜索 [28]。然而,这些既往工作都没有用此类模拟器来衡量智能体的可靠性,而是着重展示语言模型促成真实模拟的能力。我们使用这种真实的用户模拟,以便准确评估人工智能智能体的可靠性与稳健性,从而判断其能否部署到承担数以百万计真实人类交互的系统之中。
3 τ-bench:面向工具–智能体–用户交互的基准
τ-bench 中的每一项任务都可以表述为部分可观察马尔可夫决策过程(POMDP)\((\mathcal{S},\mathcal{A},\mathcal{O},\mathcal{T},\mathcal{R},\mathcal{U})\),其中 \(\mathcal{S}\) 为状态空间,\(\mathcal{A}\) 为动作空间,\(\mathcal{O}\) 为观测空间,转移函数为 \(\mathcal{T}:\mathcal{S}\times\mathcal{A}\to\mathcal{S}\times\mathcal{O}\),奖励函数为 \(\mathcal{R}:\mathcal{S}\to[0,1]\),\(\mathcal{U}\) 为指令空间。智能体同时与(1)经由 API 工具访问的数据库(\(db\))以及(2)一名(模拟)用户(\(user\))交互以完成任务,即 \(\mathcal{S}=\mathcal{S}_{db}\otimes\mathcal{S}_{user}\),\(\mathcal{A}=\mathcal{A}_{db}\cup\mathcal{A}_{user}\),\(\mathcal{O}=\mathcal{O}_{db}\cup\mathcal{O}_{user}\)。此外,智能体还会得到一份领域专用政策文档,其中包含它必须遵守的规则——可以把这份文档看作对该领域世界模型的部分描述。下面更详细地说明每个组成部分。
数据库与 API。 每个 τ-bench 领域都有若干数据库及与之关联的 API。数据库的内容构成状态 \(s_{db}\)(图 2(b)),对智能体和用户都是隐藏的,只能通过 API 动作 \(a_{db}\) 读取或写入;这些动作通常形如 tool_name(**kwargs)。当一个动作在数据库上执行时,转移 \(\mathcal{T}_{db}:(s_{db},a_{db})\mapsto(s'_{db},o_{db})\) 是确定性的,并实现为一个 Python 函数(图 2(b))。
领域政策。 每个领域都有一份政策(图 2(d)),向智能体说明领域数据库、任务流程,以及它在交互中必须遵守的限制。有些限制被实现为 API 中的检查,例如使用不在用户资料中的支付 ID 会导致 \(o_{db}=\) “Error: payment not found”;另一些则没有。例如,航空政策按不同会员身份与舱位等级规定不同的行李额度,但智能体需要在 book_reservation API 中自行填入应付费的行李件数,这类似于赋予真实世界智能体的自由度。
用户模拟。 我们使用语言模型(gpt-4-0613)来模拟与智能体交互的人类用户。用户状态 \(s_{user}\) 由带有任务指令的初始系统提示(图 2(d))以及到目前为止用户与智能体之间的全部对话历史组成。用户看不到智能体与 API 工具之间的交互历史。智能体可以用任意自然语言消息与用户交互,例如 \(a_{user}\) 可以是 “Your reservation has been updated, is there anything else I can help with?”(您的预订已更新,还有什么我可以帮忙的吗?)。转移 \(\mathcal{T}_{user}:(s_{user},a_{user})\mapsto(s'_{user},o_{user})\) 是随机的:它把智能体的消息附加到聊天历史上,再从语言模型中抽样一条新的用户消息。例如,\(o_{user}\) 随后可以是 “Yes, I also want to cancel another flight.”(是的,我还想取消另一趟航班。)。当用户发出 \(o_{user}=\) “###STOP###” 时,该回合结束,并对智能体进行评测。
(a)τ-retail 中的一条订单数据库记录:
{"order_id": "#W2890441",
"user_id": "mei_davis_8935",
"items": [{
"name": "Water Bottle",
"product_id": "8310926033",
"item_id": "2366567022",
"price": 54.04,
"options": {
"capacity": "1000ml",
"material": "stainless steel",
"color": "blue"
}}, …], …}(b)τ-retail 中的 API 工具:
def return_delivered_order_items(
order_id: str,
item_ids: List[str],
payment_method_id: str,
) -> str: …
def exchange_delivered_order_items(
order_id: str,
item_ids: List[str],
new_item_ids: List[str],
payment_method_id: str,
) -> str: …(c)τ-retail 中的领域政策节选(原文保留,译文如下):
## Return delivered order
- After user confirmation, the order status will be changed to ’return requested’…
## Exchange delivered order
- An order can only be exchanged if its status is ’delivered’…中文:退回已送达订单——经用户确认后,订单状态将改为 “return requested”(已申请退货)……。换货已送达订单——仅当订单状态为 “delivered”(已送达)时,该订单才可以换货……。
(d)用户指令保证只有一种可能结果。原文 JSON 如下,自然语句的中文在代码之后:
{"instruction": "You are Mei Davis in 80217. You want to return the water bottle, and exchange the pet bed and office chair to the cheapest version. Mention the two things together. If you can only do one of the two things, you prefer to do whatever saves you most money, but you want to know the money you can save in both ways. You are in debt and sad today, but very brief.",
"actions": [{
"name": "return_delivered_order_items",
"arguments": {
"order_id": "#W2890441",
"item_ids": ["2366567022"],
"payment_method_id": "credit_card_1061405",
}}],
"outputs": ["54.04", "41.64"]}指令中文:你是邮政编码 80217 的 Mei Davis。你想退回水瓶,并把宠物床和办公椅换成最便宜的版本。把这两件事一起提出。如果两件事只能做一件,你更愿意做能为你省最多钱的那一件,但你想知道两种做法各自能省下多少钱。你负债,而且今天心情不好,但说话非常简短。
图 2:τ-bench 以模块化方式构建,包含若干组成部分:(a)JSON 数据库,(b)Python API 工具,(c)Markdown 领域政策,(d)JSON 任务实例。智能体只能访问 API 工具和领域政策,并经由 API 工具间接访问数据库。任务标注对智能体不可见,只用于用户模拟与评测。
任务实例。 如图 2(d) 所示,每个 τ-bench 任务实例有两部分:给用户模拟用的指令(对智能体隐藏),以及对地面真值数据库写动作的标注(以及可选的、针对用户问题的地面真值输出)。该指令设定用户身份、意图与偏好,其方式保证在领域政策下只有一种可能结果。每个任务回合由模拟用户以一项请求开始;智能体以对话方式处理该请求,可以在任意时刻调用工具,并参阅所提供的政策。回合结束后,用数据库状态以及智能体发给用户的消息来计算奖励。
奖励。 一个任务回合的奖励 \(r=r_{\text{action}}\times r_{\text{output}}\in\{0,1\}\) 基于两点:(1)最终数据库是否与唯一的地面真值结果数据库相同(\(r_{\text{action}}\));(2)智能体对用户的回复是否包含全部必要信息(\(r_{\text{output}}\))。因此,对于图 2(d) 的任务,智能体与用户的对话可以有所变化,智能体也可以调用各种(读)动作,但智能体成功的条件是:唯一的数据库写动作是 return_delivered_order_items(order_id="#W2890441", item_ids=["2366567022"], payment_method_id="credit_card_1061405"),并且给用户的回复把 “54.04”、“41.64” 作为子串包含在内。需要注意,\(r=1\) 可能是回合成功的必要条件而非充分条件。例如,智能体可能在没有得到用户明确确认的情况下就办理退货,从而违反政策。尽管如此,我们提出的基于规则的奖励计算快速且忠实,并且如第 5 节所示,已经对当前模型与方法构成显著挑战。
pass^k 指标。 对于代码生成这类具备良好核验技术(单元测试)的任务,社区把 pass@k(k 次中至少通过一次)定义为:k 次独立同分布的任务试验中至少有一次成功的概率。它刻画的是:随着推理时计算规模增大,智能体发现解的趋势 [5]。对于客户服务这类要求可靠性与一致性的真实世界智能体任务,我们提出一项新指标——pass^k(pass 帽 k),定义为全部 k 次独立同分布任务试验都成功的概率,并在任务上取平均。因此,若一项任务运行 n 次试验,其中 c 次最终成功(\(r=1\)),则 pass^k 与 pass@k 的无偏估计为:
\[ \mathrm{pass}^{k}=\mathbb{E}_{\mathrm{task}}\left[\binom{c}{k}\middle/\binom{n}{k}\right],\quad \mathrm{pass@}k=1-\mathbb{E}_{\mathrm{task}}\left[\binom{n-c}{k}\middle/\binom{n}{k}\right]. \]
在我们的设定中,对同一任务而言,用户提示与数据库转移是相同的,仅仅是语言模型对用户消息与智能体消息的抽样就产生了足够的随机性。因此,pass^k 可以刻画智能体在如下方面的可靠性:在底层语义相同的对话变化中加以处理,同时遵守领域政策与规则。默认情况下,我们报告跨任务的平均奖励 \(\mathrm{pass}^{1}=\mathrm{pass@}1=\mathbb{E}[r]=\mathbb{E}[c/n]\),作为比较智能体的主要指标。
4 基准构建
τ-bench 定义了与领域无关的环境类和用户模拟类,由各个领域共享;领域专用数据则表现为数据库 JSON 文件、数据库 API 的 Python 代码与文档、领域政策文本,以及任务实例。每个领域都以三阶段方式创建,混合使用语言模型与代码运行,以及人工标注与检查。
阶段 I:人工设计数据库模式、API 与政策。 我们从协同设计尽可能简单的数据库模式、API 与政策开始,灵感(以及简化)来自它们在真实世界中的对应物。简单性对于各组成部分之间的逻辑一致性,以及 API 与任务标注的易用性都很重要。尽管如此,一个最低限度真实的领域仍至少需要数十个模式、API 与规则,而且事实证明,这对现有智能体已经足够有挑战。更多内容见第 B.1 节(该节正文未收录于本源文件)。
阶段 II:用语言模型自动生成数据。 数据模式设定之后,我们创建一条示例记录,并使用 gpt-4 生成一段系统性的代码片段,以抽样可扩展的记录,再人工打磨代码中的小错误。示例片段与更多细节见第 B.2 节(该节正文未收录于本源文件)。
阶段 III:借助智能体运行进行人工任务标注与验证。 这里的关键挑战是确保用户指令导致唯一的数据库结果。例如,如果没有指定首选支付方式,用户的回答可能不同,从而使各次试验的最终数据库互不相同。因此,我们先写一条初始用户指令,用 gpt-4-turbo 函数调用智能体跑一次试验,通过检查轨迹来打磨用户指令,并迭代这一过程,直到我们确信不存在歧义(见第 A 节图 7;该图未收录于本源文件。文中说明:我们对每个 τ-retail 任务运行超过 40 次 gpt-4-turbo 试验,并检查成功率为零或很低的全部任务)。我们可以复制并编辑智能体的动作与输出,用作地面真值标注,这比从零开始标注更容易。
在实践中,我们可能在数据或任务创建期间更新数据库模式或政策的细小细节,但这三个阶段大体是线性的,所构建的数据以模块化结构组织。
4.1 领域
使用上述流程,我们模块化地构建了两个领域:τ-retail 与 τ-airline。我们选择这两个领域,是因为它们相对容易合成数据(例如商品、价格、航班)并依据常识制定政策(例如商品退货、行李额度),能够支持多样任务,并且贴近真实世界应用。对于未来能力更强的智能体,可以研究数据与规则更复杂的更高级领域(例如医疗、税务或法律)。下面简要描述两个领域的领域政策(领域的完整细节见第 B.1 节,该节正文未收录于本源文件)。
| τ-retail | τ-airline | |
|---|---|---|
| 数据库 | 500 名用户,50 种商品,1,000 笔订单 | 500 名用户,300 个航班,2,000 笔预订 |
| API 工具 | 7 个写工具,8 个非写工具 | 6 个写工具,7 个非写工具 |
| 任务 | 115 | 50 |
表 1:τ-retail 与 τ-airline 的关键统计。
τ-retail。 在这一领域中,智能体的任务是帮助用户取消或修改待处理订单,退回或更换已送达订单,修改用户地址,或提供信息。每一种商品(例如图 2(b) 中的 “Water Bottle”(水瓶))有多种带唯一 ID 的商品项选项(例如 1000ml、不锈钢、蓝色)。每笔待处理订单只能取消或修改一次,每笔已送达订单只能退回或更换一次。一个商品项不能被修改或更换为另一种商品类型。这些约束简化了任务与 API 设计,并挑战智能体遵循领域专用规则,以及在采取动作之前告知用户并收集完整信息。
τ-airline。 在这里,智能体必须帮助用户预订、修改或取消航班预订,或提供退款。我们构建了 20 个美国城市之间的 300 个航班,其时长与价格是真实的,并提供 API 工具来查询直飞或一次中转航班。该领域政策比 τ-retail 更复杂,带有关于组合支付方式、托运行李额度、航班更改与取消等的专门约束。这些约束还可以按会员等级与舱位等级而专门规定,从而为智能体制造有挑战性的多跳推理难题。
4.2 关键特征
真实的对话与工具使用。 与先前面向任务的对话基准相比,得益于语言模型的进展,τ-bench 拥有更复杂的数据库和更真实的用户模拟。部分轨迹可见第 C.2 节与第 D.2 节(这两节正文未收录于本源文件)。值得注意的是,即便用户指令是合成的,经由语言模型生成的用户话语也是开放式的,并且听起来自然。
开放式且多样的任务。 每个 τ-bench 领域的数据模式、API 与规则都相对真实世界领域做了简化,但它们丰富到足以支持创建极其多样、开放式、有时颇具创造性的任务(见第 A 节、第 C.2 节、第 D.2 节;这些节的正文未收录于本源文件)。重要的是,我们以数量换质量——正如第 5 节所示,把一小组高质量任务运行多次试验(配合 pass^k 指标),就能够可靠地揭示不同模型、方法与研究挑战的丰富洞见。
忠实的基于规则的评测。 真实世界智能体难以评测,因为同一任务的轨迹可以极其多样,成功标准也是多面的。因此,它常常需要人工评测,例如由终端用户判断任务是否解决,由领域专家判断是否遵循规则。在 τ-bench 中,我们用缓慢、仔细的任务标注,换取快速、忠实的评测。通过确保依据领域政策与用户愿望只有一种数据库结果是可能的,主观且有噪声的人类判断就可以被简单、客观的数据库状态比较所取代。
模块化扩展。 τ-bench 的代码库结构是模块化的,很容易向 τ-bench 添加新领域,或添加、更新数据库记录、领域功能、规则、API、任务与评测指标(只要它们与既有领域数据一致)。我们公开释放代码库,以鼓励社区为 τ-bench 创建新任务与新领域。
5 实验
模型。 我们通过 API 测试多种最先进的专有与开放语言模型,用作智能体:OpenAI GPT API(gpt-4o、gpt-4-turbo、gpt-4-32k、gpt-3.5-turbo),Anthropic Claude API(claude-3-opus、claude-3-sonnet、claude-3-haiku),Google Gemini API(gemini-1.5-pro-latest、gemini-1.5-flash-latest),Mistral API(mistral-large、open-mixtral-8x22b),AnyScale API(meta-llama-3-70B-instruct)。只有最后两个模型公开释放权重。由于该基准的难度,我们不测试小模型(7B/13B)。
方法。 我们构建智能体的主要方法是函数调用(FC),除 Llama-3 之外,所有被测语言模型都原生支持函数调用。在 FC 模式下,模型的系统提示被设为领域政策;在每一轮,模型自主决定生成一条面向用户的回复消息,或一次工具调用。我们还测试文本格式的 ReAct [26] 及其仅行动(Act)消融:模型被指示以零样本方式生成 “Thought: {some reasoning} Action: {some JSON format action argument}”(思考:{若干推理} 行动:{某种 JSON 格式的动作参数}),或只生成行动部分。值得注意的是,有些智能体方法不适合用户在回路中的设定。例如,自我反思 [19] 不现实,因为真实世界智能体只有一次机会服务用户;规划方法 [25] 可能太慢,无法实时帮助用户。
我们把每个任务限制为至多 30 个智能体动作(工具调用或用户回复)。对于主要结果(表 2),我们每个任务至少运行 3 次试验。智能体的语言模型温度为 0.0,用户为 1.0。
5.1 主要结果
| 模型 | retail | airline | avg |
|---|---|---|---|
| gpt-4o | 61.2 | 35.2 | 48.2 |
| gpt-4-turbo | 57.7 | 32.4 | 45.1 |
| gpt-4-32k | 56.5 | 33.0 | 44.8 |
| gpt-3.5-turbo | 20.0 | 10.8 | 15.4 |
| claude-3-opus | 44.2 | 34.7 | 39.5 |
| claude-3-sonnet | 26.3 | 27.6 | 27.0 |
| claude-3-haiku | 19.0 | 14.4 | 16.7 |
| gemini-1.5-pro | 21.7 | 14.0 | 17.9 |
| gemini-1.5-flash | 17.4 | 26.0 | 21.7 |
| mistral-large | 30.7 | 22.4 | 26.6 |
| mixtral-8x22b | 17.7 | 31.6 | 24.7 |
| meta-llama-3-70B | 14.8 | 14.4 | 14.6 |
表 2:各模型经由函数调用得到的 pass^1,Llama-3 除外,它经由文本 ReAct。平均值按领域加权,而不是按任务加权。
图 3:τ-retail 中各模型/方法的 pass^1。源文件只有图题,没有各柱数值。
图 4:τ-retail 中的 pass^k(实线)与 pass@k(点线)。源文件只有图题,没有各点数值。
模型比较。 从表 2 可以看到,gpt-4o 是函数调用下最好的模型,各模型之间的表现谱系很宽。值得注意的是,最先进的开放权重模型(llama-3-70b 与 mistral-8x22b)相对于最先进的专有模型(gpt-4o、claude-3-opus)仍有显著差距需要弥补。所有模型都远未解决 τ-bench,尤其是更具挑战的 τ-airline:即便 gpt-4o 也只解决 35.2% 的任务。模型表现的多样性(见表 2)与任务难度的多样性(见第 A 节图 7,该图未收录于本源文件),以及距离完美解决仍然很大的剩余差距,使 τ-bench 适合作为基准来评测并开发面向智能体、工具使用与对话的新模型。
方法比较。 图 3 表明,在最先进模型上,原生支持的函数调用始终优于文本格式的智能体方法。对于文本格式的智能体方法,加入推理轨迹仍然始终有帮助(比较 ReAct 与 Act 两列),因为它有助于弥合观测与格式陌生的动作之间的缺口。我们也试验过为函数调用智能体增加一个 “think” 函数,但它没有提升表现,或许是因为大多数函数调用模型并未针对此类推理接受训练。
经由 pass^k 看智能体一致性。 如图 4 所示,随着试验次数 k 增加,可靠且一致地多次解决同一任务的机会显著下降。即便是表现最好的 gpt-4o 函数调用智能体,其平均任务成功率高于 60%,pass^8 也下降到低于 25%。在真实世界情景中,重要且有挑战的不仅是构建平均成功率高(pass^1)的智能体,还要使其更具稳健性与一致性(pass^k 的趋势)。
成本分析。 当我们在 τ-retail 上把 gpt-4o 函数调用智能体与 gpt-4 用户模拟配对时,智能体/用户模拟的成本分别为每任务 0.38 美元/0.23 美元,因此每个任务运行一次试验的成本约为 200 美元。对智能体而言,输入提示/补全输出分别占价格的 95.9%/4.1%,因此成本主要来自很长的系统提示(领域政策 + 函数定义)。
5.2 研究挑战分析
在本小节中,我们从定量与定性两方面分析 τ-bench 的挑战,重点放在 τ-retail 划分以及最先进的基线:gpt-4o 函数调用智能体。
图 5:τ-retail 中 36 条失败的 gpt-4o 函数调用智能体轨迹的分解。源文件只有图题;下文给出正文中的比例,不补写图中未写出的细项。
失败分解。 我们在 τ-retail 中抽样 115 条 gpt-4o 函数调用智能体轨迹(每个任务 1 次试验),其中 40 个任务失败(pass^1 = 65.2%;源文 HTML 排版写作 pass^11,按 115 个任务中 40 个失败、成功率 65.2% 还原)。经人工检查这些失败后,其中 4 个由用户指令的笔误或歧义造成(随后已修复),其余 36 个失败案例是智能体的问题,下面以及图 5 中作了更细的分解。
失败 1:提供了错误的参数或信息——复杂数据库推理的挑战。 对于 “错误参数”,gpt-4o 函数调用智能体通常做出类型正确的工具调用,但把一个或多个参数填错。在第 C.2.2 节所示的例子中(该节正文未收录于本源文件),用户想把一盏灯换成不那么亮的,并且相对于电池或 USB 电源,更偏好交流适配器。智能体未能在复杂的灯具库存上推理,并找出给定该偏好下的唯一选项。更弱的模型与方法甚至在更基本的失败上挣扎,例如幻觉出参数——举例来说,gpt-4o 函数调用智能体在每个 τ-retail 任务上只做出 0.46 次使用不存在的用户/商品/订单/商品项 ID 的工具调用,而 gpt-3.5-turbo 的函数调用/仅行动智能体分别做出 2.08/6.34 次。
对于 “错误信息”,智能体遗漏用户所要求的信息(例如用户索要追踪 ID,但智能体没有提供),或计算出错误信息(例如错误的总价),或向用户提供不正确的信息,导致用户请求偏离(例如用户可能依据智能体提供的错误价格信息来取消或换货)。这些失败约占全部失败的 55%(源文排版为 “5̃5%”,按 “~55%” 理解),并凸显出未来模型需要在复杂数据库与用户意图之上改进常识推理与数值推理。
失败 2:不正确的决策——领域理解与规则遵循的挑战。 上述失败即使不参阅领域政策也能识别出来,而 “错误决策” 失败(占全部失败的 25%)则发生在智能体未能理解领域专用知识或规则、从而做出类型错误的工具调用之时。在第 C.2.1 节的例子中(该节正文未收录于本源文件),用户想更换 “一两件物品”;根据领域政策,“换货或修改订单工具只能调用一次。务必在做出工具调用之前,把所有待更换物品收集进一个列表”。然而,gpt-4o 函数调用智能体忽略了这一领域知识与规则,决定先更换一件物品,导致第二件物品没有被更换。
| τ-retail | τ-airline | |
|---|---|---|
| gpt-4o | 61.2 → 56.8 | 33.2 → 10.8 |
| gpt-3.5 | 20.0 → 14.5 | 10.8 → 9.6 |
表 3:当领域政策不提供在智能体的系统提示中时,pass^1 分数下降。
为进一步理解不同智能体如何在不同领域中遵循规则,我们做了一项消融研究:从函数调用智能体的系统提示中移除领域政策。如表 3 所示,在规则更简单、更接近常识的 τ-retail 中,gpt-4o 与 gpt-3.5-turbo 智能体的 pass^1 只分别下降 4.4% 与 5.5%。这表明,它们的成功案例大多源于以直觉和常识的方式使用工具,而且它们可能并没有在可能的程度上真正利用政策文档。在规则更复杂、更专门(例如行李额度随会员等级与舱位而变化)的 τ-airline 中,移除政策对 gpt-4o 伤害显著(−22.4%),但对 gpt-3.5-turbo 只有轻微伤害(−1.2%)。这表明前者有时会遵循规则,而后者不具备处理复杂航空规则的能力。总体而言,τ-bench 对函数调用智能体提出了显著挑战,要求它们遵循复杂的领域动态与规则,并表明这一方向仍有工作要做。领域专用微调或智能体代码脚手架或许能提供某种补救,这可以是重要的未来工作。
图 6:数据库写操作更多的零售任务更难。源文件只有图题,没有各点数值。
失败 3:复合请求只得到部分解决。 最后,如图 6 所示,当一项任务涉及许多用户请求(以对数据库的地面真值写动作数量表示)时,它对函数调用智能体变得更具挑战(占案例的 19%)。有时智能体在对话一开始就遗漏明确的用户请求,这暗示需要更好的长上下文与记忆能力。另一些时候,智能体遗漏隐含动作,例如第 C.2.3 节(该节正文未收录于本源文件):用户想修正所有订单中的错误地址,但智能体只检查了一笔订单就停止。智能体需要在处理此类情形时改进其一致性与系统性。
6 讨论
我们提出了 τ-bench,这是一个新颖的基准,用于在动态且真实的设定中评测智能体与人类及工具交互时的可靠性。该基准利用语言模型的最新进展来模拟用户,允许对智能体做自动化测试,并评估智能体以一致方式遵循领域专用规则的能力。我们的结果表明,即便是最先进的语言模型,也远未可靠到可以用于真实世界设定。
改进方向。 尽管 τ-bench 是朝着在真实世界情景中动态评测智能体迈出的一步,仍有若干改进方向。模拟用户可能有一些局限:(1)用户指令可能包含笔误或歧义,标注者可以检查并修复;(2)用户指令可能不包含全部领域知识,例如在第 C.2.1 节中,用户在不知道智能体只能发出一次换货动作的情况下,授权了单件换货,这反映了真实世界中的用户——他们(理所当然地)并不了解复杂的领域政策;或者(3)用户模拟语言模型在推理、计算、长上下文记忆,或与指令提示的对齐方面能力有限,例如在第 C.2.2 节中,用户授权了智能体推荐的灯,而没有再次核对其特性。这些都可以在未来工作中改进,但也可以论证:这恰恰指示了真实世界——用户的技能与知识范围很宽,而应对多样用户的责任在智能体一方。
此外,还可以向模拟器加入更系统的检查,以确保结果唯一。领域政策也可以做得更复杂,以匹配真实世界情景。可以增加更多评测指标来定义智能体成功(例如用语言模型检查某些规则是否被遵守)。该基准的人工标注过程很难,需要对领域与智能体能力都有深入理解。任务策划过程中也存在某种隐性偏差,因为我们使用 gpt-4-turbo 函数调用智能体来调节用户的系统提示。未来工作可以研究使用语言模型改进数据策划与用户模拟的其他方式。最后,虽然我们不认为本工作直接具有潜在的负面社会影响,但它有助于真实世界智能体,而这些智能体在未来可能对经济与社会产生各种后果。
对智能体的挑战
归根结底,我们实验的主要结果说明了一个关键事实:建立在语言模型函数调用之上的智能体,缺乏足够的一致性与规则遵循能力,因而无法可靠地构建真实世界应用。解决这两个问题,可能对自动化若干真实世界任务、并确保更顺畅的人在回路交互产生超乎寻常的影响。智能体中其他有待改进的具体特性包括:长时程的信息跟踪与记忆,以及在当前决策中聚焦上下文里正确信息片段的能力,尤其是在可能存在相互冲突的事实之时。
致谢
我们感谢 Clay Bavor、Honghua Dong 与 Yangjun Ruan 对论文早期稿件的反馈,并感谢 Nate White 帮助搭建实验所用的不同大语言模型 API。
参考文献
参考文献列表从略。正文中的编号引用保留原文序号,不复原文献条目。
署名与许可
- 原文:Shunyu Yao, Noah Shinn, Pedram Razavi, Karthik Narasimhan. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. arXiv:2406.12045v1, 2024 年 6 月 17 日。https://arxiv.org/abs/2406.12045
- 许可:原文以 CC BY 4.0 许可发布。
- 译者:智测团队
- 代码与数据(原文脚注):https://github.com/sierra-research/tau-bench
- 说明:本译文覆盖源文件中自标题至致谢的全部正文、表格与结论;参考文献从略。附录 A–D 在源文件中仅有目录标题,未译,亦未编造。
Found it useful? Pass it on
Scan with WeChat to open it on your phone and forward it.