Tau-Trait
Collinear AI
Tau-Trait is a benchmark for evaluating large language models (LLMs) with realistic, persona-aware simulations. It builds on Tau-Bench but introduces two key modifications:
- TraitBasis-generated personas – more accurate and interpretable user simulations.
- Domain-specific evaluation – tasks drawn from retail, airline, telecom, and telehealth settings.
Tau-Trait is designed to test model robustness, personalization, and fairness in high-impact, customer-facing domains where user traits strongly influence interaction quality.
✨ Features
-
Persona Simulation with TraitBasis Generate diverse, coherent user personas with different traits.
-
Domain Coverage Tau-Trait includes evaluation tasks in four industries:
- 🛒 Retail
- ✈️ Airline
- 📱 Telecom
- 🩺 Telehealth
🚀 Getting Started
Installation
pip install tau-trait
Usage
import argparse
from tau_trait.types import RunConfig
from tau_trait.run import run
from litellm import provider_list
from tau_trait.envs.user import UserStrategy
from tau_trait.types import RunConfig
from tau_trait.run import run
config = RunConfig(
model_provider="openai",
user_model_provider="steer",
model=CLIENT_ASSISTANT_MODEL_NAME,
user_model="", # steer api abstracts the model
num_trials=1,
env="retail",
agent_strategy="tool-calling",
temperature=0.7,
task_split="test",
start_index=0,
end_index=-1,
task_ids=[4],
log_dir="results",
max_concurrency=1,
seed=10,
shuffle=0,
user_strategy="llm",
few_shot_displays_path=None,
trait_dict={"impatience": 1, "confusion": 0, "skeptical": 0, "incoherence": 0},
)
Some definitions of the settings are below.
Tau-Hard Config Settings
General
-
--num-trials(int, default: 1)
Number of independent trials to run. -
--seed(int, default: 10)
Random seed for reproducibility. -
--shuffle(int, default: 0)
Whether to shuffle task order (0 = no, 1 = yes). -
--log-dir(str, default:results)
Directory where logs and results are stored.
Environment & Tasks
-
--env(str, choices:retail,airline, default:retail)
Domain environment in which to run simulations. -
--task-split(str, choices:train,test,dev, default:test)
Dataset split of tasks to run (applies only to the retail domain currently). -
--start-index(int, default: 0)
Index of the first task to run. -
--end-index(int, default: -1)
Index of the last task to run. Use-1to run all remaining tasks. -
--task-ids(list of int, optional)
Explicit list of task IDs to run (overrides index ranges).
Agent Configuration
-
--model(str, required)
The model to use for the agent. -
--model-provider(str, choices fromprovider_list)
Provider for the agent’s model. -
--agent-strategy(str, choices:tool-calling,act,react,few-shot, default:tool-calling)
Strategy used by the agent to interact with the environment.tool-calling: Invoke external tools.act: Pure action selection.react: Reason + act alternation.few-shot: Use few-shot exemplars.
-
--temperature(float, default: 0.0)
Sampling temperature for the action model (higher = more randomness). -
--few-shot-displays-path(str, optional)
Path to a JSONL file containing few-shot demonstration examples.
User Simulator Configuration
-
--user-model(str, default:gpt-4o)
Model to use for the user simulator. -
--user-model-provider(str, optional)
Provider for the user simulator’s model. -
--user-strategy(str, choices fromUserStrategy, default:llm)
Strategy for the simulated user (e.g., LLM-based).
Execution Controls
--max-concurrency(int, default: 1)
Number of tasks to run in parallel.
@misc{tau-trait,
author = {Mackey, Tsach; Rajeev, Meghana; Kumar, Anand; He, Muyu; Rajani, Nazneen},
title = {Tau-Trait},
year = {2025},
month = {Sep},
howpublished = {\url{https://pypi.org/project/tau-trait/}}
}
Metadata
Release files for tau-trait 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tau_trait-0.1.1.tar.gz | 842.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tau_trait-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / tau_trait-0.1.1.tar.gz
| Download URL | tau_trait-0.1.1.tar.gz |
|---|---|
| Size | 842.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36b3a2c1548a3e058493f6868af470f7df08154b1e3ef29fa52bfb33b5c4f22e
|
|
BLAKE2b-256 checksum How to use checksums |
ca5202793c6f1eae6145fc69a9c13b1dfe40e4ff58bfd587ba2337d681e51e47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / tau_trait-0.1.1-py3-none-any.whl
| Download URL | tau_trait-0.1.1-py3-none-any.whl |
|---|---|
| Size | 970.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7547912636ce88f605d5af32cf00c2996b22ba3d2b0fd3689896b4fcd214a8f
|
|
BLAKE2b-256 checksum How to use checksums |
7f95862aebf117a27fdcb826446e3e98e7e40ab3b0e434d637b4614f4b415284
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|