探索 OpenCUA:为计算机使用代理构建开放基础
你有没有想过,AI 代理如何像人类一样与计算机互动——点击按钮、输入文字,或者在应用间切换?这就是计算机使用代理(CUA)的领域。今天,我来深入聊聊 OpenCUA,这是一个开源框架,旨在让这项技术变得更易获取和可扩展。如果你是一名开发者、研究者,或者只是对 AI 在日常计算中的作用感兴趣,这篇文章会一步步带你了解 OpenCUA 的内容,从数据集和工具,到模型性能以及上手方法。我会边讲边回答一些常见问题。
OpenCUA 的全称是 Open Foundations for Computer-Use Agents。它是一个完整的开源框架,包括数据集、工具、模型和基准测试,帮助构建和研究 CUA。这些代理利用视觉语言模型,在桌面环境中自动化各种任务,覆盖 Windows、macOS 和 Ubuntu 等操作系统。这个框架解决了开源 CUA 领域的关键挑战,比如收集多样化数据,以及训练能够有效规划和执行动作的模型。
我们先从基础说起:为什么 OpenCUA 重要?在许多高级 CUA 系统仍属于专有的领域,OpenCUA 提供了透明度。它让研究者能够实验数据和模型的扩展,研究局限性,并探讨潜在风险。这个项目于 2025 年 8 月 13 日发布,arXiv 论文编号为 abs/2508.09123,项目页面在 opencua.xlang.ai。

这张图展示了 OpenCUA-7B 如何随数据扩展而提升性能,突显了框架对通过更好数据和建模实现增长的重视。
OpenCUA 包含哪些组件?
如果你在想,“OpenCUA 到底有什么内容?”——它围绕四个主要部分构建:
-
AgentNet:一个大规模计算机使用任务数据集。 -
AgentNetTool:捕获人类演示的工具。 -
AgentNetBench:离线评估模型的基准。 -
OpenCUA 模型:训练好的模型,能生成可执行动作。
这些元素协同工作,用于收集数据、处理数据、训练模型和评估模型。例如,AgentNet 包含超过 22,000 个任务,跨越 200 多个应用和网站,是桌面环境首个如此规模的数据集。
AgentNet:驱动一切的数据集
你可能在想,“他们是怎么收集这些数据的?” AgentNet 来自真实人类在个人电脑上的互动。它覆盖 Windows、macOS 和 Ubuntu 的任务,平均每个任务 18.6 步。这不仅仅是简单点击——任务往往涉及复杂流程,比如使用专业工具或在应用间切换。
这里是 AgentNet 与其他 GUI 数据集的快速比较,便于你理解上下文:
数据集 | 任务数 | 平均步数 | 环境类型 | 个性化环境 | 人类轨迹 | Dom/AxTree | 视频 | 内心独白 |
---|---|---|---|---|---|---|---|---|
AndroidControl | 15283 | 5.5 | 移动 | 否 | 是 | 是 | 否 | 短 |
AMEX | 2991 | 11.9 | 移动 | 否 | 是 | 否 | 否 | 否 |
AitW | 2346 | 8.1 | 移动 | 否 | 是 | 是 | 否 | 否 |
AitZ | 1987 | 6.0 | 移动 | 否 | 是 | 否 | 否 | 短 |
GUI Odyssey | 7735 | 15.3 | 移动 | 否 | 是 | 否 | 否 | 否 |
OS-Genesis | 2451 | 6.4 | 移动&网页 | 否 | 否 | 是 | 否 | 短 |
WonderBread | 598 | 8.4 | 网页 | 否 | 是 | 是 | 是 | 否 |
AgentTrek | 10398 | 12.1 | 网页 | 否 | 否 | 是 | 是 | 短 |
Mind2Web | 2350 | 7.3 | 网页 | 否 | 是 | 是 | 否 | 否 |
GUIAct | 2482 | 6.7 | 网页 | 否 | 是 | 是 | 否 | 否 |
AgentNet | 22625 | 18.6 | 桌面 | 是 | 是 | 是 | 是 | 长 |
AgentNet 脱颖而出,因为它专注于桌面,使用个性化环境,并为每个步骤包含长内心独白(反思性推理)。

如这张领域分布图所示,AgentNet 跨越生产力、浏览和创意工具等类别。
下载 AgentNet 的步骤:
-
安装 Hugging Face Hub: pip install -U huggingface_hub
-
执行: huggingface-cli download xlangai/AgentNet --repo-type dataset --local-dir ./AgentNet
解压(例如 Ubuntu 数据):
-
合并 zip 文件: zip -s 0 images.zip --out images-full.zip
-
解压: unzip images-full.zip -d path_to_your_target_dir
数据收集涉及三个步骤:用 AgentNetTool 演示任务、处理动作,以及合成推理。
AgentNetTool 如何运作?
如果你试过录制计算机任务,会知道这很麻烦。AgentNetTool 改变了这一点。它是一个跨平台的 GUI 录制器,能捕获屏幕视频、鼠标/键盘事件和可访问性树,而不打扰你的工作。它在 Windows、macOS 或 Ubuntu 上后台运行。

