【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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下 使用 SSH 完成 Git 绑定 GitHub

文章目录 1、检查 SSH2、生成 SSH key3、添加 SSH key4、验证绑定是否成功 1、检查 SSH Git Bash 中输入ssh命令,查看本机是否安装 SSH: 2、生成 SSH key (1)输入 ssh-keygen -t rsa 命令,表示我们指定 RSA 算法生…

Java 8 Stream 流操作全解析

文章目录 **一、Stream 流简介****二、Stream 流核心操作****1. 创建 Stream****2. 中间操作&#xff08;Intermediate Operations&#xff09;****filter(Predicate<T>)&#xff1a;过滤数据****1. 简单条件过滤****2. 多条件组合****3. 过滤对象集合****4. 过滤 null 值…

Java——设计模式(Design Pattern)

设计模式&#xff08;Design Pattern&#xff09;是软件开发中针对常见问题的经典解决方案&#xff0c;由 GoF&#xff08;Gang of Four&#xff09;在《设计模式&#xff1a;可复用面向对象软件的基础》一书中归纳为23 种模式&#xff0c;分为三大类&#xff1a;创建型模式、结…

python语法学习

1.python的类的定义 class Memory_Manager: 2.__init__ 方法 __init__ 是类的构造方法&#xff0c;用于初始化类的实例。 self 是类实例的引用&#xff0c;用于访问类的属性和方法。 3.方法定义 类中的方法是类的功能实现&#xff0c;通过 def 定义。 4.if __name__ __ma…

如何屏蔽mac电脑更新提醒,禁止系统更新(最新有效方法)

每次打开Mac电脑时&#xff0c;频繁的系统更新提醒可能会对我们的工作和使用体验造成干扰。为了屏蔽这些更新提醒并禁止系统自动更新&#xff0c;我们可以通过修改Hosts文件来实现。以下是详细步骤和方法&#xff0c;帮助你彻底屏蔽macOS的更新提醒。 系统关闭了自动更新也是…

windows10重装ssh无法下载

问题 windows10重装之后&#xff0c;ssh每次都是由于连接的是流量计数的网络无法下载。 解决方法 https://www.cnblogs.com/zhg1016/p/17353348.html

解决 cursor 中不能进入 conda 虚拟环境

【问题】 遇到一个小问题&#xff0c;我创建的conda 环境在 cmd、powershell中都可以激活&#xff0c;但在pycharm、cursor中却不能激活&#xff1f; 看图 cmd中正常&#xff1a; cursor中不正常&#xff1a; 【解决方法】 cursor 中&#xff0c;打开终端&#xff0c;输入&a…

跨平台三维可视化与图形库.VTK图形库.

1. 科学数据可视化 体绘制&#xff08;Volume Rendering&#xff09; 用于医学影像&#xff08;如CT、MRI&#xff09;、气象数据&#xff08;如云层、流体模拟&#xff09;的三维渲染&#xff0c;支持透明度、光照和颜色映射。 等值面提取&#xff08;Iso-Surfacing&#xff…

【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集

【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集 &#x1f50b; 本文介绍了萤火工场 GD32VW553-IOT 开发板通过串口中断查询的方式采集 ADC 电压及温度转换数据&#xff0c;并进一步结合LabVIEW上位机实现数据自动采集和实时监测的项目设计。 项目介绍 串口中断查询&a…

视频监控管理平台EasyCVR结合AI分析技术构建高空抛物智能监控系统,筑牢社区安全防护网

高空抛物严重威胁居民生命安全与公共秩序&#xff0c;传统监管手段存在追责难、威慑弱等问题。本方案基于EasyCVR视频监控与AI视频分析技术&#xff08;智能分析网关&#xff09;&#xff0c;构建高空抛物智能监控系统&#xff0c;实现24小时实时监测、智能识别与精准预警&…

Python----循环神经网络(LSTM:长短期记忆网络)

一、RNN的长期依赖问题 可以看到序列越长累乘项项数越多&#xff0c;项数越多就可能会让累乘结果越小&#xff0c;此时对于W 的更新就取决于第一项或者是前几项&#xff0c;也就是RNN模型会丢失很多较远时刻的信息而 更关注当前较近的几个时刻的信息&#xff0c;即没有很好的长…

【跨端框架检测】使用adb logcat检测Android APP使用的跨端框架方法总结

目录 Weex 跨端框架使用了uni-app的情况区分使用了uni-app还是Weex 判断使用了Xamarin判断使用了KMM框架判断使用了 ​​Ionic 框架判断使用了Cordova框架判断使用了Capacitor 框架使用了React Native框架使用了QT框架使用了Cocos框架使用了Electron 框架使用了flutter 框架使用…

以加减法计算器为例,了解C++命名作用域与函数调用

************* C topic: 命名作用域与函数调用 ************* The concept is fully introducted in the last artical. Please refer to 抽象&#xff1a;C命名作用域与函数调用-CSDN博客 And lets make a calculator to review the basic structure in c. 1、全局函数 A…

AIGC小程序项目

一、文生文功能 &#xff08;1&#xff09;前端部分 使用 Pinia 状态管理库创建的聊天机器人消息存储模块&#xff0c;它实现了文生文&#xff08;文本生成文本&#xff09;的核心逻辑。 1.Pinia状态管理 这个模块管理两个主要状态&#xff1a; messages&#xff1a;存储所…

Axios中POST、PUT、PATCH用法区别

在 Axios 中&#xff0c;POST、PUT 和 PATCH 是用于发送 HTTP 请求的三种不同方法&#xff0c;它们的核心区别源自 HTTP 协议的设计语义。以下是它们的用法和区别&#xff1a; 1. POST 语义&#xff1a;用于创建新资源。 特点&#xff1a; 非幂等&#xff08;多次调用可能产生…

[爬虫知识] Cookie与Session

相关实战案例&#xff1a;[爬虫实战] 爬取小说标题与对应内容 相关爬虫专栏&#xff1a;JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 一、引入场景 在http协议中&#xff0c;浏览器是无状态&#xff08;即无记忆&#xff09;的&#xff0c;对于请求与响应的产生数据&#…

怎样改变中断优先级?

在STM32中改变中断优先级可以通过STM32CubeMX配置和代码中设置两种方式来实现。以下以STM32F1系列为例进行说明: 使用STM32CubeMX配置 打开工程:在STM32CubeMX中打开你的工程。进入NVIC配置:在Pinout & Configuration选项卡中,点击NVIC进入中断向量控制器配置界面。选…

科学计算中的深度学习模型精解:CNN、U-Net 和 Diffusion Models

关键要点 模型概述:卷积神经网络(CNN)、U-Net 和 Diffusion Models 是深度学习中的核心模型,广泛应用于科学计算任务,如偏微分方程(PDE)求解、图像分割和数据生成。科学计算应用:CNN 可用于高效求解 PDEs,U-Net 擅长医学图像分割和材料分析,Diffusion Models 在生成合…

解决Docker无法拉取镜像问题:Windows系统配置镜像加速全指南

问题背景 在使用 Docker 时&#xff0c;你是否遇到过以下报错&#xff1f; Unable to find image ‘mysql:latest’ locally docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp 128.242.250.155:443: i/o timeout. 这类问题通常是由于…

Spring AI 使用教程

Spring AI 使用教程&#xff08;2025年5月24日更新&#xff09; 一、环境搭建与项目初始化 创建Spring Boot项目 使用IDEA或Spring Initializr创建项目&#xff0c;选择JDK 17或更高版本&#xff08;推荐21&#xff09;。勾选依赖项&#xff1a;Spring Web、Lombok&#xff0c;…