跳转至

D-GARA: A Dynamic Benchmarking Framework for GUI Agent Robustness in Real-World Anomalies

会议: AAAI 2026
arXiv: 2511.16590
代码: sen0609/D-GARA
领域: Agent / LLM
关键词: GUI Agent, 鲁棒性评估, 动态benchmark, 异常注入, Android, 中断处理

一句话总结

提出 D-GARA,一个面向 Android GUI Agent 的动态鲁棒性评估框架,通过在实时交互过程中注入权限弹窗、电量警告、应用崩溃等真实世界异常,揭示现有 SOTA Agent(包括 UI-TARS-72B、GPT-4o)在中断场景下平均成功率下降超过 17.5%,最高达 33% 的严重脆弱性。

研究背景与动机

GUI Agent 的目标:GUI Agent 旨在像人类一样操作图形界面,通过视觉理解、任务规划和动作执行完成复杂任务,这是通向 AGI 的关键能力之一。

静态 benchmark 的虚假繁荣:现有评估数据集(如 Android Control、Mind2Web)采用静态截图+固定动作序列的范式,Agent 在这些理想环境下表现良好,但这掩盖了其在真实动态场景中的脆弱性。

真实世界充满中断:实际使用手机时,权限对话框、低电量警告、应用更新提示、网络切换等中断事件随时可能发生,这些异常会打断 Agent 的执行流程甚至导致完全偏离任务目标。

已有"异常"评估的不足:GUI-Robust 等工作虽然引入了异常样本,但仍属于静态范式——仅在正常轨迹中插入一张弹窗截图,Agent 只需点击关闭即可继续原路径,本质上是 teacher-forcing 模式,无法模拟真正改变执行路径的复杂异常。

动态环境的局限:AndroidWorld 提供了动态评估环境,但任务过于简单(仅116个纯净任务),不支持自定义任务,且不包含任何异常。

迫切需求:需要一个标准化框架,能在动态真实环境中全面评估 Agent 面对异常时的鲁棒性,D-GARA 正是为填补这一空白而生。

方法详解

整体框架

D-GARA 是一个模块化的动态评估框架,核心流程形成一个"执行循环":从 Android 设备捕获截图和 XML 布局 → 判断是否注入异常 → 将多模态输入传给 Agent → Agent 输出动作指令(点击、输入等) → 通过 ADB 执行 → UI 状态更新 → 验证是否达成目标。框架包含两个核心模块:异常触发机制成功验证机制,二者在每个执行循环中顺序运作。

关键设计

1. 语义异常触发机制(Semantic Anomaly Triggering)

  • 功能:基于当前 UI 状态的语义内容,自动判断是否触发异常注入。
  • 核心思路:采用轻量级规则引擎检查 XML 文件中的文本内容。每条规则定义一组关键词和匹配阈值,当 XML 满足条件时触发对应异常。例如导航页规则指定关键词 ["Drive", "Nearby", "Metro", "Mine"],阈值 0.75(即四个词中至少匹配三个),满足后注入位置权限对话框。
  • 设计动机:让异常注入与当前 UI 上下文语义相关,而非随机插入,使中断更自然、更贴近真实场景。

2. 两阶段异常处理管线(Two-Stage Anomaly Pipeline)

  • 功能:将异常建模为"弹窗展示 + 后续状态转移"两个阶段。
  • 核心思路:Stage 1 中 Agent 面对前台弹窗(如权限请求)做出选择;Stage 2 中 D-GARA 根据 Agent 的选择通过 ADB 命令执行相应的后续动作——例如选择"允许"则跳转到系统设置页,选择"拒绝"则应用直接退出。
  • 设计动机:区别于静态弹窗(点掉就能继续),真实异常的不同处理方式会导致完全不同的执行路径。这种两阶段设计能模拟异常导致 Agent 被引到预期之外的界面,考验 Agent 是否能保持任务目标感知并自主恢复。