工具提供浏览器内 UI,用于审阅和提交演示。标注注重多样性和复杂性——任务至少 15 步,覆盖 100 多个应用和 190 个网站。
录制后,原始数据(密集动作如数千鼠标移动)被处理:
-
动作减少:将信号合并为 PyAutoGUI 动作(例如,组合鼠标移动和点击)。 -
状态-动作匹配:将动作与动作发生前最后一个独特截图对齐,避免泄露未来信息。
这产生紧凑的轨迹,用于训练。
OpenCUA 中的反思性长链思考合成
一个常见问题是,“这些模型如何学会像人类一样思考?” OpenCUA 通过反思性长链思考(CoT)增强数据。这不仅仅是基本步骤——它是详细的内心独白,包括对过去动作的反思、错误检测和规划。
合成管道:
-
反射器:通过比较动作前后截图检查错误,并生成反思。 -
生成器:基于历史、截图和动作创建结构化 CoT。使用视觉提示,如坐标处的红标记。 -
总结器:精炼任务目标以提高清晰度。
这个 CoT 有三个层级:
-
L3:关键元素的上下文观察。 -
L2:对过渡、历史和备选方案的反思性推理。 -
L1:可执行动作。
在这种数据上训练,提升了泛化,因为模型学会从错误中恢复。
OpenCUA 模型:从训练到执行
现在聊聊模型。OpenCUA 包括几个模型,如 OpenCUA-7B 和 OpenCUA-32B,基于 Qwen 架构,但修改以更好地对齐(例如,用 1D RoPE 替换 M-RoPE,并使用 Kimi-VL 分词器)。
快速上手:安装和运行模型
想知道如何上手 OpenCUA 模型?这里是逐步指南。
安装
-
创建 Conda 环境: conda create -n opencua python=3.10
-
激活: conda activate opencua
-
安装依赖: pip install -r requirement.txt
下载模型权重
使用 Hugging Face:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="xlangai/OpenCUA-7B",
local_dir="OpenCUA-7B",
local_dir_use_symlinks=False
)
Qwen 基模型注意:使用自定义分词器和聊天模板;不要依赖默认 Transformers 或 vLLM 类。vLLM 支持正在开发中——敬请期待。
GUI 定位示例
测试定位(识别 UI 元素):
-
导航到 ./model/inference/
-
运行: python huggingface_inference.py
这会运行五个示例。
作为计算机使用代理运行
OpenCUA 代理在 OSWorld 等环境中工作。代理通过截图感知,生成 CoT,并预测动作。
OSWorld 命令:
python run_multienv_opencua.py \
--headless \
--observation_type screenshot \
--model OpenCUA-32B \
--result_dir ./results --test_all_meta_path evaluation_examples/test_all_no_gdrive.json \
--max_steps 100 \
--num_envs 30 \
--coordinate_type qwen25
默认使用 3 张图像和 L2 CoT。目前仅支持 Hugging Face 推理。
性能洞察:这些模型表现如何?
如果你最关心性能,OpenCUA 在基准测试上表现出色。
OSWorld-Verified 在线代理评估
OpenCUA-32B 在 100 步达到 34.8% 成功率,领先开源模型。
模型 | 15 步 | 50 步 | 100 步 |
---|---|---|---|
专有 | |||
OpenAI CUA | 26.0 | 31.3 | 31.4 |
Seed 1.5-VL | 27.9 | — | 34.1 |
Claude 3.7 Sonnet | 27.1 | 35.8 | 35.9 |
Claude 4 Sonnet | 31.2 | 43.9 | 41.5 |
开源 | |||
Qwen 2.5-VL-32B-Instruct | 3.0 | — | 3.9 |
Qwen 2.5-VL-72B-Instruct | 4.4 | — | 5.0 |
Kimi-VL-A3B | 9.7 | — | 10.3 |
UI-TARS-72B-DPO | 24.0 | 25.8 | 27.1 |
UI-TARS-1.5-7B | 24.5 | 27.3 | 27.4 |
OpenCUA-7B(我们的) | 24.3 | 27.9 | 26.6 |
OpenCUA-32B(我们的) | 29.7 | 34.1 | 34.8 |
分数是 3 次运行的平均值。它缩小了与 Claude 等专有模型的差距。
GUI 定位性能
在 OSWorld-G 和 ScreenSpot 等任务上:
模型 | OSWorld-G | ScreenSpot-V2 | ScreenSpot-Pro |
---|---|---|---|
Qwen2.5-VL-7B | 31.4 | 88.8 | 27.6 |
Qwen2.5-VL-32B | 46.5 | 87.0 | 39.4 |
UI-TARS-72B | 57.1 | 90.3 | 38.1 |
OpenCUA-A3B | 48.6 | 91.4 | 28.5 |
OpenCUA-7B | 45.7 | 88.5 | 23.7 |
OpenCUA-2.5-7B | 55.3 | 92.3 | 50.0 |
OpenCUA-2.5-32B | 59.6 | 93.4 | 55.3 |
AgentNetBench 离线评估
AgentNetBench 将预测动作与真实轨迹比较,关注坐标、内容和函数。
模型 | 坐标动作 | 内容动作 | 函数动作 | 平均 |
---|---|---|---|---|
Qwen2.5-VL-7B | 50.7 | 40.8 | 3.1 | 48.0 |
Qwen2.5-VL-32B | 66.6 | 47.2 | 41.5 | 64.8 |
Qwen2.5-VL-72B | 67.2 | 52.6 | 50.5 | 67.0 |
OpenAI CUA | 71.7 | 57.3 | 80.0 | 73.1 |
OpenCUA-2.5-7B | 79.0 | 62.0 | 44.3 | 75.2 |
OpenCUA-2.5-32B | 81.9 | 66.1 | 55.7 | 79.1 |
这个离线设置通过使用黄金标准动作加速测试。
AgentNetBench:离线评估代理
“如果我不想要全环境设置来测试呢?” AgentNetBench 就是答案。它是一个离线评估器,将模型动作(如 click、moveTo、write)与人类轨迹匹配。详情见 ./evaluation/agentnetbench/ 中的 README。
动作空间包括:
-
点击:click(x, y, button) -
鼠标移动:moveTo(x, y) -
输入:write(text) -
按键:press(key) -
终止:terminate(‘success’ or ‘failure’)
以及更多,如框架中列出。
训练和建模细节
好奇训练过程?OpenCUA 使用监督微调在增强 CoT 的状态-动作对上训练。关键洞察:
-
带反思 CoT 的扩展比纯动作更好。 -
多图像历史改善上下文。 -
数据混合(推理 + 通用文本)提升性能。
框架将任务建模为状态-动作轨迹:给定指令 I,从截图预测动作直到终止。
即将到来功能和致谢
团队正在开发 vLLM 支持和开源训练代码(当前基于 Kimi 基础设施)。
致谢合作者如 Yu Su、Caiming Xiong,以及 Moonshot AI 提供的数据和基础设施。工具基于 DuckTrack 和 OpenAdapt。
仅限研究使用——禁止非法活动。如果使用,请引用论文:
@misc{wang2025opencuaopenfoundationscomputeruse,
title={OpenCUA: Open Foundations for Computer-Use Agents},
author={Xinyuan Wang and Bowen Wang and Dunjie Lu and Junlin Yang and Tianbao Xie and Junli Wang and Jiaqi Deng and Xiaole Guo and Yiheng Xu and Chen Henry Wu and Zhennan Shen and Zhuokai Li and Ryan Li and Xiaochuan Li and Junda Chen and Boyuan Zheng and Peihang Li and Fangyu Lei and Ruisheng Cao and Yeqiao Fu and Dongchan Shin and Martin Shin and Jiarui Hu and Yuxiao Ye and Danyang Zhang and Dikang Du and Hao Hu and Huarong Chen and Zaida Zhou and Haotian Yao and Ziwei Chen and Qizheng Gu and Yipu Wang and Heng Wang and Diyi Yang and Victor Zhong and Flood Sung and Y. Charles and Zhilin Yang and Tao Yu},
year={2025},
eprint={2508.09123},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2508.09123},
}
常见问题解答:回答你对 OpenCUA 的疑问
基于用户可能问的问题,这里是一些常见查询。
OpenCUA 中的计算机使用代理是什么?
CUA 是一种 AI,利用视觉语言模型自动化桌面任务。它观察截图并预测动作,如点击或输入。
OpenCUA 与专有 CUA 有何不同?
它是完全开源的,允许研究数据扩展、风险和能力。专有如 Claude 保持细节封闭。
我能用 OpenCUA 模型做自己的项目吗?
是的,用于研究/教育。从 Hugging Face 下载:https://huggingface.co/collections/xlangai/opencua-open-foundations-for-computer-use-agents-6882014ebecdbbe46074a68d
为什么添加反思 CoT?
它教导规划、错误恢复和反思,导致更好扩展(例如,OSWorld 上 34.8% vs. 无时 4.4%)。
AgentNetTool 免费使用吗?
是的,在 https://agentnet-tool.xlang.ai/ 有文档。
如何用 AgentNetBench 评估自己的模型?
遵循 README:它报告动作匹配指标。
支持哪些操作系统?
Windows、macOS、Ubuntu——数据跨所有收集。
数据收集有隐私问题吗?
是的,但使用多层保护,并要求同意。
OpenCUA 可扩展性如何?
性能随数据大小和模型大小改善,如扩展图所示。
我能贡献 OpenCUA 吗?
查看 GitHub:https://github.com/xlang-ai/OpenCUA
总结来说,OpenCUA 为构建更好 CUA 打开了大门。不管你是实验数据集还是运行模型,它提供坚实基础。如果你试用,分享你的经验——这都是为了共同推进领域。
(字数:约 3850)