τ³-bench#

简介#

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

  • 项目地址:https://github.com/sierra-research/tau2-bench (v1.0.0)

  • PyPI 包名仍为 tau2τ³-bench 与 τ²-bench(v0.2.0)无法在同一环境共存,请二选一。

核心特点:

  • 动态交互:模拟真实用户与 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_search(BM25 稀疏检索)

rank-bm25(在 [knowledge] extra 内)

openai_embeddings

KB_search(OpenAI 稠密向量)

OPENAI_API_KEY

qwen_embeddings

KB_search(OpenRouter/Qwen 稠密向量)

OPENROUTER_API_KEY

*_reranker

增加 LLM reranker

还需 OPENAI_API_KEY

*_grep

增加 grep 工具

同基础配置

terminal_use / terminal_use_write

沙箱 shell

npm @anthropic-ai/sandbox-runtime + ripgrep(Linux 还要 bwrap、socat)

alltools / alltools-qwen

BM25 + 稠密 + shell

上述各项依赖叠加

完整矩阵见上游 README:https://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:首次尝试即完成任务的比例(越高越好)

  • Aggregation:mean_and_pass_hat_k(设置 repeats > 1 可计算 pass@k)