τ-bench#

简介#

τ-bench (TAU Bench) 是一个专门用于评估大语言模型在动态对话代理场景中工具使用能力的基准测试框架。该基准模拟了用户(由语言模型模拟)与语言代理之间的动态对话,代理被提供特定领域的API工具和策略指导。

该评测基准的核心特点:

  • 动态交互:模拟真实用户与AI代理的多轮对话

  • 工具集成:代理需要合理使用提供的API工具

  • 策略遵循:代理需要遵循特定的业务策略和指导原则

  • 领域专业性:涵盖航空公司客服、零售客服等实际业务场景

支持的评测领域:

  • airline:航空公司客服场景

  • retail:零售客服场景

安装依赖#

在运行评测之前需要安装以下依赖:

pip install evalscope  # 安装 evalscope
pip install git+https://github.com/sierra-research/tau-bench  # 安装 tau-bench

使用方法#

运行下面的代码即可启动评测。下面以qwen-plus模型为例进行评测。

⚠️ 注意:仅支持API模型服务评测,本地模型评测建议使用vLLM等框架预先拉起服务。官方默认使用user model为gpt-4o,要获得榜单效果,请使用此模型进行评测。

import os
from evalscope import TaskConfig, run_task

task_cfg = TaskConfig(
    model='qwen-plus',
    api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    eval_type='service',  # 使用API模型服务
    datasets=['tau_bench'],
    dataset_args={
        'tau_bench': {
            'subset_list': ['airline', 'retail'],  # 选择评测领域
            'extra_params': {
                'user_model': 'qwen-plus',  # 用户模拟模型
                'api_key': os.getenv('DASHSCOPE_API_KEY'),
                'api_base': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
                'generation_config': {
                    'temperature': 0.7,
                    'max_tokens': 1024
                }
            }
        }
    },
    eval_batch_size=5,
    limit=5,  # 限制评测数量,便于快速测试,正式评测时建议去掉此项
    generation_config={
        'temperature': 0.6,
        'n': 1,
        'max_tokens': 4096,
    },
)

run_task(task_cfg=task_cfg)

评测方法说明#

对话流程#

τ-bench 的评测流程包含以下关键步骤:

  1. 任务初始化:系统为代理提供特定领域的API工具集和策略指导

  2. 用户模拟:用户模拟器根据预定义场景生成自然的用户请求

  3. 代理响应:被测试的代理模型根据工具和策略生成响应

  4. 多轮交互:用户和代理进行多轮对话直到任务完成或失败

  5. 结果评估:基于任务完成度和策略遵循度进行评分

评估维度#

  • 代理是否成功完成用户请求的核心任务

  • 是否正确使用了必要的API工具

领域特性#

航空公司场景 (Airline)#

  • API工具:航班查询、预订修改、座位选择、退改签等

  • 策略要求:费用透明、客户优先级、安全规定遵循

  • 典型任务:航班改签、座位升级、行李问题处理

零售场景 (Retail)#

  • API工具:商品查询、订单管理、库存检查、支付处理等

  • 策略要求:价格准确、库存实时性、客户满意度

  • 典型任务:商品推荐、订单跟踪、退换货处理

结果分析#

输出示例#

+-----------+-----------+--------+---------+-------+---------+
| Model     | Dataset   | Metric | Subset  |   Num |   Score |
+===========+===========+========+=========+=======+=========+
| qwen-plus | tau_bench | Pass^1 | airline |    10 |   0.5   |
+-----------+-----------+--------+---------+-------+---------+
| qwen-plus | tau_bench | Pass^1 | retail  |    10 |   0.6   |
+-----------+-----------+--------+---------+-------+---------+
| qwen-plus | tau_bench | Pass^1 | OVERALL |    20 |   0.55  |
+-----------+-----------+--------+---------+-------+---------+

性能分析指标#

Pass^1: 首次尝试成功完成任务的比例

  • 衡量模型在单次对话中解决用户问题的能力

  • 综合考虑任务完成度、策略遵循度和对话质量