3. 基于状态的成功验证(Success Validator)

  • 功能:每次动作后检查 UI 状态是否满足声明式定义的目标条件,而非依赖 Agent 自报的"done"信号。
  • 核心思路:检查 XML 中特定元素的属性值。例如视频点赞任务的成功条件为 resource-id=tv.app:id/like_buttoncontent-desc 属性为 "Liked"。同类型任务可复用同一条规则,大幅降低标注成本。
  • 设计动机:Agent 的完成信号不可靠——小模型可能完成了任务但不输出"done",大模型可能误报"done"导致提前终止。以目标 UI 状态为判据不依赖中间步骤是否正确,允许 Agent 绕路、犯错、回退,只要最终到达目标即可。

4. 外部配置驱动的异常定义

  • 功能:所有触发逻辑通过外部 YAML 配置文件声明,而非硬编码。
  • 核心思路:每条规则原型包含目标 Activity、触发条件、展示内容和后续动作。异常界面模板在 Android Studio 中设计并编译为独立 APK,运行时由配置文件填充参数。
  • 设计动机:将异常逻辑与目标应用隔离,避免原生系统对话框在不同设备/Android 版本上的不一致性,同时支持研究者通过扩展配置文件添加新异常类型,无需修改框架核心代码。

评估指标

  • 成功率 SR:任务完成比例
  • 鲁棒成功率 RSR:在基线条件可完成的任务中,中断条件下仍能完成的比例,公式为 \(\text{RSR} = \frac{|\{i \mid SR_{\text{baseline}}^{(i)}=1 \land SR_{\text{interruption}}^{(i)}=1\}|}{|\{i \mid SR_{\text{baseline}}^{(i)}=1\}|}\),RSR 将中断鲁棒性与整体任务能力解耦,使不同基线能力的 Agent 可以公平比较。

实验关键数据

主实验:有/无中断条件下的性能对比

模型 SR (无中断) SR (有中断) RSR
Gemini2.5-flash 80.26% 68.42% 73.77%
GPT-4o 69.08% 60.53% 66.67%
Qwen2.5-VL-7B 69.08% 46.05% 53.33%
UI-TARS-1.5-72B 50.66% 39.47% 48.05%
AgentCPM-GUI-8B 59.87% 26.97% 39.56%

所有模型在中断下平均 SR 下降超过 17.5%。通用大模型(GPT-4o、Gemini)鲁棒性显著优于专门训练的 GUI Agent(UI-TARS、AgentCPM),说明 GUI 专项训练主要提升了视觉感知而非规划能力,后者更依赖底座模型。

消融:双按钮 vs 单按钮交互模式

模型 双按钮 RSR 单按钮 RSR
Qwen2.5-VL-7B 96.15% 41.27%
AgentCPM-GUI-8B 82.35% 9.30%

双按钮模式下 Agent 可以选择"关闭"跳过中断,单按钮模式强制 Agent 走复杂路径(如必须完成安装再返回任务)。AgentCPM 在单按钮模式下 RSR 从 82% 暴跌至 9%,说明现有 Agent 处理中断的策略本质上是"关掉弹窗",缺乏真正应对复杂异常路径的能力。

消融:输入模态的影响(截图 vs 截图+XML)

模型 输入模态 SR (无中断) SR (有中断)
AgentCPM-GUI-8B 截图+XML 59.87% 26.97%
AgentCPM-GUI-8B 仅截图 56.58% 19.74%
Gemini2.5-flash 截图+XML 80.26% 68.42%
Gemini2.5-flash 仅截图 45.33% 41.33%

Gemini 在纯视觉模式下 SR 从 80% 降至 45%(降幅 35%),而专门训练的 AgentCPM 降幅较小,说明通用模型严重依赖 XML 坐标信息。Agent 知道该做什么动作但不知道在哪里执行——视觉定位能力是当前短板。

