Skip to main content
Tau-Bench measures how well an agent can act as a customer service representative — reading a policy wiki, using data-access tools, and satisfying a simulated user request without violating business rules. Tasks are graded by comparing the final database state against a ground-truth action sequence (an action is a normalized tool invocation emitted by the policy). An agent scores 1.0 only when its tool calls produce exactly the right state transitions and its responses contain all required output values. QitOS ships TauBenchAdapter and a self-contained runtime (TauRuntimeEnv) so you can run Tau-Bench without installing the upstream tau_bench package. All task data, tools, wiki, and rules are vendored under qitos.benchmark.tau_bench.port.

Environments

Setup

1

Install benchmark dependencies

2

Set your model API key

Tau-Bench task data is vendored inside the QitOS package. You do not need to download any external dataset.

Loading tasks

One-line convenience loader:

Configuration

TauBenchAdapter accepts the following parameters:

Running the evaluation

Start with the official CLI:
Then aggregate and inspect:
The bundled tau_bench_eval.py remains available as a benchmark-specific wrapper over the same official result shape and trace contract. Run a single task:
Run the full benchmark with multiple trials:
Resume after interruption:
Use --num-trials 5 and --shuffle to compute pass^k metrics. Each trial uses a different random seed derived from --seed.

How the runtime works

TauRuntimeEnv is a minimal drop-in for the upstream Tau environment. It exposes a reset / step / calculate_reward interface:
Reward is computed by replaying the ground-truth action sequence on a fresh data state and comparing its hash to the agent’s final data state. A reward of 1.0 requires both the correct state hash and all expected output strings present in agent responses.

Task structure

Expected output

Each result line in the output JSONL file contains:
After a full run, the script prints aggregate metrics aligned with the upstream tau-bench evaluation:
Inspect individual traces with qita:
The airline environment only supports the test split. Requesting train or dev will raise a ValueError.