OSWorld 2.1 计算机使用智能体评测台
在真实 Ubuntu 虚拟机里跑长周期桌面任务,给 Computer Use Agent 一个可复现的分数。
- Star 数
- ★ 358
- 最近更新
- 12 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 高 · 需要较重的基础设施
- 开始前需要
- 典型场景
- 研究团队要比较不同 VLM 或 Computer Use Agent 在长周期桌面任务上的完成率,用同一 release 复现实验数据。
- 不适合
- 只想跑个脚本、不愿维护虚拟机集群和自托管网站的个人用户
- 需要 Windows 或 macOS 桌面环境的评测团队(官方镜像仅覆盖 Docker Ubuntu 与 AWS)
- 源码审查
- 53/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
OSWorld-V2 是 xlang-ai 推出的计算机使用智能体(Computer Use Agent)评测环境与基准,当前推荐版本为 osworld-v2.1。它把任务交给远程 Ubuntu 虚拟机执行:宿主侧通过 DesktopEnv 连接 Docker 或 AWS 提供的镜像,智能体以截图观察桌面、再以鼠标键盘动作完成任务,评测器核对最终状态并打分。任务类通过 gated 数据集 xlangai/osworld_v2_tasks 分发,初始文件与标准答案位于 xlangai/osworld_v2_assets_gated,需要用 OSWORLD_FILE_BASE_URL 指向本地快照。环境依赖较重的配套组件:自托管 Task-Web/OSWorld-web 提供模拟网站,GitLab 相关任务要求自建 GitLab 实例并配置私有 token。仓库提供 mm_agents 下的 Claude、GPT、Qwen 等参考智能体实现,以及 run_multienv_*.py 多环境并行 runner、manual_examine.py 人工检查脚本,方便对照实现自己的智能体。
评测流程由宿主侧 Python 驱动:runner(如 scripts/python/run_multienv_claude.py、run_multienv_qwen.py)按 benchmark release 清单创建若干 DesktopEnv 实例,每个实例对应一台 Docker 或 AWS 上的 Ubuntu VM。智能体通过 DesktopEnv 获取屏幕截图(observation_type screenshot)并调用动作接口,在虚拟机内操作浏览器与桌面应用;任务类从 evaluation_examples/task_class 加载,其 setup、校验逻辑和 ground-truth 文件通过 desktop_env.file_source.asset(...) 引用本地资产目录。任务结束后由评测器比对文件、界面状态或网站数据给出得分,过程截图与视频可写入 result_dir,并可上传到 Trajectory Viewer 查看。工具脚本 scripts/tools/download_osworld_v2_tasks.py 和 download_osworld_v2_assets.py 负责按 --benchmark-release 拉取对应版本的任务类和资产;manual_examine.py 支持人工逐步回放单个任务。
- 研究团队要比较不同 VLM 或 Computer Use Agent 在长周期桌面任务上的完成率,用同一 release 复现实验数据。
- 模型厂商在发布新版本前,用 osworld-v2.1 的多环境 runner 在 AWS 上并行跑大规模评测,验证 GUI 操作能力是否回退。
- 智能体开发者把自己的 agent 接口接进 run_multienv_*.py,先用 --smoke_only 或少量任务冒烟测试,再上全量任务。
- 需要排查任务失败原因的工程师用 manual_examine.py 手动执行单个 example_id,录制截图和视频定位是环境问题还是模型问题。
- 希望成绩被公示的团队按公开评测指南提交 agent 代码与轨迹,由维护者在官方一侧复跑并计入验证榜。
如何安装或部署这个 Agent?
环境要求 Python >= 3.12,官方推荐用 uv 管理依赖。先按 release 标签克隆代码,再同步依赖:
git clone --branch osworld-v2.1 https://github.com/xlang-ai/OSWorld-V2
cd OSWorld-V2
uv sync --frozen随后接受两个 gated 数据集的访问申请并登录 Hugging Face,再下载任务类与资产:
uvx --from huggingface_hub hf auth login
uv run scripts/tools/download_osworld_v2_tasks.py --benchmark-release osworld-v2.1
uv run scripts/tools/download_osworld_v2_assets.py \
--benchmark-release osworld-v2.1 \
--target-dir cache/osworld_v2_assets \
--clean
export OSWORLD_FILE_BASE_URL="$(pwd)/cache/osworld_v2_assets"环境提供方需要额外准备:Docker 需要支持 KVM 的 Linux 主机,AWS 需要放通任务服务端口 3000 与 8000;模拟网站需自托管 Task-Web/[email protected] 并导出 WEBSITE_HOST_SUFFIX;GitLab 任务需自托管并设置 GITLAB_URL 与 GITLAB_PRIVATE_TOKEN。
如何使用这个 Agent?
先填好示例脚本顶部的环境变量(AWS 凭据与子网、模型 API key、OSWORLD_CLIENT_PASSWORD、WEBSITE_HOST_SUFFIX、OSWORLD_FILE_BASE_URL 等),再执行:
bash scripts/bash/run_multienv_claude.sh使用 OpenAI 兼容端点服务的 Qwen 模型可以走专门的 runner:
export OPENAI_BASE_URL=http://127.0.0.1:8000/v1
export OPENAI_API_KEY=dummy
uv run python scripts/python/run_multienv_qwen.py \
--smoke_only \
--model your-served-model \
--base_url "$OPENAI_BASE_URL"人工检查单个任务:
uv run python scripts/python/manual_examine.py \
--headless \
--provider_name aws \
--observation_type screenshot \
--result_dir ./results_human_examine \
--test_config_base_dir evaluation_examples \
--domain tasks \
--eval_version v2 \
--example_id 146 \
--max_steps 3自定义智能体需实现智能体接口,并在 run.py 或多环境 runner 中导入;虚拟机默认账号为 user / osworld-public-evaluation。
这个 Agent 有哪些优点和局限?
- 评测对象是真实 Ubuntu 虚拟机中的完整桌面,而非模拟 DOM 或简化 API,长周期任务与真实计算机使用场景更贴近。
- 以 benchmark release 清单统一钉住代码、任务类、资产、模拟网站和镜像版本,跨团队结果具备可比性。
- 任务类与完整资产通过 gated 数据集分发,降低被评测智能体联网搜寻答案导致的基准泄漏风险。
- 同时提供 Docker 与 AWS 两条官方镜像路径,多环境 runner 支持并行扩展,适合规模化评测。
- 仓库内含 Claude、GPT、Qwen 的参考实现和人工检查脚本,并附带从 OSWorld 1.0 迁移智能体的技能提示。
- 环境搭建门槛高:需要接受两个 gated 数据集、下载本地资产快照、自托管模拟网站,GitLab 任务还要自建 GitLab 并配置私有 token。
- 官方只提供 Docker 与 AWS 的镜像;VMware、Azure、GCP、Aliyun、Volcengine 仅有代码路径,需自行按迁移文档转换 1.0 镜像。
- main 分支为开发版,做可复现评测必须切到 release 标签,混用版本或不冻结镜像会破坏结果可比性。
- 评测依赖真实云资源与模型 API,成本由运行规模和模型调用量决定,仓库未给出费用上限说明。
- 部分任务在受限网络或网站防护下需要配置代理,缺失配置会直接拉低分数,属于运行前必须排查的隐性依赖。
这个 Agent 与同类方案有什么区别?
README 明确把 OSWorld 1.0(xlang-ai/OSWorld)作为迁移来源,并提供 docs/MIGRATING_v2.1_FROM_OSWORLD_V1.md:1.0 的智能体、镜像与任务需要按迁移文档转换后才能在 2.1 上运行,2.1 的依赖包含 imageio-ffmpeg>=0.6.0 等新增项。除此之外,源材料未点名任何其他竞品。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OSWorld 2.1 计算机使用智能体评测台 当前 | 53 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 358 | 12 天前 | Python | OpenAI API · Claude API |
| CRAB 跨环境智能体基准 | 28 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 428 | 4 天前 | Python | OpenAI API |
| AppWorld 智能体基准测试环境 | 56 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 529 | 1 个月前 | Python | OpenAI API · Claude API |
| SWE-Bench Pro | 55 · 缺口较多 | 命令行工具免费 | ★ 541 | 17 天前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
least_privilege:README 明确说明 VM 内部分任务需要 sudo,且默认凭据为 user/osworld-public-evaluation,属于基准测试的已知设计,但仓库未提供权限最小化配置或隔离说明,仅得 1。user_confirmation:setup-osworld 提示词要求在执行云支出、DNS、SSH 或密钥步骤前询问用户,但这是示例提示词而非强制机制,且评测运行本身会消耗云资源,得 1。data_flow_transparency:README 说明任务类与资产通过 gated Hugging Face 数据集分发,并需设置 OSWORLD_FILE_BASE_URL,但未系统说明评测过程中截图、轨迹、模型 API 调用等数据流向,得 1。sensitive_data_handling:示例脚本要求填入 AWS 密钥、Anthropic API key、GitLab private token 等,README 仅提醒 GitLab 共享 token 有安全风险,未提供密钥管理或脱敏方案,得 1。dependency_security:pyproject.toml 依赖数量庞大且多数未固定版本,仅少数使用 ~= 或 ==,未提供锁文件或漏洞扫描证据,得 1。external_effects:评测会创建云 VM、下载镜像、调用外部模型 API,README 有成本与资源提醒,但无自动清理或影响范围控制说明,得 1。rollback:README 提供版本切换、备份 docker_vm_data、--clean 等操作,但无评测失败或状态回滚机制,得 1。source_attribution:LICENSE 含 XLANG NLP Lab 版权,README 提供论文引用、致谢与数据来源链接,归属清晰,得 2。
self_consistency:测试 test_release_name_is_consistent_across_components 与 test_release_source_resolution 验证发布清单各组件标签一致,README 也强调不要混用版本,得 2。dependency_availability:依赖来源包括 PyPI、Hugging Face gated 数据集、Docker 镜像、AWS AMI 及本地 packages/osworld-ffmpeg,部分需人工审批或私有凭据,可用性存在外部依赖风险,得 1。failure_messages:测试显示 ClaudeCodeExecutionError 带 error_kind,cc_ask 对错误结果返回结构化 outcome,失败信息较明确,得 2。
audience_and_scenarios:README 面向研究者、评测者与 agent 开发者,覆盖 Docker/AWS 等场景,得 2。capability_boundaries:明确说明仅提供 Docker 与 AWS 镜像,其他 provider 需迁移,且 main 分支为开发版,边界较清楚,得 2。trigger_precision:setup-osworld 与 migrate-osworld-agent 技能以自然语言提示触发,无精确触发条件或参数校验说明,得 1。environment_fit:要求 Python >=3.12、uv、KVM、云凭据、自托管网站与 GitLab,环境要求明确但较重,得 2。
information_architecture:README 结构清晰,含更新、版本矩阵、环境搭建、评测、FAQ、引用,得 2。install_notes:提供 uv sync --frozen、下载任务与资产、provider 设置等步骤,得 2。naming_stability:发布标签 osworld-v2.1 等命名一致,测试也验证一致性,得 2。examples_and_faq:提供多环境 Claude 运行示例、Qwen 示例、手动检查示例及 FAQ,得 2。known_limitations:README 提到部分任务可能因代理或网络失败、main 分支为开发版,但缺少系统性的已知限制清单,得 1。license:Apache-2.0 全文完整,pyproject.toml 声明一致,得 3。versioning_changelog:有 benchmark_releases 清单、版本矩阵与更新日志,得 3。maintenance_responsibility:README 列出当前维护者邮箱与公开评测流程,但未说明长期维护承诺或响应时限,得 2。
output_usability:评测输出包括结果目录、轨迹查看器、手动检查脚本,但需自行配置环境,得 2。marginal_value:作为长时程计算机使用 agent 基准,提供 gated 任务与资产、多 provider 支持,对评测生态有明确价值,得 2。cost_benefit:运行需云 VM、模型 API、自托管网站与 GitLab,成本与运维负担较高,得 1。
claim_traceability:README 声明与 benchmark_releases 清单、测试断言可对应,但部分声明如“bug-fix release”未展开,得 2。cross_source_corroboration:README、pyproject.toml、LICENSE、测试之间在版本、许可证、依赖来源上相互印证,得 2。fact_inference_separation:README 多为操作说明,未明确区分已验证事实与推断,测试覆盖有限,得 1。
- 评测运行会创建云 VM、下载镜像并调用外部模型 API,可能产生显著费用;README 虽有提醒,但未提供自动清理或成本上限机制。
- 示例脚本要求填入 AWS 密钥、模型 API key、GitLab private token 等敏感凭据,仓库未提供密钥管理或脱敏方案。
- 依赖数量庞大且多数未固定版本,存在供应链与可复现性风险;建议使用锁文件并做漏洞扫描。
- 任务类与完整资产通过 gated Hugging Face 数据集分发,需人工审批,离线或受限网络环境下可能无法获取。
- VM 内部分任务需要 sudo,默认凭据公开;若在共享或生产环境运行,应隔离网络与凭据。
- main 分支为开发版,README 明确建议使用发布标签;混用版本会导致评测结果不可比。