Windows Agent Arena
在可复现的 Windows 11 环境中,大规模评测多模态桌面智能体。
- Star 数
- ★ 915
- 最近更新
- 10 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 35/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 桌面智能体研究人员需要在一组 Windows 任务上复现实验,并比较不同屏幕理解配置时。
- 不适合
- 没有 Azure 订阅或无法使用 Azure ML 的团队
- 没有支持嵌套虚拟化的云主机或本地 KVM 环境的用户
这个 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?
前提: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 有哪些优点和局限?
- 提供 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 与同类方案有什么区别?
WAA 的任务框架来源于 OSWorld,并使用 Dockur 的 Docker 基础设施;其仓库定位是在此基础上提供面向 Windows 的可扩展桌面智能体评测与 Azure ML 并行执行路径。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Windows Agent Arena 当前 | 35 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 915 | 10 天前 | Python | OpenAI API |
| OSWorld | 33 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.3k | 4 天前 | Python | OpenAI API |
| ClawBench 浏览器智能体评测 | 48 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.2k | 1 天前 | Python | Codex · Claude Code |
| MARO 资源优化平台 | 44 · 缺口较多 | 代码库 / SDK免费 | ★ 926 | 3 年前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库来自微软官方组织,但未提供权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的具体实现或文档。扣分原因:这些标准在静态审查中未得到支持,因此得分为0。
证据显示:README和配置文件中提供了安装和运行步骤,但未提供错误处理或失败消息的文档。扣分原因:自洽性部分支持(步骤一致),依赖可用性部分支持(列出依赖),但失败消息缺失。
证据显示:README明确面向研究人员和开发者,提供了本地和Azure部署场景,并说明了能力边界(如支持BYOA)。扣分原因:触发精度(如命令参数)部分支持,但未详细说明所有边界条件。
证据显示:README结构清晰,包含安装说明、示例、FAQ、已知限制(如KVM要求)、MIT许可证、版本更新日志(更新部分)和维护责任(贡献指南)。扣分原因:命名稳定性未明确,版本更新日志不完整。
证据显示:README提供了输出结果展示方法(show_results.py),并说明了边际价值(如并行化)和成本效益(FAQ中的成本表)。扣分原因:这些是静态描述,未实际运行验证。
证据显示:README引用了论文和项目页面,提供了可追溯的声明。扣分原因:跨来源验证有限,事实与推断的区分不明确。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 静态审查无法验证实际运行效果,所有关于性能、成本、安全性的声明均需独立验证。
- 仓库未提供权限最小化、数据流透明等安全细节,部署时需自行评估风险。
- 依赖项(如Docker、Azure)的可用性和安全性需用户自行确认。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * Fix hyperparams table and example by @francedot in https://github.com/microsoft/WindowsAgentArena/pull/6 * Add BYOA docs by @francedot in https://github.com/microsoft/WindowsAgentArena/pull/10 * Add guidance on developing new tasks in WAA by @francedot in https://github.com/microsoft/WindowsAgentArena/pull/12 * docs: update README.md by @eltociear in https://github.com/microsoft/WindowsAgentArena/pull/13 * Update README.md with podcast by @francedot in https://github.com/microsoft/WindowsAgentArena/pull/17 …在 GitHub 查看 ↗
常见问题
本地首次运行需要准备多少资源?
--ram-size 和 --cpu-cores 调整。是否必须使用 Azure?
需要哪些模型凭据?
gpt-4-1106-vision-preview。可以评测自己的智能体吗?
src/win-arena-container/client/mm_agents 新建智能体目录,并确保 agent.py 实现 predict() 与 reset()。