Skip to main content

TauBench experiments

This repository contains tools and scripts for defining and evaluating threat models in the TauBench framework. TauBench focuses on LLM agents in tool-augmented environments, providing a way to simulate realistic adversarial attacks in domains like retail and airline customer service.

Overview

The framework provides a structured way to:

  • Simulate tool-based adversarial scenarios against LLM agents
  • Measure metrics like Attack Success Rate (ASR), Task Success Rate (TSR), and stealthiness of attacks
  • Compare defenses or model variants across structured multi-turn tasks
  • Evaluate robustness of tool-using agents in realistic settings

Domains

TauBench currently supports:

  • Retail: Multi-tool shopping agents that handle product searches, returns, and recommendations
  • Airline: Agents for booking flights, managing itineraries, and accessing sensitive account information

Installation

  1. Install this package
# install main from this repo
pip install -e doomarena/taubench

# or install from pypi
pip install doomarena-taubench
  1. Install taubench
git clone https://github.com/sierra-research/tau-bench scripts/tau-bench
pip install -e git+https://github.com/sierra-research/tau-bench.git#egg=tau_bench
  1. You may also need to set your OpenRouter API key:
export OPENROUTER_API_KEY=<your-api-key>
export OPENAI_API_KEY=<your-api-key>

Usage

Example (Retail malicious user attack):

cd doomarena/taubench/src/doomarena/taubench
python scripts/attack_script.py \
  --config scripts/malicious_user_retail_attack.yaml

Experiment Configuration Options

  • combined_retail_attack.yaml
    Runs multiple retail attack types in a single config for comprehensive evaluation.

  • malicious_catalog_fixed_injection_retail_attack.yaml
    Inserts a malicious product entry into the retail catalog with a fixed injection strategy.

  • malicious_catalog_retail_attack.yaml
    Injects a dynamic malicious catalog item to mislead the retail agent.

  • malicious_user_airline_attack.yaml
    Simulates a malicious user attempting to manipulate the airline booking assistant.

  • malicious_user_fixed_injection_airline_attack.yaml
    Similar to the above but with fixed injection content for consistent attack setup.

  • malicious_user_retail_attack.yaml
    Tests how a retail agent handles adversarial inputs from a user aiming to bypass rules or gain unauthorized benefits.

Each config specifies:

  • Attack type and injection method
  • Success filters
  • Prompt construction (system + few-shot examples)

Results and Metrics

Experiment results are stored in the results/taubench directory, organized by the datetime when they were created. Each results folder includes:

  • Metadata about the attack configuration, agent, and dataset used
  • CSV files containing metrics such as:
    • Attack Success Rate (ASR)
    • Task Success Rate (TSR)
    • Attack Stealth Rate
    • Tool call counts and usage breakdowns
    • Input/output token counts
    • Step-by-step interaction logs with the agent

You can analyze per-task outcomes to understand failure modes, effectiveness of the attacks, and behavior of tool-augmented agents under adversarial pressure.

Project Structure

├── README.md 
├── pyproject.toml 
├── src/doomarena/taubench/                  
    ├── attack_gateway.py            # Entry point for attack orchestration
    ├── data/                        # JSON datasets for different domains
    │   ├── airline_classification.json
    │   ├── retail_classification.json
    │   └── sample_airline.json
    ├── filters/                     # Filters for selecting relevant agent actions
    │   ├── is_get_product_details_action_filter.py
    │   └── is_respond_action_filter.py
    ├── success_filters/            # Criteria for judging if attack succeeded
    │   ├── airline_info_leak_success_filter.py
    │   ├── llm_judge.py
    │   ├── retail_refund_success_filter.py
    │   ├── retail_secrets_success_filter.py
    │   └── send_certificate_success_filters.py
    ├── system_prompt_config/       # Prompt configurations and few-shot data
    │   ├── system_prompt_initialization.py
    │   ├── utils.py
    │   ├── dan_mode/
    │   │   ├── dan_mode_airline.txt
    │   │   ├── dan_mode_retail.txt
    │   │   └── dan_mode_retaildb.txt
    │   ├── few_shot_examples/
    │   │   ├── airline_few_shot.json
    │   │   ├── retail_few_shot.json
    │   │   └── retaildb_few_shot.json
    │   └── tools/
    │       ├── airline_tools.json
    │       └── retail_tools.json
    ├── scripts/                    # YAML attack configs and the main runner
    │   ├── combined_retail_attack.yaml
    │   ├── malicious_catalog_fixed_injection_retail_attack.yaml
    │   ├── malicious_catalog_retail_attack.yaml
    │   ├── malicious_user_airline_attack.yaml
    │   ├── malicious_user_fixed_injection_airline_attack.yaml
    │   ├── malicious_user_retail_attack.yaml
    │   └── attack_script.py
├── tests/
    ├── test_data
        ├── taubench_config.yaml
    ├── __init__.py
    ├── test_run_tau_bench_attack.py
    ├── test_taubench_attack_config.py
    ├── test_taubench_attack_gateway.py

Contributing

Contributions are welcome! You can extend this framework by:

  1. Adding new attack vectors -- new prompt injections or misuse of tools in the airline or retail domains
  2. Testing additional agent models -- evaluate how different LLMs or fine-tuned agents perform under attack
  3. Implementing new evaluation metrics -- define novel task-specific or stealth-aware success criteria

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doomarena_taubench-0.0.4.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doomarena_taubench-0.0.4-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file doomarena_taubench-0.0.4.tar.gz.

File metadata

  • Download URL: doomarena_taubench-0.0.4.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for doomarena_taubench-0.0.4.tar.gz
Algorithm Hash digest
SHA256 0eb568888c1f36b0c1f9f99b29c88c1cfcb8544a0fb0a190f92af64fbffbb195
MD5 8a468957644539f4443faa3b3180f7ba
BLAKE2b-256 dcad61f388201116f3279f542f9b74c16d500a1c7247339e2a30d2965bf7ea09

See more details on using hashes here.

File details

Details for the file doomarena_taubench-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for doomarena_taubench-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6bd5c3c757b1bdaea14996b6ac76ca23dbdca80214e3bc810c906320087be85a
MD5 ef0621f61da31488b8fa6336ef3e49d5
BLAKE2b-256 ebe1197be5dc97a27396433b449203faf3798364cc3813a081d08b3af63891ab

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page