当前位置: 首页 > news >正文

【Code Agent Benchmark】论文分享No.15:TAU-Bench

论文名称:τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains

论文:https://arxiv.org/abs/2406.12045

机构:Sierra

Github 链接:https://github.com/sierra-research/tau-bench#

简介

相比于Swe-bench而言,大家可能对TAU-bench并不是很熟悉,但2月份Claude 3.7发布的时候,Anthropic官方就曾用过TAU-bench来展示Claude As Agent的效果,说明这个benchmark还是得到了官方的认可,值得介绍一下。

在这里插入图片描述

TAU-bench是Sierra团队推出的评估 AI Agent在复杂的现实任务中与用户和工具交互的能力,主要是设计了两个垂直领域的场景评测:

  • Retail(零售场景):构建模拟零售环境,含数据库、API 工具和政策规则,让Agent处理订单、退换货等任务,测试其遵循规则、信息处理和任务执行能力。

  • Airline(航空场景):创建航班数据库、API 工具和复杂政策,Agent处理航班预订等任务,评测其应对复杂规则和多跳推理的能力。

这两个场景的任务都足够复杂,其中会有Agent与用户的多轮对话,也会有使用工具获取信息、解决问题的环节,所以比较适合用来评估一个Agent运行所需要的推理、指令遵循、长下文理解、工具调用等能力。

为什么跟AI Coding强相关呢?因为这些任务所要用到的工具跟代码强相关,算是一个AI Coding Agent近似实战的测试环境。

数据构造

在这里插入图片描述

TAU-Bench的数据构造采用模块化方式,以零售场景的case为例,具体如下:

  • JSON数据库:如图2a,数据库采用JSON格式,存储任务相关数据,如订单信息等,对Agent和用户隐藏,Agent通过API工具间接访问。

  • Python API工具:如图2b,用Python实现,用于对数据库进行读、写操作,其函数形式为tool_name(**kwargs),执行动作时数据库状态转移是确定性的。

  • Markdown域策略:如图2c,以Markdown格式描述,解释域数据库、任务流程和限制条件,部分限制在API中实现为检查,部分需Agent根据策略遵循。

  • JSON任务实例:如图2d,包含用于用户模拟的指令和真实数据库写操作的注释,指令设定用户身份、意图和偏好,保证在域策略下只有一个可能结果。

使用方法

在这里插入图片描述

准备工作

确定测试场景(零售或航空等),明确对应领域的数据库、API工具和政策规则 。将领域政策告知Agent,让其知晓规则,并将用户的指令给到Agent设定用户身份、意图等 。

交互过程

  • 用户指令下达:模拟用户向Agent提出任务指令,如在航空场景中更改最近的预订航班目的地

  • Agent操作:Agent依据接收到的指令和领域政策,调用API工具与数据库交互。例如在航空场景中,先调用get_reservation_details获取预订详情,再根据规则判断能否更改,如需取消则调用cancel_reservation

  • 多轮交互:过程中Agent与模拟用户可能有多轮对话,确认需求、反馈操作情况等 。

结果评估

对话结束后,将数据库最终状态与标注的目标状态对比 ,使用如pass^k等指标评估Agent行为的可靠性、一致性,判断其任务完成情况 。

评价指标

pass^1

顾名思义,不赘述了。

pass^k

因为Agent真正使用时,比如让它去订机票、处理退换货,如果执行失败会让人有很大的挫败感,所以它的成功率稳定性很重要,这个benchmark定义了pass^k的指标,也就是对一个测试case连续执行k次,每次都成功,才能算任务成功。

总结

TAU-Bench 也是用来评估LLM As Agent的能力,并将其限定在了代码->航空/零售领域,任务设计上比较接近生活中的实际问题,是一个比较不错的benchmark。

相关文章:

  • 标准版v5.6.1, 优化了一些细节提升体验
  • RabbitMQ的详细使用
  • 超详细网络介绍(超全)
  • 5.24本日总结
  • CQF预备知识:Python相关库 -- NumPy 基础知识 - 数组创建
  • Ubuntu20.04 gr-gsm完整安装教程
  • SQL每日一题
  • SQL SERVER常用聚合函数整理及示例
  • 全面指南:使用Node.js和Python连接与操作MongoDB
  • 二十五、面向对象底层逻辑-SpringMVC九大组件之HandlerMapping接口设计
  • 【Linux】进程基本概念与基本操作
  • 【深度学习新浪潮】如何用Dify构建自己的AI Agent?
  • 利用 XML 外部实体注入(XXE)读取文件和探测内部网络
  • 快速排序算法的C++和C语言对比
  • WordPress多语言插件安装与使用教程
  • Java核心基础
  • VMware Flings又又又搬家了
  • SAP全面转向AI战略,S/4HANA悄然隐身
  • 【每日一题】【前缀和优化】【前/后缀最值】牛客练习赛139 B/C题 大卫的密码 (Hard Version) C++
  • 基于netmiko模块实现支持SSH or Telnet的多线程多厂商网络设备自动化巡检脚本
  • 没有网站可以做seo/什么平台打广告比较好免费的
  • 什么网站有教做衣服视频的/信息流广告模板
  • 兖州市做网站/seo是什么意思网络用语
  • 找个人做网站还是找企业做网站/关键词怎样做优化排名
  • 自学做网站需要学会哪些/河南网站公司
  • 做分类信息网站/专业放心关键词优化参考价格