你有没有遇到过这种情况------你在手机上下了一个"AI助手",让它帮你订一张从北京到上海的机票。
它打开携程,点了一下搜索框,弹出了键盘。它犹豫了两秒,点了取消。它又点了一下"机票"标签,页面刷新了。它开始往下滑,滑过头了,又滑回来。你看着它在那晃来晃去,像个第一次用智能手机的老人家。
50步之后,它告诉你:"任务完成"。你一看------它订了一张从北京到上海的高铁票,时间是三天后。
你叹了口气,自己动手重新订。
这不是段子。这是每一个用过GUI Agent的人的真实体验。模型明明能解IMO数学题,能写完整的Spring Boot项目,能在SWE-Bench上修bug------但让它点对屏幕上的一个按钮,它能把你的耐心耗光。
阿里通义Lab刚发了一篇技术报告,给出了一个反直觉的答案。
这篇报告发布不到24小时,在HuggingFace上拿了264个赞,是所有AI论文里的票数第一。不是因为它在某个榜单上又刷了一个SOTA。而是它直接挑战了GUI Agent这个方向最基础的设计假设。
你以为是模型不够聪明吗?不是。问题出在"让它点按钮"这个前提本身。
GUI Agent最大的秘密:它根本不该只用GUI
先看一个数据,这篇报告里最让人意外的数字。
在桌面端的测试中(OSWorld),Qwen-UI-Agent执行的所有操作里,CLI命令行占了40.7% 。到了更复杂的OSWorld-v2,这个比例上升到55.1%。
什么意思?一个叫"GUI Agent"的模型,超过一半的时间根本不在操作图形界面。它在敲命令行。
这听起来像是在作弊。你给一个Agent命名为"UI Agent",然后它偷偷用CLI------这不就相当于一个自称"手写书法"的人,偷偷开了打印机吗?
但你仔细一想,这才是对的。
圈圈做Java开发这么多年,对这件事体会太深了。你让实习生用IDE的图形界面操作Git------点右键、选Commit、勾文件、写message、点Push,5个步骤,3次鼠标移动,中间还可能点错分支。你让他打开终端敲 git add . && git commit -m "fix" && git push,一行命令,3秒搞定。
GUI适合探索,CLI适合执行。这两件事从来不应该被绑在一起。
阿里的团队在论文里把这件事说得很清楚:GUI提供的是"通用访问能力"------你能用它操作任何应用,不管这个应用有没有API。但纯GUI执行有一个致命问题:它把应该直来直去的结构化操作,拆成了一大堆"定位→点→等→看→再定位→再点"的碎片步骤。
就像你用Excel做一个透视表。你可以用鼠标点"插入→透视表→选区域→拖字段→设置格式",一共十来步。你也可以直接敲一段VBA宏,回车就跑完了。
Qwen-UI-Agent做的事,就是给了模型一个选择题:这条路适合用鼠标,还是适合用键盘?
三个设计突破,让27B的小模型敢跟Opus 4.8叫板
说完"为什么",我们说说"怎么做"。这篇报告里至少有三个设计,值得每一个做Agent的团队认真看。
第一个是动作空间的统一。
传统的GUI Agent只能做一个动作:看屏幕→决定点哪里→点。Qwen-UI-Agent在一个决策回合里可以同时决定:先点一下"文件"菜单,再敲一行 ls -la,最后调一个API查数据库。
这在工程上意味着什么?一个10步的任务,以前需要10次"看屏幕→决策→执行"的循环。现在可能只需要3次。
数据也证明了这一点。在OSWorld-Verified上,39.6%的动作是批量执行的。把串行变并行,不只是快,更是准------因为模型在同一个"思考"里做出来的决策,比分散在10个回合里做出来的决策,一致性高得多。
第二个是万级并发的在线强化学习。
这是这篇报告最硬核的部分。阿里的团队在云端部署了超过10,000个并发沙箱环境,每个环境里跑一个Agent实例,做任务、得奖励、更新策略------同时进行。
一个Agent完成一个任务可能要100多步。如果串行训练,100步×10,000个任务=100万步的等待时间。但有了并发沙箱,这些都并行跑。
这背后的工程难度想想就知道:10,000个Android虚拟机同时运行,每个都在操作不同的App、处理不同的弹窗、面临不同的网络状况。光是管理这些环境的状态,就需要一套调度系统。
但他们做了------而且用在了GRPO(Group Relative Policy Optimization)的训练里。 同一个任务,当前策略采样K条完整轨迹,比较组内的相对表现,然后更新。模型不是在"做对给糖、做错不给"的模式下训练,而是在"同一道题,你做的方法比你自己另外几次尝试更好"的对比中学会什么是正确的。
这比传统的RL精细得多。
第三个是AutoResearch数据飞轮。
这个设计很有意思。它不像传统的"人工写任务→收集数据→训练模型"的循环,而是让Agent自己当"产品经理"。
流程是这样的:先用强模型分析每个领域的知识和能力需求,让它生成初始任务池和验证器。然后用当前模型跑这些任务,跑完之后,不是只看对错,而是让另一个VLM模型当"裁判",逐步骤分析------哪些步骤正确推进了任务、哪些步骤是探索性思考、哪些步骤是错误之后的恢复。
最关键的一步在后面:分析所有失败案例,把失败原因归因到"模型不行"还是"环境/任务/验证器有问题"。如果是模型能力不足------比如不会区分列表里排名第3和第4的相似商品------那下一轮迭代就专门生成这类任务来练。
这是一个自我诊断、自我进化的闭环。模型越用越聪明,不是因为它记住了答案,而是因为它在不断发现自己的盲区。
这个飞轮还有一个被很多人忽略的配套设计:团队把Agent最常见的错误归成了六类。混淆相似元素(两个图标长得像,点错了)、排序错误(让你找第3便宜的,它找了第2便宜的)、数量遗漏(让你加5件商品进购物车,它只加了4件)、过早完成(在点"提交"之前就宣布任务完成)、重复死循环(反复点同一个按钮不做推进)、长尾动作缺失(不知道还有"长按"这个操作,只会点)。
每一类错误都配了专门的RL奖励函数。模型不是笼统地"做得更好",而是被精准地纠正每一种具体的坏习惯。这才是工程化的强化学习,不是学术论文里那种"反正跑了GRPO总会提升"的模糊归因。
那些榜单上看不到的失败,才是真正的瓶颈
好,说了这么多硬的,我们把滤镜摘掉。
这篇报告里有两张截图,比所有benchmark数字都更有说服力。
第一张:Agent被要求"在朴朴超市的直播间里,把所有10元以下的商品加入购物车,再收藏最贵的商品"。模型反复点开面包、榴莲、抹茶蛋糕------三次、四次、五次------就是没有按要求完成筛选。
第二张:Agent被要求"发一个微信朋友圈,然后设置可见范围为'仅自己可见'"。朋友圈发出去了。权限设置失败了。
论文团队在这两个案例旁边标了四个字:MODEL FAILURE。
这才是真实现状。 一个82.1% MobileWorld成功率的模型,依然会在"价格比较"和"权限修改"这两个人类觉得理所当然的操作上翻车。
而且还有一个关键细节:榜单上的竞争对手成绩,是阿里的团队自己复跑的,不是各家公司在同一个Benchmark上交的卷。他们主推的MobileWorld、MobileWorld-Real、AndroidDaily也不是业界公认的标准------它们是阿里自己搭建或深度参与的评测环境。
这不代表成绩是假的。但它意味着"82.1% vs Opus 4.8的67.5%"这个对比,不能当金标准来看。
真正重要的不是谁赢了跑分。真正重要的是他们建起了什么。
阿里建起的是一套完整的工程系统:10,000个并发沙箱、从任务生成到失败分析的自动飞轮、GUI+CLI+API统一动作空间、支持100+步轨迹的在线RL训练。
这套系统不是用来产出一篇论文的。是用来持续迭代一个产品的。
这个思路可以复制到哪些场景
回到开头那个问题:为什么GUI Agent总让你失望?
因为这些Agent被设计的方式,默认了一个错误的前提------"操作图形界面"就等于"理解图形界面"。但这两个能力,在本质上是独立的。
Qwen-UI-Agent的价值,不在于它在某个榜单上拿了一个SOTA。而在于它用工程实践证明了一件事:
一个Agent的最高境界,不是"什么都能点"。而是"知道什么时候不该点"。
这个原则,可以平移到几乎所有的Agent场景:
做RAG系统?别让Agent把检索到的10篇文章全读一遍。让它先看标题和摘要,判断哪些和当前问题有关,只读那2-3篇。
做代码审查Agent?别让它逐行读10,000行代码。让它先看git diff里改动的文件路径和函数签名,只深入分析被修改的逻辑。
做数据分析Agent?别让它"先看所有CSV文件的列名"。给它数据库Schema和最近100条查询日志,让它从实际使用模式入手。
你可能会说:"这些道理我都懂,但具体怎么改?" 答案就藏在这篇报告的四字真言里:统一动作空间。
你的Agent现在可能是一个"聊天型Agent"或者"搜索型Agent"或者"代码型Agent"。但你仔细看它的动作范围,其实非常窄------它只能做被预设好的那几种事。Qwen-UI-Agent告诉我们的事是:把Agent能做的动作种类翻倍,它的效率不是翻倍,是指数增长。 因为多种类的动作之间可以相互替代、相互补充,模型有了"选择权"才能真正做优化。
工具冗余是Agent设计里最容易被忽视的成本。 每一个多余的动作,不只是多花0.3秒。它增加了一个决策点,而每一个决策点都是错误的入口。
阿里这篇报告给出了一张处方:统一动作空间(别让模型在不同"模式"之间切换)+ 批量执行(把串行决策压缩成并行)+ 在线RL(让模型在实际执行中学会选择最优路径)。
你现在不一定能复现这个系统。但你现在就做这三件事:
第一,检查你的Agent有哪些"可以用CLI完成但偏要用GUI"的操作。找到它们,改成直接调用。你可能发现30%的冗余步骤。
第二,给你的Agent增加一个"选择器"维度。不是"做这个动作"和"做那个动作"的二选一,而是"用这种方式做"和"用那种方式做"的路径选择。让Agent学会在效率和安全之间找平衡。
第三,建一个失败案例的"归因分类"系统。不要看完结果就丢了。把每次失败归因到具体的能力缺口------是视觉理解?是长程规划?是约束遵循?然后有针对性地补数据。
好的Agent不是"什么都能做"。是"知道怎么最快地做到"。
阿里用40%的CLI操作占比,证明了这件事。