🧩 使用 Windows Agent Arena (WAA) 设置 UFO

Windows Agent Arena (WAA) 是一套基准测试套件,旨在评估 AI 代理在 Windows 操作系统上执行真实世界任务的性能。它包含 15 个应用程序中的 154 个任务,包括 Microsoft Office、Edge、文件资源管理器和 VS Code。这些任务旨在涵盖用户通常在其计算机上执行的广泛功能和交互。

此仓库提供了一个修改版 Windows Agent Arena (WAA) 🪟,这是一个用于基准测试和评估多模态桌面 AI 代理的可扩展平台。此自定义分支集成了 UFO,一个专注于 Windows 操作系统 UI 自动化代理。


我们强烈建议您事先查阅原始 WAA 部署指南。以下说明假设您熟悉原始设置。


1. 克隆仓库

git clone https://github.com/nice-mee/WindowsAgentArena.git

💡 要运行 OSWorld 案例,请切换到专用开发分支:

git checkout 2020-qqtcg/dev

在仓库根目录中创建 config.json 文件,并带有一个占位符键(UFO 将覆盖此键)

{
  "OPENAI_API_KEY": "placeholder"
}

2. 构建 Docker 镜像

导航到 scripts 目录并构建 Docker 镜像

cd scripts
chmod +x build-container-image.sh prepare-agents.sh  # (if needed)
./build-container-image.sh --build-base-image true

这将使用 src/ 中的最新代码库生成 windowsarena/winarena:latest 镜像。


3. 集成 UFO

  1. 通过 ufo/config/config.json 配置 UFO(详情请参阅 UFO 仓库)。
  2. 将整个 ufo 文件夹复制到 WAA 容器客户端目录
cp -r src/win-arena-container/vm/setup/mm_agents/UFO/ufo src/win-arena-container/client/

⚠️ Python 3.9 兼容性修复
ufo/llm/openai.py 中,调换 @staticmethod@functools.lru_cache() 的顺序,以防止由于已知的 Python 3.9 错误导致的问题。


4. 准备 Windows 11 虚拟机

4.1 下载 ISO

  1. 前往 Microsoft 评估中心
  2. 接受条款并下载 Windows 11 企业版评估(英文,90 天试用)(约 6GB)
  3. 将文件重命名为 setup.iso 并放置在
WindowsAgentArena/src/win-arena-container/vm/image

4.2 生成黄金镜像快照

准备 Windows VM 快照(一个完全预置的 30GB 镜像)

cd ./scripts
./run-local.sh --mode dev --prepare-image true

⚠️ 在准备过程中请勿与 VM 交互。 完成后它将自动关闭。

黄金镜像将保存在

WindowsAgentArena/src/win-arena-container/vm/storage

5. 首次运行(首次启动设置)

启动环境

./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": ""}}'

VM 启动后

  1. 不要输入设备代码(这会使 WAA 服务器无限期地保持活动状态)。
  2. 访问 https://:8006 并执行以下设置操作
  3. 禁用 Windows 防火墙
  4. 打开 Google Chrome 并完成初始设置
  5. 打开 VLC 并完成初始设置

设置完成后

  • 停止客户端
  • storage 文件夹备份黄金镜像

🧪 运行实验

每次实验前

  1. 将 VM 镜像替换为您准备好的黄金快照
  2. 清除所有以前的 UFO 日志

然后运行

./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": ""}}'

注意

  • test_full.json:包含所有 UIA 可用的测试用例。
  • test_all.json:包括所有测试用例,甚至那些与 UIA 不兼容的测试用例。
  • 如果您使用 OmniParser,请使用 test_full.json