子目标感知记忆图:面向GUI智能体的记忆框架
子目标感知记忆图:面向GUI智能体的记忆框架
原文网页:https://arxiv.org/html/2610.31307v1
PDF链接:https://arxiv.org/pdf/2610.31307v1
arXiv编号:arXiv:2610.31307v1 [cs.AI]
摘要
GUI智能体通过与移动端图形界面交互完成复杂用户任务。在长视界任务场景下,仅依靠环境观测不足以做出有效决策,需要复用过往交互经验。现有记忆方案一般将经验存储在单步动作粒度或者完整轨迹粒度。单步动作粒度过细,很难承载有意义语义,单个动作成功并不代表任务整体取得进展;完整轨迹粒度过粗,很难跨不同任务复用。
本文提出子目标感知记忆图(Subgoal(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))aware Memory Graph),将历史交互轨迹提炼为子目标粒度的可复用结构化经验。子目标定义为具备统一子意图的连续动作序列,该粒度可以有效衡量任务推进进度。为降低冗余、支持跨任务复用,将子目标经验组织为图结构记忆;基于环境观测对相关记忆执行合并、扩展、检索。在SPA(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Bench基准上,该方法相比无记忆基线,任务成功率提升11.11个百分点。
关键词
GUI智能体;子目标;记忆图;长视界智能体;移动端智能体;经验复用
目录
- 引言
- 相关工作
- 子目标感知记忆图方法
- 3.1 子目标提取与元数据标注
- 3.2 记忆图构建
- 3.3 记忆检索流程
- 实验设置
- 实验结果
- 结论与局限性
- 参考文献
1 引言
GUI智能体与网页、手机App界面交互,完成下单购物、设置闹钟、配置系统等复杂任务。SPA(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Bench这类基准中,单条任务往往需要跨多个屏幕执行30次以上GUI动作。长视界场景中,大量子目标会在不同任务、不同App之间反复出现;如果不能复用历史经验,智能体每一次都要从零开始探索相同工作流。
为解决该问题,常见方案为给智能体增加情景记忆,推理阶段可以查询历史经验。但现有记忆机制存在两种粒度的缺陷:
- 单步动作粒度:存储(观测、动作、结果)三元组。单步点击、滑动的局部成功,无法反映整体任务是否取得进展;记忆库会快速累积大量冗余条目,难以提炼可复用结构。
- 完整轨迹粒度:存储整条任务交互episode。完整轨迹绑定特定任务路径,即便多个任务共享中间步骤,也很难跨任务复用。
本文选取中间抽象粒度——子目标:子目标是具备连贯子意图的连续动作序列,能够反映任务推进进度。同一个子目标,既可以执行成功,也可以执行失败,该信息在单步动作粒度下不可见;同时子目标天然支持跨任务迁移,大量不同任务会复用相同子目标。
本工作将历史交互轨迹处理为子目标链,构建子目标感知记忆图:
- 子目标由起止界面截图作为视觉锚点,附带子目标描述、执行效果、行为模式、成功标签;
- 将视觉相似的界面状态合并为图节点;子目标作为连接节点的有向边;
- 新轨迹可以增量并入记忆图;推理时根据当前屏幕检索相关子目标,作为提示的一部分给到GUI智能体。
本文主要贡献
- 提出子目标这一中间抽象粒度,弥补单步动作、完整轨迹两种记忆粒度的缺陷;
- 设计子目标感知记忆图,视觉相似界面状态合并为节点,子目标作为有向边,同时保存成功、失败两类历史尝试;
- 在SPA(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Bench移动端GUI基准,基于Qwen3(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))VL(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))8B(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Instruct基座,相比无记忆基线,任务成功率提升11.11个百分点。
2 相关工作
2.1 GUI智能体
GUI智能体接收自然语言目标,执行点击、滑动、输入文本等操作操控手机。一类路线对视觉(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))语言模型做微调得到端到端智能体,但训练成本高;另一类路线冻结大模型权重,依靠外部工具、知识库补充能力,本工作属于冻结LLM这一技术路线。
AppAgent依靠人工为每个App维护知识库;MobileAgent引入视觉感知工具预测动作。
2.2 GUI智能体记忆机制
GUIExplorer挖掘单步(观测(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))动作(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))结果)三元组,单步单元缺少任务进度语义,记忆库冗余高。
HyMEM把整条轨迹嵌入构建图记忆;EchoTrail(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))GUI检索完整成功episode作为上下文示例。二者均使用整条轨迹作为基本单元,受限于特定任务路径,跨任务复用能力弱。
本文探索尚未被充分研究的子目标中间粒度,记忆图节点为共享视觉状态,而不是单条任务或者单步动作条目。
3 子目标感知记忆图方法
轨迹KaTeX parse error: Can't use function '\(' in math mode at position 31: …_1,a_1,...,a_{n\̲(̲\tau=(s_0,a_0,s…,s i s_isi代表GUI截图,a i a_iai代表执行动作。
给定轨迹集合T = { τ 1 , . . . , τ m } T=\{\tau_1,...,\tau_m\}T={τ1,...,τm},构建记忆图M MM。
推理阶段输入当前截图s q s_qsq,检索得到子目标级别的历史经验,拼接到智能体提示词中。
记忆图为有向图:节点是视觉聚类之后的GUI界面状态;边代表子目标转换。
完整流水线分为三部分:子目标提取标注、记忆图构建、记忆检索。
3.1 子目标提取与元数据标注
轨迹分割
使用大模型LLM对完整动作序列做分割,切分为多条子目标片段。
子目标是一个或者多个连续动作,共同完成一个连贯子意图,例如“打开搜索栏并提交搜索词”、“将选中商品加入购物车”。
保留每个子目标片段第一张、最后一张截图作为视觉锚点,丢弃中间帧,起止截图已经可以代表检索需要的起始、结束状态。
子目标元数据
提取后的子目标g gg是结构化元组:
g = < s f r o m , s t o ; t e x t , e f f e c t , b e h a v i o u r , s u c c e s s o r , s u c c e s s > g=\left< s^{from},\ s^{to};\ text,\ effect,\ behaviour,\ successor,\ success \right>g=⟨sfrom,sto;text,effect,behaviour,successor,success⟩
字段说明:
- s f r o m s^{from}sfrom:子目标起始截图;s t o s^{to}sto:子目标结束截图(视觉锚点)
text:子目标意图自然语言摘要effect:一句话描述从起始到结束截图发生的视觉变化behaviour:底层动作序列的行为模式简要总结success:{yes / no / uncertain},由LLM裁判给出子目标级成功标签
3.2 记忆图构建
输入标注完成的子目标集合,构建可持久化、支持查询的记忆图。目标:当智能体遇到曾经见过的界面状态,可以检索从该状态出发尝试过哪些子目标、是否成功、对应的行为模式。
构建三步流程:
环境状态合并
对子目标起止截图计算图像嵌入,和记忆图已有节点做余弦相似度比对。
设定视觉相似度阈值τ \tauτ;若和最近节点余弦相似度≥ τ \ge \tau≥τ,则该截图归入这个已有节点;否则新建记忆节点。每个节点保存原始截图,同时维护滚动平均嵌入向量,用于后续匹配。添加子目标有向边
状态合并完成后,每一条子目标转换成为一条有向边,从源记忆节点指向目标记忆节点。边完整保存子目标全部元数据:意图、视觉效果、成功标签、行为模式。
图会同时保存同一个状态出发的成功、失败尝试,检索时可以同时给到智能体,既模仿成功经验,也规避历史失败模式。
- 构建阶段去重
随着不断新增轨迹,为保持图规模紧凑,对同一个源节点下输出边做去重。
两条边满足:目标节点相同、成功标签相同、意图文本嵌入余弦相似度≥ θ \ge \theta≥θ,判定为重复,丢弃后加入的重复边。目标节点、结果、意图任意一项不同,则保留为独立证据。
3.3 记忆检索
每一轮决策步骤触发检索:
- 将当前截图s q s_qsq做嵌入,与记忆图全部节点的嵌入计算余弦相似度,选出top(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))k最邻近记忆节点;
- 取出检索到节点的全部输出子目标边;成功、失败子目标均返回,每条附带结果标签;
- 将检索得到的多条子目标格式化为记忆块,追加到智能体提示上下文,供模型参考。
4 实验设置
实验环境与数据集
- 测试基准:SPA(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Bench英文单应用level(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))3难度子集,排除无法在云Android实例运行的App;剩余13条任务样本;
- 运行环境:云Android实例,通过ADB接口控制;
- 基座大模型:Qwen3(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))VL(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))8B(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Instruct;
- 嵌入模型:Qwen3(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))VL(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Embedding(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))8B,图像、文本嵌入均使用该模型;
- 超参数:视觉相似度阈值τ = 0.9 \tau=0.9τ=0.9,文本相似度阈值θ = 0.9 \theta=0.9θ=0.9;每步检索top(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲k=1\)个记忆节点;
- 开销:记忆图构建消耗4GPU小时;单次检索额外时延约0.5秒。
对比方案
- None:无记忆基线;
- Subgoal(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Flat:子目标粒度,扁平存储,不构建图结构;
- Action(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Graph:单步动作粒度,构建图记忆;
- Task(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Graph:完整任务轨迹粒度,构建图记忆;
- Subgoal(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Graph(Ours):本文子目标感知记忆图。
评测指标:任务尝试成功率SR;每组实验独立运行三次取平均值。
5 实验结果
| 记忆方案 | 存储结构 | 成功率 SR (%) |
|---|---|---|
| None | (\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n)) | 34.19 |
| Subgoal(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Flat | 扁平存储 | 30.77 |
| Action(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Graph | 图结构 | 38.46 |
| Task(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Graph | 图结构 | 36.75 |
| Subgoal (Ours) | 图结构 | 45.30 |
实验关键结论:
- 本文子目标感知记忆图相比无记忆基线,任务成功率提升11.11个百分点;
- 同为子目标粒度,如果去掉图结构,使用扁平存储,性能反而下降到30.77%,证明图结构对视觉状态合并、跨轨迹经验融合起到关键作用;
- 单步动作粒度图记忆、完整任务轨迹粒度图记忆仅有小幅收益,效果弱于本文子目标(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))图组合方案。
6 结论与局限性
结论
本文提出面向移动端GUI智能体的子目标感知记忆图。核心思想:既不存储原始单步动作,也不存储完整整条轨迹,而是采用子目标作为经验存储粒度。
将视觉相近的界面状态合并为记忆节点;子目标作为有向边连接节点,同时记录成功与失败的历史尝试;推理阶段检索子目标经验作为提示补充。在SPA(\tau=(s_0,a_0,s_1,a_1,…,a_{n‑1},s_n))Bench上取得11.11%的成功率提升。该记忆框架为移动端交互智能体提供一套简单实用的经验复用方案。
局限性
本方法假设GUI界面可以近似为离散状态空间,截图可以聚类为紧凑记忆节点集合。该假设对于布局相对稳定的普通移动端App比较合理;但对于视频播放器这类高度动态界面,界面持续连续变化,视觉相似度不能很好等价语义等价,本方案效果会受到噪声影响。
7 参考文献
完整参考文献请查阅arXiv原始PDF。