Overview of AgentWorldBench: domain distribution, source benchmarks, evaluation dimensions, and per-domain trajectory statistics.
### Setup
```bash
# Download the benchmark
huggingface-cli download Qwen/AgentWorldBench --repo-type dataset --local-dir ./AgentWorldBench
# Install dependencies
pip install openai
```
### Data Format
AgentWorldBench consists of per-domain JSONL files (`mcp_test.jsonl`, `search_test.jsonl`, `terminal_test.jsonl`, `swe_test.jsonl`, `android_test.jsonl`, `web_test.jsonl`, `os_test.jsonl`).
```json
{
"task": "mcp",
"id": 145256090131919,
"prompt": ["### Turn 1\n**Action:**\n```json\n{...}\n```\n..."],
"response": ["**Environment Observation:**\n{...}"],
"current_prompt": "### Turn 1\n**Action:**\n...",
"system_str": "# Role and Objective\n\nYou are a **Tool World Model** ...",
"turn_idx": 1,
"total_turns": 5
}
```
Key fields:
- **`system_str`**: The world model system prompt for this specific sample. Each sample carries its own system prompt, so the prompts provided in the `prompts/` directory of this repo are **templates for reference only**.
- **`prompt`** / **`response`**: Lists of all turns in the trajectory (action prompts and ground-truth environment observations).
- **`current_prompt`**: The action prompt for the turn being evaluated.
- **`turn_idx`**: 1-indexed position of the current turn.
### Run Evaluation
We provide a standalone evaluation script (`eval/eval.py`) that uses the OpenAI-compatible API for both world model inference and LLM judge scoring. The evaluation follows a three-step pipeline:
```bash
cd eval
# Step 1: Run world model inference
python eval.py infer \
--data-dir ../AgentWorldBench \
--model-base-url http://localhost:8000/v1 \
--model-name Qwen/Qwen-AgentWorld-35B-A3B \
--output-dir ./results
# Step 2: Run LLM judge scoring
export OPENAI_API_KEY="your-api-key"
python eval.py judge \
--predictions ./results/predictions.jsonl \
--judge-base-url https://api.openai.com/v1 \
--judge-model gpt-5.2-2025-12-11 \
--output-dir ./results
# Step 3: Aggregate and display scores
python eval.py score --predictions ./results/judged.jsonl
```
The judge prompts used for scoring are located in `prompts/{domain}/judge_system_prompt.txt`. The world model system prompts in `prompts/{domain}/system_prompt.txt` are provided as **reference templates**; during evaluation, the system prompt from each sample's `system_str` field is used instead.
### Evaluation Output
The `score` command outputs per-domain and overall results:
```
======================================================================
AgentWorldBench Evaluation Results (example output)
======================================================================
--- MCP (286/286 valid, 0 failed) ---
format: 81.46
factuality: 68.75
consistency: 72.92
realism: 71.88
quality: 67.08
total_score: 72.42
...
======================================================================
Overall: 56.39
======================================================================
```
## Finetuning
We advise you to use training frameworks, including [Swift](https://github.com/modelscope/swift), [Llama-Factory](https://github.com/hiyouga/LLaMA-Factory), [UnSloth](https://github.com/unslothai/unsloth), etc., to finetune the model on domain-specific environment data.
## License Agreement
All open-weight models and AgentWorldBench are licensed under Apache 2.0.
You can find the license files in the respective Hugging Face repositories.
## Citation
If you find our work helpful, feel free to give us a cite.
```bibtex
@article{zuo2026qwen,
title={Qwen-agentworld: language world models for general agents},
author={Zuo, Yuxin and Xiao, Zikai and Sheng, Li and Huang, Fei and Tu, Jianhong and Liu, Yuxuan and Tang, Tianyi and Hu, Xiaomeng and Su, Yang and Lan, Qingfeng and others},
journal={arXiv preprint arXiv:2606.24597},
year={2026}
}
```
## Contact Us
If you are interested to leave a message to either our research team or product team, join our [Discord](https://discord.gg/CV4E9rpNSD) or [WeChat groups](https://github.com/QwenLM/Qwen/blob/main/assets/wechat.png)!