手机弹窗骗过了AI,也骗过了我们所有人的预期
2026-09-21 21:57:00  网易   [查看原文]

打开网易新闻 查看精彩图片

你有没有遇到过这种情况:正在手机上订酒店,结果一个全屏广告突然跳出来,你手忙脚乱地想关掉它,结果点错了地方,酒店没订成,倒是不小心订阅了一个会员服务。这种事人类每天都在经历,而且大部分时候我们能自己纠正过来。看到广告,皱皱眉,找到那个小小的关闭按钮,X,继续干正事。这套动作我们练了很多年,几乎是反射性的。但如果这个操作手机的不是人,是一个AI智能体呢?它会不会像人一样,被广告一晃,反应过来,然后关掉它继续任务?还是会彻底懵掉,把广告当成任务的一部分,一头栽进去出不来?这正是一群来自浙江大学、耶鲁大学、同济大学等机构的研究者们想搞清楚的事。他们做了一个叫ANTRAP的评测基准,专门用来测试Android手机上的GUI智能体,在遇到各种"意外"时到底能不能像人一样反应过来。结果挺让人意外的。哪怕是目前最强的模型,遇到这些意外时的表现,也比想象中脆弱得多。**手机智能体是什么,它到底在干什么**先说清楚背景。所谓GUI智能体(Graphical User Interface Agent:一种能够像人类一样,通过看屏幕截图、理解界面元素,然后做出点击、滑动、输入等操作来完成任务的AI系统),简单说就是让AI来帮你操作手机。你说一句"帮我把闹钟音量调到最大",它就自己去点设置,找到闹钟,拖动音量条,完成整个流程。这几年这类模型进步飞快,出现了AndroidLab、AndroidWorld、MobileWorld这些评测平台,专门测试智能体在动态环境里完成复杂任务的能力。听起来很厉害对吧,能自主操作手机完成长串复杂指令。但这些评测平台有个共同的盲点:它们测的都是"理想条件"下的表现。手机干干净净,没有弹窗,没有卡顿,agent想干什么就能干什么。现实世界完全不是这样。真实的手机使用场景里,广告弹窗、系统卡顿、加载延迟、应用跳转,这些东西天天都在发生。研究者们把这类来自外部环境的干扰称为环境扰动(Environment Perturbation:由手机系统或应用本身引发的、非用户主动触发的意外情况,比如弹窗广告、渲染错误、界面卡死)。除了外部干扰,智能体自己也会犯错。它可能把屏幕上的东西看错了,产生了幻觉(Visual Hallucination:AI模型在没有实际依据的情况下,凭空想象出图像中不存在的文字、按钮或界面元素),也可能点击的位置和它自己想点的位置不一致,也就是常说的抓取误差(Grounding Error:AI计算出的操作坐标,和它实际想要点击的目标元素位置发生偏差,导致点错地方)。这两类问题,一个来自外部世界,一个来自智能体自身,加在一起,构成了智能体在真实部署时最容易栽跟头的地方。可现有的评测体系基本没有系统性地考察过这件事。有的研究只关注视觉噪声,有的只测指令的模糊性,都没能覆盖智能体在真实运行时可能遇到的完整风险谱系。这就是ANTRAP要填的坑。**四层十类:给"意外"建一套档案**研究团队没有拍脑袋瞎编几种干扰方式,他们先做了一次田野调查。他们找了几个真实的GUI智能体(UI-TARS、GUI-Owl、MAI-UI),连上真机,通过ADB(Android Debug Bridge:安卓官方提供的命令行调试工具,可以让电脑远程控制和监控手机的操作行为)跑了600个日常任务,从发消息到导航到购物,覆盖30多个热门应用。然后把整个执行过程的截图、模型的思考过程、每一步的操作全部录下来。两位研究者坐下来,一步一步地看这600条轨迹,标注每一步出了什么问题。这不是简单地看任务失败了没有,而是逐帧检查,哪怕最后任务成功了,中间是否也经历过一次意外,只是智能体自己爬出来了。这个过程有点像法医做尸检,不是只看死没死,而是要搞清楚每一处伤痕是怎么来的。经过反复讨论和归类,他们最终提炼出一套四层结构的分类体系,起名STAR,对应四个层次:State(状态层)、Thinking(思考层)、Action(动作层)、Round(轮次层)。状态层的问题最直观,就是屏幕上突然出现了不该出现的东西。比如弹窗广告、权限请求、系统通知,这些属于外部干扰(External Interruption);再比如图片加载失败、渲染错误把关键按钮糊住了,这属于视觉遮蔽(Visual Obscuration)。思考层出问题的时候,屏幕本身没变,但智能体"脑子"里出了岔子。它可能因为看到了一张过时的截图而误判了当前状态,这叫时序冲突(Temporal Conflict:智能体基于错误的、非当前时刻的观察结果进行推理,导致对界面状态的理解产生偏差);也可能凭空看出屏幕上没有的文字或按钮,这就是前面提到的视觉幻觉。动作层的问题出在"手"上,思考没错,但执行歪了。抓取误差属于这一类,点击坐标偏离了目标;还有一种叫类型误用(Type Mismatch:把点击、长按、双击这几种操作方式弄混,或者调用了根本不存在的操作指令),以及意图偏离(Intent Deviation:智能体实际执行的动作,和它自己在推理中规划的动作不一致)。轮次层是最麻烦的一类,问题不是发生在某一步,而是跨越连续多步。比如智能体陷入了一个循环,反复点同一个地方,屏幕却始终没变化,这叫状态死锁(State Deadlock:环境明明收到了操作指令,但界面状态完全没有更新,就好像手机对你的点击视而不见);再比如任务进行到一半,突然被切换到桌面或跳转到无关应用,这是上下文断裂(Context Disruption);还有智能体像掉进了一个死循环,不断重复相同的界面切换动作,这叫循环陷阱(Loop)。四层十类,每一种都对应真实世界里能发生的具体情况。这套分类体系不是纯理论的产物,而是从600个真实任务里一帧一帧标注出来的。这里可以打个比方。假设你是一个新来的客服,公司给你培训的时候,只教你怎么应付顺利的对话,从来没教过遇到客户投诉、系统卡顿、领导突然插话该怎么办。等你真正上岗,遇到的第一个愤怒客户就可能让你彻底懵住,因为你脑子里根本没有"意外应对"这根弦。如果公司提前把常见的意外场景一条条列出来,专门做过演练,你上岗后至少知道该往哪个方向反应。ANTRAP做的就是这件事,把手机智能体可能遇到的各种"意外客户"提前列成清单,让评测能够精准命中每一种情况,而不是靠运气偶然撞上几个。**怎么把干扰真实地塞进智能体的执行流程里**光有分类还不够,得有办法把这些干扰真实地注入到智能体的运行过程中,还得保证任务依然是可以完成的,不能因为加了干扰就变成无法完成的死局。研究团队用AndroidWorld作为基础环境,这是一个动态的安卓模拟器测试平台。他们手动扩充了原本116个任务,新增120个,凑成236个任务,每一个都经过人工检查,确保初始状态合理、能通过正常操作完成、评判标准准确。干扰注入的方式挺讲究。状态层的干扰是直接改环境本身,比如通过一个专门开发的名叫TrapOverlay的APK,在手机上触发弹窗,弹窗内容可以用预设模板,也可以让智能体自己的语言模型实时生成一段符合当前应用场景的假通知。视觉遮蔽则是用图像处理的方式,随机选一个界面元素,打上高斯模糊或者纯色遮盖。思考层的干扰比较狡猾。系统会用一张之前几步的旧截图替换掉当前该给智能体看的画面,但会在历史记录里悄悄标注这是当前状态。这里有个细节值得说清楚:这张被替换的假画面本身不会被写入智能体的持久记忆,只有智能体因为看错了画面而做出的错误反应会被永久记录下来。这个设计的意图是,接下来智能体必须背着自己刚刚犯下的这个错误继续往前走,考验它能不能自己发现不对劲,而不是靠系统偷偷帮它擦掉痛苦记忆。动作层的干扰发生在智能体输出动作之后、真正执行之前的那一瞬间。系统会偷偷把坐标偏移个20到50像素,或者把点击换成长按,模型自己完全不知道,它以为自己点在了A点,实际上点在了A点旁边一点的B点。轮次层的干扰最粗暴,直接在执行层面拦截多个连续步骤。比如状态死锁的实现方式,是让系统在若干步内直接屏蔽所有的ADB指令,不管智能体点哪里,屏幕都不会有任何变化,逼着它自己判断"这是不是卡住了"。整套设计遵循两条铁律。第一条是动态介入(Dynamic Intervention:干扰是随机插入到执行轨迹中的,而不是提前写死在一份固定脚本里),第二条是可解性保留(Solvability Preservation:无论注入什么干扰,任务本身依然存在可以完成的路径,保证智能体的失败只能归咎于自身能力不足,不能归咎于任务本身变成了无解题)。这就好比考驾照的路考,考官不会提前把整条路封死让你无路可走,他会临时安排一个行人突然出现在斑马线上,但那条路本身依然是能开过去的。你能不能顺利通过,考的是你的应变能力,不是运气。如果考官真把路封死了,那考试就失去了意义,因为不管你多厉害都过不去,测出来的只是"这条路是不是被封了",而不是"这个司机反应快不快"。为了确认这套评测体系靠得住,团队还找了专业标注员对所有任务做了人工审核,检查原任务是否可解、加了干扰之后是否依然可解、这个干扰在真实手机场景里是否真的可能发生。结果91%的任务三项全部达标,没通过的那部分被重新修订后才纳入正式基准。**16个模型跑一遍,几乎全线翻车**基准搭好了,接下来就是让模型上场考试。团队一共测了16个主流模型,横跨7家机构,包括Claude、Gemini、GPT系列的商业模型,也包括UI-TARS、GUI-Owl、MAI-UI、Qwen3-VL这些开源模型。结果相当扎心。不管是商业模型还是开源模型,在遇到干扰之后,成功率无一例外全部下降。就连表现最好的Claude-Sonnet-4.6,原本干净环境下能做到74.2%的成功率,一旦引入干扰,直接掉到66.5%,足足掉了将近8个百分点。表现同样强悍的GUI-Owl-1.5-32B-Think,从69.5%跌到62.4%。**这说明现有的智能体基本都是为"理想执行路径"训练出来的,一旦现实世界不那么理想,它们就集体缺乏应对能力。**更细致地看四个层次之间的差异,会发现一个明显的规律:单步的、瞬间发生的干扰,模型还算能扛得住,但需要跨越多个步骤、依靠上下文记忆去判断的干扰,模型就非常容易翻车。具体来说,动作层的干扰,比如抓取误差、类型误用,模型受到的影响相对较小。视觉遮蔽和视觉幻觉这类单步的思考层干扰,也还能忍受。但一旦碰上轮次层的干扰,比如状态死锁、循环陷阱、上下文断裂,大部分模型的表现掉得非常明显。这背后其实反映了一个挺根本的问题:这些模型更擅长处理"当下这一步该怎么办",而不擅长回过头去审视"我刚才是不是已经卡在一个循环里了"。这种能力,研究者们称之为长时依赖的元认知能力,通俗点说,就是缺乏一种"跳出来看全局"的本事。这里有个反直觉的发现。你可能会觉得,那些带"思考"模式的模型(比如GUI-Owl-1.5-32B-Think相对于它的Instruct版本),既然会先思考再行动,应该更擅长应对突发状况才对。但数据告诉我们,并不是这样。思考型模型确实在干净环境下表现更强,比如Qwen3-VL-8B-Thinking的原始成功率是62.7%,比它的指令版高出10个百分点。但当放进ANTRAP环境后,思考型模型掉分的幅度跟指令版几乎一样,甚至有些情况下掉得更多。GUI-Owl-1.5-32B-Think掉了7.1个百分点,比它自己的指令版本掉的5.8个百分点还多。这就好比一个学生,平时做作业特别细心,写完还会检查一遍,考试成绩一直很好。但真到了考场上突然停电,或者旁边同学突然晕倒,这种意外情况下,他那套"仔细思考"的习惯并没有帮他更好地应对突发状况,因为他从来没有针对"突发状况"这件事本身进行过训练。思考能力和应变能力,压根就是两种不同的技能,一个练的是解题的深度,另一个练的是察觉异常的敏感度。这两者互不担保。**用GRPO训练,测出哪些坑能填,哪些坑填不了**发现问题只是第一步,团队接着想搞清楚,这些脆弱性到底是能靠训练解决的,还是模型本身有些能力上的死角,训练也补不上。他们用了一种叫GRPO(Group Relative Policy Optimization:一种在线强化学习训练方法,让模型针对同一个任务生成多条尝试路径,通过路径之间的相对比较来计算优化信号,从而不需要额外训练一个评价模型)的方法,分别在原始干净环境和ANTRAP的对抗环境里训练了两个模型,UI-TARS-1.5-7B和GUI-Owl-7B。第一组实验是只在干净环境里训练。结果很直接:模型在标准任务上的成绩提升明显,GUI-Owl-7B从63.1%涨到69.9%,UI-TARS-7B从29.7%涨到36.0%。这说明常规的强化学习确实能让模型把任务本身做得更熟练。但如果拿这个只用干净数据训练出来的模型再去跑ANTRAP的对抗测试,效果却相当有限。动作层稍微有点提升,一两个百分点,状态层的提升更小,思考层和轮次层几乎没有任何改善。也就是说,光是把正常任务练得更熟,并不能自动带来抗干扰能力,这两件事根本不是同一件事。第二组实验是专门针对每一种干扰子类别做训练,一共十次独立的训练,每次只往训练数据里注入一种特定类型的干扰。结果这次就有意思多了。模型对状态层干扰的抗性明显提升,提升幅度在8到11个百分点之间。动作层里的抓取误差和类型误用也提升明显,最高能到8.5个百分点。这说明这类干扰是可以通过针对性训练学会应对的,只要给模型看到足够多"遇到弹窗该怎么办"的成功案例,它就能内化出对应的应对策略。**但轮次层的表现依然很挣扎。** 状态死锁、上下文断裂这些干扰,提升幅度都在3个百分点以内,循环陷阱这一项,提升幅度甚至不到1个百分点。这个对比特别值得琢磨。有些坑,只要给模型看过几次"踩坑后怎么爬出来"的例子,它就能学会绕开或者应对;但有些坑,不管给多少训练数据,模型依然爬不出来。研究者认为,这背后的根本原因是模型本身缺乏那种回头审视整段历史、判断自己是否陷入死循环的机制,这不是靠喂更多数据就能补上的能力短板,而是一种结构性的局限。这就好比训练一个新司机。你可以反复给他演练遇到突然变道的车该怎么办,遇到路口有行人闯红灯该怎么办,这些应急反应练几次就能掌握,因为每一次都是一个孤立的、当下能判断的场景。但如果这个司机压根不会看后视镜,不会回顾自己刚才走过的路线,那你没法通过"多练几次急刹车"来教会他判断"我是不是已经在同一个街区绕了三圈了"。这需要的是一种完全不同的能力,一种对时间跨度的感知力,而不是对单个瞬间的反应力。技巧性的训练解决不了结构性的缺失。团队还做了一个补充实验,把十种干扰混在一起随机训练,而不是一次只练一种。结果发现,这种混合训练在标准任务上的提升和分类训练差不多,但对具体某一类干扰的抗性提升却被大大稀释了,效果接近于只在干净环境训练的水平。这进一步印证了一个道理,针对性的、集中的对抗训练才是真正有效的,把学习信号摊得太薄,模型学不到扎实的应对策略。写在后面读到这篇论文的时候,最触动我的其实是那个"91%通过人工审核"的细节。团队没有满足于设计出一套理论上完美的分类体系就收工,而是真的找人一条条核对,任务能不能做、加了干扰之后还能不能做、这个干扰在真实生活里是否真会发生。这种朴素但费时费力的验证方式,反而是整个研究里最让我信服的部分,因为再精妙的分类框架,如果建立在不真实的场景之上,那测出来的结果也是空中楼阁。还有一点值得单独说说,那就是"思考型模型不等于抗干扰能力强"这个发现。这多少打破了一种朴素的直觉,我们很容易以为,模型越"聪明"、推理链条越长,应该越能处理意外情况。但这篇论文用数据说明,推理能力和应变能力其实是两条不完全重叠的技能线,一个负责把常规任务做深做透,另一个负责在异常发生时保持警觉。这让我想到,人类专家里也有类似的现象,一个人可能业务能力极强,但遇到突发状况时反而容易慌,因为他练的是"把熟悉的事做到极致",而不是"面对陌生情况时怎么冷静下来"。这两种能力值得分开培养,也值得分开评估,不能靠一个笼统的"整体表现好"来掩盖另一个维度上的空白。轮次层的死循环问题,读到这里的时候我忍不住多想了一层。这种"卡在循环里出不来"的现象,某种程度上像极了人在某些情境下的思维定式,反复用同一种方式尝试同一件事,即便结果一次次证明无效,也很难主动跳出来换个角度看问题。人类靠的是自我觉察,那句"我好像一直在做同样的事"的内心提醒。而AI目前显然还缺这根弦。这背后可能不只是一个工程问题,也许触及了更根本的东西,关于怎么让一个系统对自己的历史行为产生"意识",而不只是逐帧响应当下的输入。这篇论文没有给出答案,它甚至连尝试用监督微调去解决这个问题都没做,作者自己在文章里也坦言这是留给未来的方向。这倒也挺诚实的,研究者做了一个诊断工具,测出了病灶在哪,但没有装作自己也开好了药方。那么,一个AI要花多久,才能学会那种回头看看自己走过的路、发现自己在原地打转的能力?Q&AQ1:ANTRAP基准测试的是什么?A:ANTRAP专门测试Android手机GUI智能体在遇到运行时异常时的恢复能力,包括弹窗广告、系统卡顿这类外部环境干扰,以及模型自身的视觉误判、点击偏差这类内部错误,一共分为State、Thinking、Action、Round四层十个细分类别。Q2:为什么思考型模型遇到干扰时表现依然不好?A:思考型模型在干净环境下确实表现更强,但研究发现推理能力和抗干扰能力是两种不同的技能。数据显示思考型模型面对干扰时的掉分幅度和普通指令模型几乎一样,甚至有时更大,说明会思考不代表能应对意外。Q3:GRPO强化学习训练能解决所有的智能体脆弱性问题吗?A:不能。针对性训练能明显提升模型应对状态层弹窗和动作层执行错误的能力,提升幅度可达8到11个百分点,但对轮次层的状态死锁、循环陷阱等多步上下文问题几乎没有效果,提升不到1个百分点,说明这属于结构性局限,不是靠喂数据就能解决的。

本栏目中的所有页面均系自动生成,自动分类排列,采用联索网络信息采集、网页信息提取、语义计算等智能搜索技术。内容源于公开的媒体报道,包括但不限于新闻网站、电子报刊、行业门户、客户网站等。使用本栏目前必读