2026-07-08 08:57:50 +00:00

4.9 KiB
Raw Permalink Blame History

τ³-bench

简介

τ³-benchTau Cubed Bench是 tau-bench 系列的 v1.0.0 版本。在 τ²-bench 基础上新增了知识检索领域 banking_knowledge、跨领域 75+ 任务质量修复以及音频原生voice评测模式。

核心特点:

  • 动态交互:模拟真实用户与 AI 代理的多轮对话
  • 工具集成:代理需要正确使用提供的 API 工具
  • 策略遵循:代理需要遵循业务策略
  • 知识检索(新增):可插拔 RAG 流水线,支持 BM25、稠密向量OpenAI / Qwen、grep、沙箱 shell、reranker 等
  • 任务质量新增airline / retail / banking 等领域共 75+ 处 expected actions 修复

支持的评测领域:

  • airline航空公司客服
  • retail零售客服
  • telecom电信客服
  • banking_knowledge银行客服配套 698 份政策/流程文档RAG

安装依赖

pip install evalscope
# 需要 Python 3.12-3.13。安装时请带上 [knowledge] extra 以支持 banking_knowledge 领域。
pip install "tau2[knowledge] @ git+https://github.com/sierra-research/tau2-bench@v1.0.0"

# 上游 v1.0.0 的 text-only 路径也会急加载 voice 模块,需要补装以下轻量 voice 依赖
# macOS 上 pyaudio 需先 `brew install portaudio`
pip install pyaudio elevenlabs deepgram-sdk websockets jiwer pydub aiohttp scipy
- 数据集由 evalscope 自动从 ModelScope 拉取(数据集 ID`evalscope/tau3-bench-data`),并自动设置 TAU2_DATA_DIR。
- 仅支持通过 OpenAI 兼容 API 服务评测被测模型。
- τ³-bench 与 τ²-bench 无法共存(同一 PyPI 包名 `tau2`)。

使用方法

以 qwen-plus 为例。官方榜单通常使用 user model = gpt-4.1-2025-04-14

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='openai_api',

    datasets=['tau3_bench'],
    dataset_args={
        'tau3_bench': {
            'subset_list': ['airline', 'retail', 'telecom', 'banking_knowledge'],
            '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,
                },
                # 仅 banking_knowledge 使用,其他领域忽略:
                'retrieval_config': 'bm25',
                'retrieval_config_kwargs': {},
            }
        }
    },

    eval_batch_size=5,
    limit=5,
    generation_config={'temperature': 0.6},
)

run_task(task_cfg)

检索配置banking_knowledge

retrieval_config 通过 extra_params 传入,控制 agent 如何访问 698 份知识库文档。该字段会原样转发给 tau2.run.run_task(retrieval_config=...)

配置 agent 拿到的工具 额外依赖
no_knowledge 无(离线)
full_kb 无(整个 KB 塞进 prompt
golden_retrieval gold docs 塞进 prompt
grep_only grep
bm25(默认) KB_searchBM25 稀疏检索) rank-bm25(在 [knowledge] extra 内)
openai_embeddings KB_searchOpenAI 稠密向量) OPENAI_API_KEY
qwen_embeddings KB_searchOpenRouter/Qwen 稠密向量) OPENROUTER_API_KEY
*_reranker 增加 LLM reranker 还需 OPENAI_API_KEY
*_grep 增加 grep 工具 同基础配置
terminal_use / terminal_use_write 沙箱 shell npm @anthropic-ai/sandbox-runtime + ripgrepLinux 还要 bwrap、socat
alltools / alltools-qwen BM25 + 稠密 + shell 上述各项依赖叠加

完整矩阵见上游 READMEhttps://github.com/sierra-research/tau2-bench/blob/v1.0.0/src/tau2/knowledge/README.md

提示

  • 使用 gpt-4.1 作为用户模拟模型时设置:
    • extra_params.user_model='gpt-4.1-2025-04-14'
    • extra_params.api_base='https://api.openai.com/v1'
    • extra_params.api_key=<OPENAI_API_KEY>
  • 仅评测 airline/retail/telecom 时,从 subset_list 移除 banking_knowledge 即可避免拉取检索相关依赖。

评测流程

  1. 任务初始化:为代理提供领域工具与策略
  2. 用户模拟:用户模型按场景产生请求
  3. 代理响应:被测模型生成带工具调用的响应
  4. 多轮交互直至任务完成或失败
  5. 由 tau3 evaluator 计算 reward映射为 evalscope 报告中的 acc

指标说明

  • Pass^1首次尝试即完成任务的比例越高越好
  • Aggregationmean_and_pass_hat_k(设置 repeats > 1 可计算 pass@k