Instructions to use tau-emotion-bench/Tracer-High-4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use tau-emotion-bench/Tracer-High-4B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="tau-emotion-bench/Tracer-High-4B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("tau-emotion-bench/Tracer-High-4B") model = AutoModelForCausalLM.from_pretrained("tau-emotion-bench/Tracer-High-4B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use tau-emotion-bench/Tracer-High-4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "tau-emotion-bench/Tracer-High-4B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tau-emotion-bench/Tracer-High-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/tau-emotion-bench/Tracer-High-4B
- SGLang
How to use tau-emotion-bench/Tracer-High-4B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "tau-emotion-bench/Tracer-High-4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tau-emotion-bench/Tracer-High-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "tau-emotion-bench/Tracer-High-4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "tau-emotion-bench/Tracer-High-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use tau-emotion-bench/Tracer-High-4B with Docker Model Runner:
docker model run hf.co/tau-emotion-bench/Tracer-High-4B
Tracer-High-4B โ Interactive Tool-Using Agent
Tracer-High-4B is a multi-turn interactive tool-using agent fine-tuned from Qwen/Qwen3-4B using supervised fine-tuning on tool-use dialogues with emotionally expressive users.
- Paper: ฯ-Emotion-Bench: Exposing the Interaction Fragility of LLM Agents through Real-World User Emotions
- Project Page: ฯ-Emotion-Bench
- Training Framework: TRL
- Benchmark: ฯ-Emotion-Bench
Highlights
- Trained on ten customer-service domains with emotionally expressive user behaviour.
- Reasons in a
<think>block before every reply or tool call; tool calls follow the Hermes convention.
Performance
Results on the ten domains of ฯ-Emotion-Bench under two user simulators. Scores are pass^k in %; the better of Qwen3-4B and Tracer-High-4B on each metric is in bold.
User Simulator: Qwen3-235B-A22B-Instruct-2507
| Domain | Qwen3-4B pass^1 | Tracer-High-4B pass^1 | Qwen3-4B pass^3 | Tracer-High-4B pass^3 |
|---|---|---|---|---|
| Airline | 18.6 | 42.9 | 2.9 | 22.9 |
| Retail | 20.0 | 56.7 | 1.4 | 30.0 |
| Telecom | 34.3 | 37.6 | 8.6 | 8.6 |
| Telehealth | 36.7 | 51.9 | 14.3 | 22.9 |
| Bank | 17.3 | 46.7 | 4.0 | 26.0 |
| Restaurant | 12.7 | 24.7 | 0.0 | 6.0 |
| Movie | 2.0 | 9.3 | 0.0 | 2.0 |
| School | 16.0 | 51.3 | 0.0 | 34.0 |
| Travel | 4.7 | 13.3 | 0.0 | 0.0 |
| Basketball | 17.3 | 42.7 | 8.0 | 20.0 |
| Average | 18.0 | 37.7 | 3.9 | 17.2 |
User Simulator: GLM-5.2
| Domain | Qwen3-4B pass^1 | Tracer-High-4B pass^1 | Qwen3-4B pass^3 | Tracer-High-4B pass^3 |
|---|---|---|---|---|
| Airline | 31.0 | 59.5 | 20.0 | 41.4 |
| Retail | 51.0 | 80.5 | 27.1 | 67.1 |
| Telecom | 65.7 | 74.3 | 48.6 | 52.9 |
| Telehealth | 62.9 | 78.6 | 44.3 | 62.9 |
| Bank | 22.0 | 46.0 | 6.0 | 26.0 |
| Restaurant | 23.3 | 35.3 | 6.0 | 20.0 |
| Movie | 2.7 | 16.0 | 0.0 | 6.0 |
| School | 17.3 | 57.3 | 2.0 | 40.0 |
| Travel | 11.3 | 21.3 | 2.0 | 2.0 |
| Basketball | 25.3 | 44.7 | 6.0 | 24.0 |
| Average | 31.2 | 51.4 | 16.2 | 34.2 |
Training
Method
- Data: Multi-turn tool-use dialogues with emotionally expressive users across ten domains (Retail, Telehealth, Telecom, Airline, Bank, Basketball, Movie, Restaurant, School, Travel), released as Tracer-High-tau-emotion-data.
- Supervised Fine-Tuning (SFT): The base model is fine-tuned on turn-level samples in which the target assistant turn contains an inline
<think>block followed by the reply or tool call.
Infrastructure
Training was run on 2ร NVIDIA H100 NVL with FSDP/DDP data parallelism, FlashAttention-3, and gradient checkpointing.
Hyperparameters
| SFT | |
|---|---|
| Effective Batch Size | 32 |
| Learning Rate | 5e-5 |
| LR Schedule | cosine, 3% warmup |
| Optimizer | paged_adamw_8bit |
| Epochs / Steps | 3 epochs / 3,042 steps |
| Max Context Length | 32,768 |
| Precision | bf16 |
Training Data
| Dataset | Description | Samples |
|---|---|---|
| Tracer-High-tau-emotion-data | SFT training data (ten domains) | 32,740 |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "tau-emotion-bench/Tracer-High-4B"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype="bfloat16", device_map="auto")
tools = [{
"type": "function",
"function": {
"name": "get_reservation_details",
"description": "Get the details of a reservation.",
"parameters": {"type": "object",
"properties": {"reservation_id": {"type": "string"}},
"required": ["reservation_id"]},
},
}]
messages = [
{"role": "system", "content": "<domain policy>"},
{"role": "user", "content": "I need to cancel my reservation M9OL3W."},
]
inputs = tok.apply_chat_template(messages, tools=tools, add_generation_prompt=True,
return_tensors="pt", return_dict=True).to(model.device)
out = model.generate(**inputs, max_new_tokens=1024)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Serving with vLLM:
vllm serve tau-emotion-bench/Tracer-High-4B \
--dtype bfloat16 --max-model-len 32768 \
--enable-auto-tool-choice --tool-call-parser hermes --reasoning-parser qwen3
Keep thinking on and use the model's sampling defaults in the request body:
{"temperature": 0.6, "top_p": 0.95, "top_k": 20, "min_p": 0,
"chat_template_kwargs": {"enable_thinking": true}}
Citation
@article{singh2026tauemotionbench,
title={$\tau$-Emotion-Bench: Exposing the Interaction Fragility of LLM Agents through Real-World User Emotions},
author={Singh, Rishitosh Kumar and Saeidi, Amir and Hegde, Shamanthak and Kumbhar, Shrinidhi and Baral, Chitta},
journal={arXiv preprint arXiv:2610.19560},
year={2026},
url={https://arxiv.org/abs/2610.19560}
}
- Downloads last month
- 1,248