Windows Agent Arena
在可复现的 Windows 11 环境中,大规模评测多模态桌面智能体。
这个 Agent 能做什么,适合哪些场景?
Windows Agent Arena(WAA)是用于测试和基准评测多模态桌面智能体的 Windows 平台。它以 Docker 中运行的 Windows 11 VM 及其黄金快照为基础,VM 内的 Python 服务接收并执行智能体命令。仓库提供 Navi 基线智能体,可结合 Omniparser、辅助功能树、WebParse、GroundingDINO 与 TesseractOCR 识别屏幕元素。评测可在 WSL 或 Linux 本地执行,也可通过 Azure Machine Learning 并行调度多个计算实例。运行结束后,本地可用 `show_results.py` 展示结果,Azure 输出可下载后用 `show_azure.py` 汇总为 Markdown 表格。
先通过 scripts/build-container-image.sh 构建 windowsarena/winarena:latest,再使用 scripts/run-local.sh --prepare-image true 自动准备包含所需程序和 Windows 端 Python 服务的 Windows 11 黄金镜像。执行 ./run-local.sh 时,Navi 在基准任务上运行;--som-origin 可选择 mixed-omni、omni、oss、a11y 或 mixed-oss,--a11y-backend 可选 uia 或 win32。云端的 scripts/run_azure.py 读取 experiments.json,为未完成实验创建 Azure Compute Instance、每台启动一个 ML Training Job,并在完成后处置 VM。自定义智能体可放入 src/win-arena-container/client/mm_agents,其 agent.py 必须实现 predict() 和 reset()。
- 桌面智能体研究人员需要在一组 Windows 任务上复现实验,并比较不同屏幕理解配置时。
- 拥有 Docker、WSL 或 Linux 环境的开发者想先在本机运行 Navi 基线评测时。
- Azure ML 团队需要用多个工作节点缩短全量基准评测时间时。
- 正在开发自定义桌面智能体,并希望通过实现 `predict()` 与 `reset()` 接入既有评测环境时。
- 需要比较 Omniparser、辅助功能树和 OSS 检测组合在 Windows GUI 任务中表现的研究团队时。
这个 Agent 有哪些优点和局限?
- 提供 Windows 11 黄金镜像、Docker 容器和 VM 内命令服务,使评测环境可重复准备。
- 支持 Azure ML 多工作节点并行运行,文档说明可将数百个任务的结果时间从数天缩短到分钟级。
- Navi 提供多种屏幕元素识别组合,包括 Omniparser 与 UIA 辅助功能树的混合模式。
- 支持 BYOA:自定义智能体只需在指定目录提供带 `predict()` 和 `reset()` 的 `agent.py`。
- 首次本地准备要求下载约 6GB 的 Windows 11 ISO,并生成约 30GB 的黄金镜像;自动准备约需 20 分钟。
- 运行依赖 Docker、Python 3.9、OpenAI 或 Azure OpenAI 凭据,并且本地运行限定在 WSL 或 Linux 路径。
- 云端并行部署依赖 Azure 订阅、Azure ML 工作区、存储账户和支持嵌套虚拟化的计算资源。
- README 明确指出禁用 KVM 加速会有性能问题,因此不建议这样进行本地基准运行。
如何安装或部署这个 Agent?
前提:Docker daemon 正在运行、Python 3.9,以及 OpenAI 或 Azure OpenAI API 密钥。克隆并安装依赖:git clone https://github.com/microsoft/WindowsAgentArena.git、cd WindowsAgentArena、pip install -r requirements.txt。在仓库根目录创建 config.json,填入 OPENAI_API_KEY,或填入 AZURE_API_KEY 和 AZURE_ENDPOINT。执行 docker pull windowsarena/winarena-base:latest,然后进入 scripts 并运行 ./build-container-image.sh。下载 Windows 11 Enterprise Evaluation(90 天、英语/美国)ISO,重命名为 setup.iso,放至 src/win-arena-container/vm/image;最后运行 ./run-local.sh --prepare-image true 准备黄金镜像。
如何使用这个 Agent?
完成黄金镜像准备后,进入 scripts 并运行 ./run-local.sh,然后可在 http://localhost:8006 查看运行中的 Windows VM。若要使用文档标示为最佳结果的配置,运行 ./run-local.sh --gpu-enabled true --som-origin mixed-omni --a11y-backend uia。完成后,进入 src/win-arena-container/client,运行 python show_results.py --result_dir <path_to_results_folder> 查看本地结果。要在 Azure 上并行执行,请在 config.json 增加 AZURE_SUBSCRIPTION_ID、AZURE_ML_RESOURCE_GROUP、AZURE_ML_WORKSPACE_NAME,配置 experiments.json 后运行 python run_azure.py --experiments_json "experiments.json"。
这个 Agent 与同类方案有什么区别?
WAA 的任务框架来源于 OSWorld,并使用 Dockur 的 Docker 基础设施;其仓库定位是在此基础上提供面向 Windows 的可扩展桌面智能体评测与 Azure ML 并行执行路径。