OSWorld is a benchmark suite designed to evaluate the performance of AI agents in real-world scenarios. We select the 49 cases from the original OSWorld benchmark that are compatible with the Windows platform, renamed as OSWorld-W. The tasks cover a wide range of functionalities and interactions that users typically perform on their computers, including Office 365 and browser.
We strongly recommend reviewing the original WAA deployment guide beforehand. The instructions below assume you are familiar with the original setup.
git clone https://github.com/nice-mee/WindowsAgentArena.git💡 To run OSWorld cases, switch to the dedicated development branch:
git checkout osworldCreate a config.json file in the repo root with a placeholder key (UFO will override this):
{
"OPENAI_API_KEY": "placeholder"
}Navigate to the scripts directory and build the Docker image:
cd scripts
chmod +x build-container-image.sh prepare-agents.sh # (if needed)
./build-container-image.sh --build-base-image trueThis will generate the windowsarena/winarena:latest image using the latest codebase in src/.
- Configure UFO via
ufo/config/config.json(see UFO repo for details). - Copy the entire
ufofolder into the WAA container client directory:
cp -r src/win-arena-container/vm/setup/mm_agents/UFO/ufo src/win-arena-container/client/
⚠️ Python 3.9 Compatibility Fix
Inufo/llm/openai.py, swap the order of@staticmethodand@functools.lru_cache()to prevent issues due to a known Python 3.9 bug.
- Go to the Microsoft Evaluation Center
- Accept the terms and download Windows 11 Enterprise Evaluation (English, 90-day trial) (~6GB)
- Rename the file to
setup.isoand place it in:
WindowsAgentArena/src/win-arena-container/vm/image
Prepare the Windows VM snapshot (a fully provisioned 30GB image):
cd ./scripts
./run-local.sh --mode dev --prepare-image true
⚠️ Do not interact with the VM during preparation. It will shut down automatically when complete.
The golden image will be saved in:
WindowsAgentArena/src/win-arena-container/vm/storage
Launch the environment:
./run-local.sh --mode dev --json-name "evaluation_examples_windows/test_custom.json" --agent UFO --agent-settings '{"llm_type": "azure", "llm_endpoint": "https://cloudgpt-openai.azure-api.net/openai/deployments/gpt-4o-20240513/chat/completions?api-version=2024-04-01-preview", "llm_auth": {"type": "api-key", "token": ""}}'Once the VM boots:
- Do not enter the device code (this keeps the WAA server alive indefinitely).
- Visit
http://localhost:8006and perform the following setup actions:- Disable Windows Firewall
- Open Google Chrome and complete initial setup
- Open VLC and complete initial setup
- Activate Office 365 (Word, Excel, PowerPoint, etc.) with a Microsoft account (use a temporary one if needed).
After setup:
- Stop the client
- Backup the golden image from the
storagefolder
Before each experiment:
- Replace the VM image with your prepared golden snapshot
- Clear any previous UFO logs
Then run:
./run-local.sh --mode dev --json-name "evaluation_examples_windows/test_full.json" --agent UFO --agent-settings '{"llm_type": "azure", "llm_endpoint": "https://cloudgpt-openai.azure-api.net/openai/deployments/gpt-4o-20240513/chat/completions?api-version=2024-04-01-preview", "llm_auth": {"type": "api-key", "token": ""}}'