关键发现

  • 感知漂移现象(Perception Drift):App 崩溃恢复后,Agent 的决策会被历史 prompt 中的过时动作误导。例如 GPT-4o 崩溃前已在搜索栏输入关键词,App 重启后搜索栏已重置为推荐词,但 GPT-4o 基于历史记录误以为关键词仍在,直接点击搜索导致任务失败。这揭示了 Agent 需要区分"有用的历史记忆"和"过时的误导信息"。
  • 不同中断类型难度差异显著:Permission Control 类异常最简单(Gemini/GPT-4o 达到 100% RSR),因为可用常识解决;App Malfunction 类异常中 UI-TARS 表现相对最好,因为其专项训练覆盖了部分 UI 交互知识。
  • 规模效应明显:更大的模型展现更强鲁棒性,可能得益于更强的规划能力——多数中断本质上可通过有效规划来缓解。

亮点与洞察

  1. 动态 vs 静态的质变:相比静态插入弹窗截图,D-GARA 的异常会真实改变执行路径,这是对 Agent 决策能力更本质的考验——Agent 必须理解当前状态而非依赖历史轨迹。
  2. RSR 指标设计精巧:将鲁棒性与基线能力解耦,避免了"Agent 本来就做不好所以看起来不怕中断"的误判,使得跨模型比较更公平。
  3. "关闭弹窗" ≠ 鲁棒:双按钮/单按钮对比实验非常巧妙,证明了 Agent 的高鲁棒性可能只是因为总选"关闭"——真正的鲁棒性需要处理复杂恢复路径。
  4. 配置驱动的可扩展性:全部异常逻辑外置为 YAML 配置 + 独立 APK 模板,研究者无需改代码即可扩展新异常,降低了社区使用门槛。

局限与展望

  1. 仅限 Android 平台:未覆盖 Web、iOS、桌面等其他 GUI 环境,框架的跨平台泛化性有待验证。
  2. 应用覆盖有限:D-GARA-152 仅包含 8 个应用的 152 个任务,任务分布非均匀且偏向高频应用,代表性可能不足。
  3. 纯诊断无解决方案:框架定位为"暴露问题",未提出提升 Agent 鲁棒性的训练策略或推理方法。
  4. 成功验证依赖人工设计:基于 XML 属性的规则需人工提取,论文承认自动验证不足时需人工复核,可扩展性受限。未来可探索用大模型辅助验证。
  5. 异常触发规则的覆盖性:基于关键词的语义匹配可能遗漏边界情况,规则阈值的设定缺乏系统化方法论。
  6. 未考虑多异常组合:真实场景中可能同时或连续出现多种异常,当前框架似乎未深入探讨这种组合效应。

相关工作与启发

  • GUI-Robust:静态方式注入 pop-up/login 页面异常,Agent 仅需点击跳过,属于浅层测试。D-GARA 在动态环境中注入可改变执行路径的异常,难度和真实度显著更高。
  • AndroidWorld:提供动态评估环境但任务简单且无异常,D-GARA 在动态环境基础上增加了异常注入维度。
  • UI-TARS / AgentCPM:分别代表大规模和轻量级 GUI Agent 路线,二者在 D-GARA 上的低 RSR 说明当前 GUI 专项训练未充分考虑鲁棒性。
  • 启发:(1) 训练数据层面需大规模引入中断场景的样本,让 Agent 学习"中断-恢复-继续"的策略;(2) 推理层面可能需要"状态一致性检查"机制,让 Agent 在每步动作前对比当前视觉状态与历史记忆,检测并丢弃过时信息;(3) Perception Drift 的发现暗示 Agent 需要类似人类的"工作记忆刷新"能力。

评分

  • 新颖性: ⭐⭐⭐⭐ 首个将动态异常注入与实时 Android 环境结合的 GUI Agent 鲁棒性评估框架,问题定义清晰且时机恰好
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 5 个模型、5 类异常、多种消融(交互模式、输入模态),Perception Drift 案例分析有说服力
  • 写作质量: ⭐⭐⭐⭐ 逻辑链完整,静态 vs 动态的对比论述清楚,图表配合得当
  • 价值: ⭐⭐⭐⭐⭐ 对 GUI Agent 社区有重要诊断价值,开源框架 + 配置驱动设计有望成为标准评测工具