HiconAgent: History Context-aware Policy Optimization for GUI Agents¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/JiuTian-VL/HiconAgent
领域: 多模态VLM / GUI Agent / 强化学习
关键词: GUI 智能体, 历史上下文, 强化微调, GRPO, 视觉历史压缩
一句话总结¶
HiconAgent 用一套 History Context-aware Policy Optimization(HCPO)的强化微调框架训练 GUI 导航智能体:采样阶段动态变化历史长度让模型学会"按需用历史",更新阶段把历史截图扔掉、只留历史动作 token 当锚点并用全历史分支对齐蒸馏;3B 模型在 GUI-Odyssey 上反超 GUI-R1-7B 步成功率 +11.32%,同时 FLOPs 降 60%、推理快 2.47×。
研究背景与动机¶
领域现状:基于多模态大模型(MLLM)的 GUI 智能体要完成"订机票""买鞋"这类多步导航任务,输入是任务指令 \(I\)、当前截图 \(s_t\) 和历史上下文 \(H_t=\{(s_{t-\tau},a_{t-\tau}),\dots,(s_{t-1},a_{t-1})\}\),逐步生成并执行动作。近期主流训练范式从监督微调转向规则奖励的强化学习(尤其是 GRPO),直接优化 grounding 准确率和步成功率(SR)。
现有痛点:但"历史到底怎么用"几乎没人认真研究。大多数 RL 方法(GUI-R1 等)为了省显存,干脆把历史截图全砍掉、只喂历史动作文本——这丢掉了消歧、区分视觉相似元素、保持时序一致所需的视觉线索;反过来,如果老老实实把完整历史(截图+动作)都塞进去,高分辨率截图带来海量视觉 token,叠加注意力的二次复杂度,计算开销爆炸。
核心矛盾:决策质量和计算效率之间存在 trade-off——历史信息越全决策越准但越慢,砍得越狠越快但越容易判断失误。而且作者通过实证发现一个更细的问题:不同决策步对历史长度的偏好天差地别,固定窗口长度 \(\tau\) 根本兼顾不了;同时历史动作 token 才是视觉信息真正的"流通枢纽",历史截图的价值并不来自后层直接去看它,而是在中间层把信息"灌"进动作锚点里。
本文目标:在不牺牲(甚至提升)决策质量的前提下,让 GUI 智能体既"用对"历史(按步选合适长度)又"用省"历史(压掉冗余视觉),并把这两件事直接做进 RL 的采样和更新两个阶段。
核心 idea:采样阶段用动态变长历史教模型自适应选上下文(Dynamic Context Sampling);更新阶段砍掉历史视觉、保留动作锚点,再用一个全历史分支当老师做对齐蒸馏(Anchor-guided History Compression)。两者合成 HCPO。
方法详解¶
整体框架¶
HCPO 把标准 GUI RL 流程的采样和更新两个阶段都改造了一遍,对应两个核心组件 DCS 与 AHC。整条管线是:给定一条导航样本 \((I, H_t, s_t)\),先用 Dynamic Context Sampling 按一个随训练步演化的指数偏置分布,为同一条样本采出 \(G\) 个不同历史长度 \(\tau_i\le\tau\) 的输入变体,各自 rollout 出回复,再统一在全历史上下文下算 logits、得到组内相对优势 \(A_i\);随后进入 Anchor-guided History Compression 的双分支更新——未压缩分支吃完整历史走标准 GRPO,压缩分支在早期融合层之后把历史截图全 prune 掉、只留历史动作 token 当锚点也走一遍 GRPO,两分支共享同一批回复和优势,并通过一个 history-enhanced 对齐 KL 损失,把未压缩分支当 teacher 来约束压缩分支。最终用压缩分支(k=6 配置)部署,省 60% FLOPs。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["GUI 导航样本<br/>指令 + 当前截图 + 历史"] --> B["历史用法实证分析<br/>变长偏好 + 动作锚点"]
B --> C["动态上下文采样<br/>指数偏置分布采 G 个变长历史"]
C --> D["统一全历史算 logits<br/>组内相对优势 Ai"]
D --> E["锚点引导历史压缩<br/>未压缩分支 + 压缩分支双路"]
E -->|压缩分支砍视觉留动作 anchor| F["历史增强对齐损失<br/>全历史分支当 teacher 蒸馏"]
F --> G["HiconAgent-3B<br/>k=6 压缩部署"]
关键设计¶
1. 历史用法实证分析:先搞清"历史该怎么用"再设计方法
作者没有上来就堆模块,而是先用两组探针实验回答两个问题,方法的每个设计都从这里长出来。第一组分析历史长度的影响:用固定权重的基模型在训练集上对每条样本在 \(\tau\in\{0,1,2\}\) 下各 rollout 8 次、记录平均奖励,取奖励最高的 \(\tau\) 当该样本的"最优历史长度"(奖励差 <0.05 的样本丢弃)。结果是不同样本、不同动作类型的最优 \(\tau\) 各不相同,有些步要长历史、有些步短历史反而奖励更高(\(\text{Improvement}=\text{mean\_reward}(\tau_{short})-\text{mean\_reward}(\tau_{long})>0\) 的分布非平凡),说明长历史可能引入无关信息反害决策——固定窗口必然次优。第二组做层级 token-drop 探针:在 Qwen2.5-VL-3B(36 层)的第 \(k\) 层之后分别丢掉历史动作 \(A_{his}\)、历史图像 \(V_{his}\) 或两者,观察 SR 下降。关键发现是浅层(\(k<12\))丢 \(A_{his}\) 掉点远大于丢 \(V_{his}\)——即便保留了丰富视觉,后层也无法不经动作锚点直接从 \(V_{his}\) 提取有效线索;历史视觉的增益主要发生在中间层、由动作 token 聚合后传递给后续 token。结论落到一条压缩准则:在早期融合深度 \(k\) 之后,prune 掉 \(V_{his}\)、保留 \(A_{his}\),这直接定义了下面 AHC 的做法。
2. Dynamic Context Sampling:用变长历史采样教模型按步自适应选上下文
针对"固定 \(\tau\) 次优",DCS 在训练时不再总喂定长历史,而是为每条样本采 \(G\) 个截断历史变体 \(\{H_t^1,\dots,H_t^G\}\),每个 \(H_t^i\) 用一个采样得到的长度 \(\tau_i\le\tau\)。难点在采样分布:直接用均匀分布 \(U(0,2)\) 会触发退化现象——因为为保证训练/推理一致,最终只用 \(\tau=2\) 的上下文算梯度更新,短历史(\(\tau=0,1\))的回复质量会随训练越来越差(消融图 6 的短/长历史奖励比一路下滑)。作者改用一个随训练步 \(u\) 演化的指数偏置分布:
其中 \(\lambda(u)\) 是随 \(u\) 线性增长的函数。训练早期 \(\lambda(u)\approx 0\),分布近似均匀、鼓励随机探索各种历史长度;随训练推进 \(\lambda(u)\) 增大,分布逐渐偏向更大的 \(\tau_i\),平滑地从"随机选"过渡到"全历史"。每个变体组成输入 \(q_i=(I,H_t^i,s_t)\) 产出回复 \(o_i\),\(G\) 个回复作为一组算优势——优势高的回复获得更强梯度更新,于是策略自适应地学到"哪种历史长度带来更好行为"。关键 trick:为保持训练-推理一致,每个采样回复 \(o_i\) 都配上完整历史输入 \((I,H_t,s_t)\) 来算优化用的 logits,即"在变长条件下探索、在统一长度下评估"。
3. Anchor-guided History Compression:砍视觉留动作锚点 + 全历史分支对齐蒸馏
承接设计 1 的结论(动作锚点保留了后层真正用到的历史线索),AHC 在更新阶段做双分支优化。设输入 \(q=\{I,H_t,s_t\}\),重要性采样比 \(\rho_i=\frac{\pi_\theta(o_i\mid q)}{\pi_{\theta_{old}}(o_i\mid q)}\),未压缩分支走标准 GRPO 目标 \(\mathcal{L}_{w/o\,comp}\)(带 clip 和对参考策略的 KL)。压缩分支则把所有历史视觉 token \(V_{his}\) 全部移除、只保留历史动作 token \(A_{his}\) 组成压缩历史 \(H_t^c\),在 \(q^c=\{I,H_t^c,s_t\}\) 上用同一批回复和优势走 GRPO 式目标 \(\mathcal{L}_{w/\,comp}\)(重要性比 \(\rho_i^c=\frac{\pi_\theta(o_i\mid q^c)}{\pi_{\theta_{old}}(o_i\mid q^c)}\)),借未压缩分支生成的高质量回复来带动压缩分支。为了让压缩分支别丢掉原模型的核心决策能力,引入 history-enhanced 对齐损失:对同一批回复在两个分支做并行前向,最小化二者输出分布的 KL,用未压缩分支当 teacher 指导压缩分支:
注意 teacher(未压缩分支)输出做了 detach、不回传梯度,只当指导信号。最终 HCPO 损失把三项加起来:
\(\lambda\) 控制对齐强度。这样压缩分支在大幅缩短序列、降 FLOPs 的同时,靠对齐保住了时序一致性和决策质量。压缩位置 \(k\)(早期融合深度)是效率-效果的关键旋钮:\(k\) 越小砍得越早 FLOPs 降越多但掉点越大,默认取 \(k=6\) 做平衡。
损失函数 / 训练策略¶
训练数据来自开源 AMEX 数据集,仅用 3K 未过滤样本,沿用 GUI-R1 的训练设置。奖励设计针对 GUI 动作"类型 + 取值"的结构,引入三类规则奖励(类型匹配、坐标距离、文本匹配,细节在附录)。总损失即上面的 \(\mathcal{L}_{HCPO}\)。默认部署用压缩分支 \(k=6\) 配置。
实验关键数据¶
主实验¶
三个 GUI 导航基准:AndroidControl-High(AC-High)、AITW、GUI-Odyssey。Table 1 在相同数据规模与训练设置下对比(绿色表示相对 GUI-R1-7B 退化,红色表示提升):
| 设置 | 模型 | AC-High Grounding | AC-High SR | Odyssey Grounding | Odyssey SR |
|---|---|---|---|---|---|
| SFT | GUI-R1-7B | 58.69 | 48.11 | 38.65 | 34.44 |
| RFT | GUI-R1-3B | 56.24 | 46.55 | 41.52 | 41.33 |
| RFT | GUI-R1-7B | 65.56 | 51.67 | 43.64 | 38.79 |
| RFT | HiconAgent-3B | 65.51 (−0.05) | 52.40 (+0.73) | 52.10 (+8.46) | 50.11 (+11.32) |
3B 模型在 AC-High 上与 7B 基本持平,但在长程的 GUI-Odyssey 上以不到一半参数量大幅反超 GUI-R1-7B:grounding +8.46%、SR +11.32%,印证显式利用历史上下文对长程序列推理的价值。
OOD 泛化(Table 2,平均 SR):
| 模型 | 训练数据 | AC-High | AITW | Odyssey | Avg SR |
|---|---|---|---|---|---|
| OS-Atlas-7B | 13M (过滤) | 29.83 | 41.38 | 26.96 | 32.72 |
| GUI-R1-7B | 3K (过滤) | 51.67 | 55.31 | 38.79 | 48.59 |
| infiGUI-3B | 32K (过滤) | 71.10 | 46.51 | 33.15 | 50.25 |
| HiconAgent-3B | 3K (未过滤) | 52.40 | 51.91 | 50.11 | 51.47 |
HiconAgent 仅用 3K 未过滤样本就拿到最高平均 SR(51.47%),超过用更大规模过滤数据训练的对手;infiGUI-3B 虽在 AC-High 飙到 71.1% 但在 AITW/Odyssey 大跌,说明其 OOD 泛化弱——HCPO 既有效又数据高效。
消融实验¶
采样分布 \(p(\tau)\) 消融(Table 3,AC-High SR):
| 配置 | 更新 τ | 采样 p(τ) | AC-High SR | 训练时长 |
|---|---|---|---|---|
| HCPO (w/o DCS) | 2 | – | 51.03 | 17h |
| HCPO (Uniform) | 2 | U(0,2) | 50.53 | 17h |
| HCPO (Uniform) | {0,1,2} | U(0,2) | 51.62 | 30h |
| HCPO (ExpBias) | 2 | ExpBias(u) | 52.40 | 17h |
朴素均匀采样反而掉到 50.53(退化现象);强制把全部 \(\tau\in\{0,1,2\}\) 都纳入更新虽能部分补回(51.62)但训练时长翻到 30h;指数偏置分布以同样 17h 拿到最佳 52.40,取得性能-开销最优平衡。
双分支 / 对齐 / DCS 逐组件消融(Table 4,SR,压缩开启):
| 配置 | 双分支 | KL | DCS | AC-High | AITW | Odyssey |
|---|---|---|---|---|---|---|
| GRPO(仅压缩分支) | – | – | – | 44.89 | 45.62 | 43.21 |
| HCPO (w/o KL, DCS) | ✓ | – | – | 48.70 (+3.81) | 49.23 (+3.61) | 47.09 (+3.88) |
| HCPO (w/o DCS) | ✓ | ✓ | – | 51.03 (+6.14) | 50.78 (+5.16) | 48.68 (+5.47) |
| HCPO | ✓ | ✓ | ✓ | 52.40 (+7.51) | 51.91 (+6.29) | 50.11 (+6.90) |
只训压缩分支最差;加未压缩分支(无 KL)就涨,加 KL 对齐再涨,最后开 DCS 达到最佳——三个组件层层叠加都有正贡献。
压缩位置 \(k\) 的效率-性能权衡(Table 5):
| Drop k | FLOPs | ∆ vs 3B | Tokens | SR |
|---|---|---|---|---|
| k=1 | 23.66 | −33.81% | 674 | 46.11 |
| k=6 | 25.21 | −29.47% | 674 | 47.34 |
| k=12 | 27.07 | −24.28% | 674 | 47.89 |
| w/o drop | 35.75 | – | 1664 | 49.29 |
\(k\) 越小砍越早 FLOPs 降越多但掉点越大;默认 \(k=6\) 在 59.54% FLOPs 削减(相对 7B)和 2.47× 加速下保住竞争力,token 数从 1664 降到 674。
关键发现¶
- DCS 的采样分布是成败关键:均匀采样会让短历史回复质量随训练退化(因为只用 \(\tau=2\) 算梯度),指数偏置分布"早探索、晚收敛到全历史"的调度同时解决了退化和训练开销,比硬塞 all-τ 更新省一半时间还更准。
- 动作锚点假设被层级 drop 实验坐实:浅层丢历史动作掉点远大于丢历史图像,这是 AHC"砍视觉留动作"的直接依据,也解释了为什么单砍视觉而不蒸馏对齐会掉点。
- 长程任务收益最大:在 GUI-Odyssey 上 3B 反超 7B 高达 +11.32% SR,说明显式历史建模在长 horizon 下价值被放大,而短程的 AC-High 上提升有限。⚠️ Table 1 与 Table 5 的 AC-High SR 数值口径略有差异(52.40 vs 47.34),疑为评测子集/设置不同,以原文为准。
亮点与洞察¶
- "先做实证再设计"的范式很扎实:两组探针实验(变长偏好 + 层级 token-drop)不是事后解释,而是直接定义了 DCS 的"变长采样"和 AHC 的"砍视觉留动作",方法的每个组件都有据可循,避免了拍脑袋堆模块。
- 把历史利用拆进 RL 的采样和更新两个阶段是个干净的切入点——采样阶段管"用多少历史",更新阶段管"怎么省着用历史",两件事正交且各有专门组件。
- 双分支对齐蒸馏的 self-distillation 思路可迁移:用同一模型的"全信息分支"当 teacher、detach 梯度去带"压缩信息分支",这种在同一次前向里做自蒸馏来换效率的技巧,可推广到任何"想压缩输入但怕掉点"的多模态场景(如长视频、多图推理)。
- 指数偏置课程式采样:用随训练步演化的 \(\lambda(u)\) 把采样分布从均匀平滑推向偏置,本质是一种 curriculum,缓解了"只用长上下文算梯度导致短上下文退化"这一隐蔽的训练不稳定。
局限与展望¶
- 历史长度探针只在 \(\tau\in\{0,1,2\}\) 这个很小的窗口里做,更长 horizon(\(\tau\) 更大)下变长偏好和指数偏置调度是否还成立、\(\lambda(u)\) 的线性调度是否最优,论文未充分探讨。
- ⚠️ 奖励设计、训练超参、\(\lambda\) 取值、\(\lambda(u)\) 的具体形式都放在附录,正文给的机制公式清楚但复现细节依赖附录,以原文/代码为准。
- AHC 一刀切地砍掉所有历史视觉、只留动作锚点,依赖"前 \(k\) 层已把视觉信息充分灌进动作 token"这一前提;当某些步的关键视觉线索并不绑定在历史动作位置上时(如纯浏览、无动作的观察步),这种压缩可能丢信息,论文未给这类失败案例的定量分析。
- 评测集中在移动端 GUI 导航(Android/AITW/Odyssey),桌面端、网页端等更复杂、截图分辨率更高的场景下的效率-效果权衡有待验证。
相关工作与启发¶
- vs GUI-R1:GUI-R1 用 GRPO 做规则奖励 RL,但只喂历史动作文本、不显式建模历史视觉。HiconAgent 复用 GUI-R1 的训练设置和奖励框架,但在采样和更新两阶段都加了历史感知组件,于是 3B 反超其 7B 版本,核心差异是"是否系统性利用并压缩历史"。
- vs 直接用完整历史的方法:朴素塞完整历史(截图+动作)决策更准但计算爆炸(视觉 token 多 + 注意力二次复杂度)。HiconAgent 通过 AHC 砍视觉留动作锚点,把这条 trade-off 曲线整体往"又快又准"推,达到 60% FLOPs 削减下仍保持竞争力。
- vs 沿用单图 VQA 信息流结论的压缩方法:以往工作直接套用单图 VQA 场景的信息流研究来选保留哪些 token,HiconAgent 则在 GUI 导航 + RL 框架下重新做信息流分析,发现 GUI 场景里"历史动作才是视觉信息流锚点"这一更贴合任务的规律,压缩准则因此更对路。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把历史利用拆进 RL 采样/更新两阶段、用层级 token-drop 实证支撑"动作锚点"压缩,切入角度新且有据。
- 实验充分度: ⭐⭐⭐⭐ 三基准 + OOD + 四组消融(采样分布/组件/压缩位置)较全,但部分细节和奖励设计压在附录,正文数值口径有小差异。
- 写作质量: ⭐⭐⭐⭐ "先实证再设计"的叙事清晰,机制公式给得完整,图表充分。
- 价值: ⭐⭐⭐⭐ 3B 反超 7B 且省 60% FLOPs、3K 未过滤数据即强泛化,对资源受限的 GUI 智能体落地有直接参考价值。