别让 AI 一步步点鼠标了:阿里开源 OpenGCUA,填一张表从 102 步砍到 34 步

别让 AI 一步步点鼠标了:阿里开源 OpenGCUA,填一张表从 102 步砍到 34 步

别让 AI 一步步点鼠标了:阿里开源 OpenGCUA,填一张表从 102 步砍到 34 步 封面

过去两年,电脑操作 Agent 的进化方式几乎是同一套动作:把屏幕截给模型,模型算出一个坐标,点下去,再截一次。你看着它填一张表单,鼠标点了一百多下,中途还点歪两次。

直到阿里通义实验室的 Tongyi-MAI 把 OpenGCUA 开源出来。仓库是 Tongyi-MAI/OpenGCUA,Apache-2.0 协议,建库时间 2026-10-15,最近一次 push 在 2026-10-21,目前 399 星、0 个 open issue,release 停在 v0.1.2,发布于 2026-10-19。技术报告挂在 arXiv:2610.22200。

它给出的答案有点扎心:问题不在模型不够聪明,在我们给模型搭的那套系统太笨。

而且这不是一个模型,也不是一个 demo,而是通用电脑操作智能体的全栈:SDK、运行时 harness、评测集成、真机 demo,都塞在同一个仓库里。名字里的 GCUA,就是 generalist computer-use agent 的缩写。

一张签证申请表,暴露了 GUI Agent 的天花板

官方给的例子很直白。填同一张签证申请表,GPT-6 Astra 从 102 步每任务降到 34 步每任务。放到 OSWorld-v2 离线集上,8 个前沿模型的平均部分分从 45.3 涨到 64.9,加 19.6 分,每任务步数平均下降 53%。

参与评测的 8 个前沿模型是 GPT-6 Astra、Claude Opus 5、Gemini 3.8 Flash、GLM-5.3-Flash、Qwen3.8-Max、Qwen3.8-Flash、Kimi K3 和 DeepSeek-V4.1-Flash。看这个名单:开源闭源都有,强的弱的都在,谁也没被单独优待。

步数为什么这么值钱?因为截图、算坐标、点一下这个循环,每一步都要重新看图、重新推理、重新定位。步数翻三倍,出错概率不是翻三倍,而是指数级往上翻。让它填 20 个字段的表单,它就要重新读 20 次屏幕。

这里有个容易误读的地方:模型没换。GPT-6 Astra 还是那个 GPT-6 Astra,权重一个字节没动。变的是它在什么样的系统里干活。

把 GUI 操作写成一段代码一次跑完,跟一格一格点鼠标是两回事
把 GUI 操作写成一段代码一次跑完,跟一格一格点鼠标是两回事

玩法变了:Code-Execution-as-Action

核心一句话就能说清:别让模型输出一个动作,让它输出一段程序。

官方给这个设计起了名字,叫 Code Execution。模型接到任务,写的不是点击坐标,而是一段 Python 或 Bash:循环遍历表单字段、判断某个弹窗有没有冒出来、断言某个值到底写进去没有。一次提交,本地跑完。

打个比方。传统 GUI Agent 像个被蒙住眼的人,每挪一步都要先摸一遍墙。OpenGCUA 是让他把整条路线写成脚本,然后自己跑一遍。

差别在处理意外的能力上。截图方案点歪了,只能从头再猜一次;代码方案能提前写兜底,某个按钮没找到就换选择器,某个窗口没弹出就等两秒再查一次。循环、条件、断言这三样东西,本来就是为不确定性准备的。

官方那句原话的意思很到位:GCUA 用电脑的方式比你多。它读 accessibility tree、调 app API、跑 shell 命令,需要的时候才去操作 GUI,还能在后台窗口里跟你共用一台电脑。

这也解释了它为什么不必每步截图。accessibility tree 里明明白白写着哪个按钮叫什么、哪个输入框还是空的,比从像素里猜坐标靠谱得多。

给任何软件装一个 Agent 能用的接口这件事,CLI-Anything 给的是另一种解法,可以和 OpenGCUA 对照着看。

三个决策,从 harness 交还给模型

第二个设计同样有名字,Harness-to-model decision transfer。原来写死在 harness 里的三个决策,现在交给模型自己定。

决策传统 GUI AgentOpenGCUA
观察什么每步截图只在需要时 screenshot()
怎么行动一次一个点击或按键一段程序,融合 accessibility tree、app API、shell 与 GUI 动作,带循环分支和检查
怎么组织工作harness 固定流程模型自己维护 todo 列表,每段程序前声明 <intent>

第三条最容易被忽略。模型自己维护 todo 列表,并在每段程序前声明 <intent>,等于把规划这件事从外部流程变成了模型的内在行为。harness 不再告诉它下一步该干嘛,它自己说了算。

三步跑通本地 demo

第一步,clone 与建环境

git clone https://github.com/Tongyi-MAI/OpenGCUA.git
cd OpenGCUA
uv venv --python 3.12
source .venv/bin/activate
uv pip install -e ./packages/sdk -e ./packages/harness/runtime
.venv/bin/mu setup macos
.venv/bin/mu doctor macos
.venv/bin/mu setup browser --engine chromium
.venv/bin/mu doctor browser --engine chromium
cp packages/harness/configs/macos_demo.json packages/harness/configs/local.json

第二步,填四个字段

