GUI-explorer: Autonomous Exploration and Mining of Transition-aware Knowledge for GUI Agent¶
会议: ACL 2025
arXiv: 2505.16827
代码: https://github.com/JiuTian-VL/GUI-explorer
领域: LLM Agent
关键词: GUI agent, autonomous exploration, transition-aware knowledge, training-free, knowledge extraction
一句话总结¶
提出 GUI-explorer,一个无需训练的 GUI agent,通过自主探索收集功能感知的交互轨迹,并以无监督方式从状态转换三元组中挖掘 transition-aware 知识,在 SPA-Bench 和 AndroidWorld 上分别达到 53.7% 和 47.4% 的任务成功率。
研究背景与动机¶
- 领域现状:
- MLLM 驱动的 GUI agent 能够在无需微调的情况下完成各种界面操作任务
- 然而实际部署时面临应用长尾分布和快速迭代的挑战
-
如 Amazon Shopping 在 2024 年发布了 30 个版本迭代,模型知识很快过时
-
现有痛点:
- UI 组件误解: 即使是 GPT-4o 也无法正确识别 QQ 音乐中听歌识曲按钮的功能
- 知识过时: 应用界面频繁更新导致静态模型知识不可靠
- 重训练成本: 为每个应用变更重新微调 MLLM 代价过高
-
现有探索方法(如 AppAgent)需要手工设计探索任务;AutoDroid 随机生成动作序列效率低
-
核心矛盾:
- MLLM 强大的通用理解能力 vs. 特定应用的个性化 UI 设计和快速变化之间的鸿沟
-
需要应用特定知识但又不能为每个应用重新训练
-
本文要解决什么?
- 如何自动化地探索应用的全部功能并建立 UI 元素到操作结果的精确映射
- 如何无监督地从交互轨迹中提取可用的操作知识
-
如何在任务执行时动态利用这些知识纠正预训练模型的错误先验
-
切入角度:
- 从应用结构信息(APK manifest、activity 列表)出发,构建功能感知的系统化探索
-
从状态转换的三元组(观测-动作-结果)中无监督挖掘原子级操作知识
-
核心idea一句话:
- 先以功能为导向自主探索应用获取交互轨迹,再从状态转换中无监督提取知识,最后动态检索指导 agent 决策。
方法详解¶
整体框架¶
GUI-explorer 由三部分组成: 1. 自主探索功能感知轨迹: 通过分析 GUI 结构信息自动构建探索目标,进行系统化探索 2. 无监督挖掘 Transition-aware 知识: 从交互三元组中提取操作逻辑,无需人工参与 3. 动态指导GUI Agent: 视觉-语义检索生成当前场景的操作指导
关键设计¶
- Function-aware Task Goal Generator:
- 做什么: 自动从应用环境中提取"探索锚点"(Exploration Anchors),如 APK manifest 中声明的功能模块(如"PaymentActivity"),基于当前截图和锚点构建探索任务
- 核心思路: 使用深度优先搜索(DFS)策略,配置分支因子 b=10、最大深度 d=5、每个任务最多 30 步。DFS 的优势在于子任务直接继承父任务的终止状态,避免回溯开销
-
设计动机: 锚点约束防止 MLLM 提出不存在的功能,实现语义接地;DFS 遍历可产生 O(b^d) 条不同轨迹,系统化覆盖组合式交互模式
-
Transition-aware Knowledge Extractor:
- 做什么: 对每个状态转换三元组 (o_i, a_i, o_{i+1}),提取 UI 元素的视觉 patch(key)和操作知识描述(value),构建多模态知识向量库
- 核心思路: 使用 Transition Filtering 通过感知哈希过滤无效转换(动作前后截图几乎相同的情况),确保只保留有效的状态变化
-
设计动机: 与需要成功轨迹的方法不同,本方法只需要有效的状态转换,大幅降低了知识提取门槛
-
Continuous Knowledge Refinement:
- 做什么: 通过余弦相似度判断新知识条目与现有条目的关系——key 相似度 ≥ 0.99 且 value 相似度 ≤ 0.1 时合并(表示同一 UI 元素的新功能描述);否则添加新条目
- 核心思路: 知识库可持续更新,不会因为重复探索而产生冗余
-
设计动机: 适应应用频繁更新的需求,实现渐进式知识积累
-
Dynamic Guidance:
- 做什么: 在执行时,对当前截图的 UI 元素进行视觉-语义检索匹配知识库(使用 SigLIP 作为嵌入模型),然后通过 MLLM-based 排序器按与任务指令的相关性排序,构建动态指导 prompt
- 核心思路: 修改版归并排序算法,通过 MLLM 成对比较知识条目的任务相关性
- 设计动机: 双重目标——抑制 UI 组件误解 + 确保动作建议与实际界面状态一致
损失函数 / 训练策略¶
- 无需训练: GUI-explorer 是 training-free 方法,不涉及参数更新
- 使用 GPT-4o 作为统一基座模型进行探索和推理
- 探索配置: 分支因子 10、最大深度 5、步数限制 30
- 跨 46 个应用自动发现超过 1,300 个知识条目
实验关键数据¶
主实验¶
- SPA-Bench (单应用英文 Level 3): GUI-explorer 达到 53.7% 任务成功率,绝对超过 SOTA M3A (42.0%) 11.7 个百分点,超过 AppAgent (14.0%) 39.7 个百分点
- AndroidWorld: 47.4% 成功率,超过 Aria-UI (44.8%) 2.6%,超过 M3A (40.5%) 6.9%
- GUI-KRB 基准测试:
- GPT-4o 的先验知识错误率为 18.2%
- GUI-explorer 应用于 Qwen2-VL-72B 后将错误率降低 16.0%
- 动态理解评估中错误率比基座模型低 13.4%
消融实验 / 关键发现¶
- Transition Filtering 效果: 减少 16.0% 的先验知识错误
- MLLM GUI 理解基准 (GUI-KRB): 当前模型在 43 个 app、500 个样本上有 15.2%~22.8% 的先验知识不准确率
- 执行效率: 每步总时间 54~72 秒,成本约 \(0.053~\)0.068/步(含检索+排序+推理)
- 知识驱动: 证实了 transition-aware knowledge 是提升性能的核心因素,而非简单的探索数据积累
亮点与洞察¶
- Training-free 范式: 无需参数更新即可适应新应用,部署灵活性极高
- 结构化探索策略: 利用 APK 的功能声明作为语义锚点,比随机探索效率大幅提升
- 知识向量库的无监督构建: 从失败轨迹中也能提取有效的状态转换知识,不依赖成功轨迹
- GUI-KRB 基准贡献: 首次系统评估 MLLM 的 GUI 理解能力,揭示了现有模型的严重局限
局限性 / 可改进方向¶
- 探索阶段仍需较高的 MLLM API 调用成本(每步总成本约 $0.06)
- 知识向量库的嵌入模型(SigLIP)在视觉上差异较小但功能不同的 UI 元素上可能失效
- 目前仅在 Android 平台上验证,Web 端和桌面端适用性未验证
- 归并排序式知识排序需要大量 MLLM 调用,实时性可能受限
- 跨应用知识迁移能力未深入探讨
相关工作与启发¶
- 与 AppAgent 的对比: AppAgent 需要手动设计探索任务,GUI-explorer 完全自主
- 与 AutoDroid 的对比: AutoDroid 随机生成动作序列,效率低且知识质量不可控
- 与 DigiRL 的对比: DigiRL 用强化学习但需要 Gemini 过滤成功轨迹作为训练数据
- 与 CAT/Synapse 的对比: 依赖预先收集的成功轨迹或人工反馈,扩展性受限
- 启发: knowledge-grounded agent 是实现通用 GUI 自动化的关键路径,接地式知识可以有效补偿 MLLM 的先验不足
评分¶
- 新颖性: ⭐⭐⭐⭐
- 实验充分度: ⭐⭐⭐⭐⭐
- 写作质量: ⭐⭐⭐⭐
- 价值: ⭐⭐⭐⭐⭐