改 packages/harness/configs/local.json,四个字段:api_key、model_name(示例 qwen3.8-flash)、llm_base_url(示例 https://dashscope.aliyuncs.com/compatible-mode/v1)、llm_protocol(示例 openai)。协议可选 openai、openai-thinking、anthropic;用 Claude 系列时配上 anthropic_thinking 的 adaptive 设置。

第三步,启动

.venv/bin/python packages/harness/runtime/mac_agent.py
.venv/bin/python packages/harness/runtime/mac_agent.py --ui plain
bash packages/harness/runtime/start_demo.sh

最后一条起的是 http://127.0.0.1:8800,带一个网页界面。官方 README 里还给了 SDK 示例:

import asyncio
from qwen_intelligence import Runtime
async def main():
    async with Runtime() as runtime:
        await runtime.add_macos(name="local-mac")
        async with runtime.session() as mu:
            mac = await mu.register("local-mac", name="mac")
            app = await mac.apps.get("com.apple.TextEdit")
            await mu.emit(await app.ui.ax.observe())
            await mu.emit(await app.windows.list())
asyncio.run(main())

官方在原注释里提醒了一句:先打开 TextEdit。

环境要求是 macOS 14 以上、CPython 3.11 到 3.14(推荐 3.12)、uv。源码安装还需要 Rust 与 Cargo 1.89 以上以及 Xcode 命令行工具,用预编译 wheel 就不用装 Rust。内部包名是 mai_ui,公开别名是 qwen_intelligence,pip 包名 qwen-intelligence-sdk。

仓库里的 OSWorld 集成示例给了两个参考实现,一个是 screenshot-action agent,一个是 code-action agent。想搞清楚两种玩法差多少,把这两个对着读一遍,比盯数字直观得多。

如果你只想看评测轨迹和 OSWorld 集成示例,clone 完仓库就够了;如果你想在本机真跑,才需要走完这三步并且开权限。

涨分最多的不是最强模型,强弱差距从 39.1 分缩到 18.0 分
涨分最多的不是最强模型,强弱差距从 39.1 分缩到 18.0 分

涨分最多的不是最强模型

这是整份技术报告里最反直觉的一段。

8 个模型里,涨分最多的两个都不是最强的那个:GLM-5.3-Flash 涨 35.2 分,DeepSeek-V4.1-Flash 涨 29.8 分。更关键的是,最强与最弱之间的分差,从 39.1 分缩到 18.0 分。

这说明什么?弱模型不是不会操作电脑,是原来的系统把它限制住了。一旦拿掉每步只能点一下这个约束,它自己就能把活干完。真正的瓶颈在系统层,不在模型层。

还有一组对照更能说明问题。在同样具备 GUI 与 shell 的条件下,把操作写成代码而不是 GUI 加 CLI,还能再加 6.1 分,步数再降 14.8%,这是三个模型的均值。

这组数据顺带修正了一个常见预期:换更强的模型,涨分肯定更多。结论正好相反,系统给的自由越多,原本被压住的模型反弹越猛。

真机上也有个有意思的数字。4 个 macOS 任务,固定 harness,Qwen3.8-Max 用了 GPT-6 Astra 19.4 倍的推理 token,完成 3 个;GPT-6 Astra 完成全部 4 个。token 堆得多,不等于任务做得完。

想横向对比的话,Holo4 走的是一个模型通吃屏幕、代码和 API 的路子,侧重点和 OpenGCUA 不一样。

五个坑,官方 README 里写死的

坑1:现象 一跑就返回 PERMISSION_DENIED。根因 没给 CuaDriver.app 开系统权限。解法 在系统设置里给 CuaDriver.app 勾上辅助功能与屏幕录制两项。

坑2:现象 装环境卡在编译。根因 走了源码安装,缺 Rust 或 Xcode 命令行工具。解法 改用预编译 wheel,就不需要 Rust。

坑3:现象 接 Claude 一直报错。根因 llm_protocol 填了 openai。解法 按官方说明改协议,并配 anthropic_thinking 的 adaptive。

坑4:现象 改了配置不生效,或者把模板改坏了。根因 直接编辑 macos_demo.json。解法 先 cp 出 local.json 再改。

坑5:现象 以为 GCUA 模型也一起开源了。根因 本版开源的是另外四样东西。解法 看清清单:OSWorld 集成示例(含 reference screenshot-action 与 code-action agent)、8 个前沿模型的评测轨迹、macOS 真机 harness(菜单栏 app,官方标注 preliminary)、Cross-Device SDK(官方标注 preliminary)。

路线图上明确没做的也有四项:GCUA 模型、执行效率优化、真机环境与 benchmark、跨设备可靠工作。官方原话是 We do not commit to dates,别指望时间表。

模型没变强,是系统让开了路

回到开头那张签证申请表。102 步到 34 步,模型一个字没改。

电脑操作 Agent 过去两年的努力方向,是把截图识别得更准、把坐标预测得更稳。OpenGCUA 换了一个问题:为什么要一步步点?

当一个 Agent 能读 accessibility tree、能调 app API、能跑 shell、能写循环和断言,它就不再是一个盯着屏幕的人,而是一个会写脚本的人。这两种能力之间的差距,靠堆参数追不上。

如果你还在用截图加坐标的路子做自动化,可以回头看看那篇桌面操作 Agent 的旧文,对照一下两年间的变化。

OpenGCUA 现在还早。路线图上四项没做,官方连日期都不肯给,真机 harness 和跨设备 SDK 都标着 preliminary。但方向已经清楚了:先把系统层那道枷锁拆掉,再谈模型能力。

让模型少干蠢事,比让模型多干难事,性价比高得多。

关注圈圈,持续带你玩转 AI 工具。

© 版权声明
THE END
喜欢就支持一下吧
点赞54 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容