AutoRPA: Efficient GUI Automation through LLM-Driven Code Synthesis from Interactions¶
会议: ICML2026
arXiv: 2605.21082
代码: 无
领域: LLM Agent
关键词: GUI自动化, 机器人流程自动化, 代码合成, LLM Agent, 轨迹蒸馏
一句话总结¶
提出 AutoRPA 框架,通过翻译器-构建器流水线将 ReAct 风格 GUI Agent 的交互轨迹自动蒸馏为可复用的 RPA 函数,结合混合修复策略迭代优化代码,在保持甚至超越原始 Agent 成功率的前提下减少 82%~96% 的 token 消耗。
研究背景与动机¶
领域现状:基于 LLM 的 GUI Agent(如 SeeAct、M3A)已经能够通过 ReAct 范式在多步交互中完成各种 GUI 任务。然而这类方法在每个任务实例上都需要调用 LLM 进行推理,token 消耗高、运行慢。
现有痛点:在实际部署场景中,大量 GUI 任务是重复性的——同一用户每天提交报告、不同用户订购机票。对这类重复任务反复调用 LLM 推理既昂贵又低效。传统 RPA 虽然运行高效,但依赖人工编写脚本,开发维护成本高且对 GUI 布局变化脆弱。
核心矛盾:LLM Agent 灵活但昂贵(每次都要推理),传统 RPA 高效但僵硬(人工编写、难以泛化)。直接让 LLM 生成完整代码又往往因缺乏环境知识而失败;技能学习方法虽存储成功轨迹但泛化能力有限。
本文目标:自动将 LLM Agent 的决策逻辑蒸馏为可泛化、低 token 消耗的 RPA 函数,使其能在不同环境状态和任务指令下稳健执行。
切入角度:作者观察到 ReAct Agent 虽然推理成本高,但其成功轨迹蕴含了完成任务的完整决策逻辑。如果能将这些硬编码动作转化为软编码、再合成为带条件逻辑的 RPA 代码,就能兼顾灵活性和效率。
核心 idea:用翻译器将 ReAct 的硬编码动作转为基于语义属性的软编码动作,再由构建器从多条翻译后轨迹合成鲁棒的 RPA 函数,并通过混合修复策略迭代优化代码质量。
方法详解¶
整体框架¶
AutoRPA 将 GUI 环境建模为 POMDP \((\mathcal{S}, \mathcal{A}, \mathcal{T}, \mathcal{G}, \mathcal{O})\),目标是为指定任务类型 \(\mathcal{G}^k\) 生成 RPA 函数 \(F_k\),使其在最小化 token 消耗的同时保证任务成功。整体框架分为三个阶段:(1)探索阶段:ReAct Agent 交互生成轨迹,翻译器将硬编码动作转为软编码动作;(2)RPA 生成阶段:构建器基于翻译后轨迹合成 RPA 代码,通过 RAG 检索轨迹库中的详细信息;(3)验证与修复阶段:在已见任务上验证代码,失败时由分析器定位断点、ReAct Agent 继续探索修复,构建器据此迭代改进代码。
关键设计¶
-
翻译器-构建器流水线:
- 功能:将 ReAct Agent 的硬编码交互轨迹转化为可复用的 RPA 函数代码
- 核心思路:翻译器 Agent 接收每步动作及前后观测,先进行鲁棒性分析,再将硬编码动作(如
click(index=2))转为基于语义属性定位的软编码动作(如通过find_element按文本内容和元素类型查找),同时可选地插入断言语句验证执行效果。构建器 Agent 接收简化后的翻译轨迹 \(\psi(\tau'_{\text{ReAct}}(g))\)(去除原始观测仅保留动作和执行摘要),生成包含条件判断和循环的 RPA 函数。构建器通过 Tree-organized RAG 机制按需检索轨迹库中的详细观测信息:底层保存交互块 \((o_t, a'_t, \rho_t, o_{t+1})\),中层为简化轨迹,顶层为结论摘要 - 设计动机:直接让 LLM 生成完整 GUI 代码往往因缺乏环境知识而失败;而硬编码动作对 GUI 布局变化脆弱。通过"先探索后翻译再合成"的流水线,既利用了 ReAct 的探索能力获取环境知识,又通过软编码提升了跨环境泛化性
-
混合修复策略:
- 功能:在代码验证失败时结合 RPA 执行与 ReAct 回退进行迭代修复
- 核心思路:对已见任务执行 RPA 代码直到首次失败,分析器 Agent 诊断断点(分析已执行轨迹和当前观测,输出失败原因、已完成子任务、可行续行方案)。ReAct Agent 从断点处(或重新开始)继续完成任务,产生修正性示范轨迹 \(\tau'_{\text{hybrid}}(F_k, g_*) = F_k(g_*) \oplus (A, o_{t*}, a'_{t*}, \rho_{t*}, \ldots, C)\),构建器据此改进代码。每个任务允许修改 \(M=3\) 次
- 设计动机:与简单地让构建器调试不同,混合修复利用 ReAct Agent 在真实环境中的探索获取实际修正轨迹,为构建器提供了具体而非臆测的改进依据,大幅提升修复成功率
-
基于树结构的轨迹检索增强生成:
- 功能:让构建器按需获取历史交互的详细观测信息,避免因缺少具体界面状态而生成错误代码
- 核心思路:轨迹库 \(\mathcal{D}_\tau\) 组织为三层树结构——底层为每步交互块(含截图和 DOM 信息),中层为简化轨迹(动作摘要),顶层为结论摘要。构建器可通过
fetch_info(traj, step)工具函数逐层向下检索所需上下文,在需要时才拉取多模态观测,兼顾了信息完整性和 prompt 长度 - 设计动机:直接提供完整轨迹观测信息会导致 prompt 过长;而仅提供简化轨迹又容易让构建器对界面状态产生错误假设。RAG 方式让构建器自主决定需要哪些细节
实验关键数据¶
主实验¶
实验在三个 GUI 基准上进行:AndroidWorld(116 个任务类型,20 个真实 App)、WebArena(Reddit 域 19 个任务类型)、MiniWoB++(53 个任务类型)。
| 方法 | 模型 | 时间 (min) ↓ | Tokens (k) ↓ | 成功率 (%) ↑ |
|---|---|---|---|---|
| SeeAct | GPT-4.1 | 5.14 | 58.8 | 25.4 |
| M3A | GPT-4.1 | 2.23 | 103.4 | 48.3 |
| ReAct† | GPT-4.1 | 3.91 | 68.7 | 50.0 |
| AutoRPA (code only) | GPT-4.1 | 1.42 | 2.7 | 47.2 |
| AutoRPA | GPT-4.1 | 1.81 | 12.8 | 51.7 |
| ReAct† | GPT-5 | 8.57 | 142.5 | 74.1 |
| AutoRPA (code only) | GPT-5 | 2.72 | 6.2 | 70.7 |
| AutoRPA | GPT-5 | 4.35 | 30.6 | 75.9 |
在 MiniWoB++ 上(GPT-4.1):
| 方法 | 9 类困难任务 Tokens (k) ↓ | 成功率 (%) ↑ | 全部 53 类 Tokens (k) ↓ | 成功率 (%) ↑ |
|---|---|---|---|---|
| AdaPlanner | 15.1 | 74.1 | 6.1 | 90.3 |
| AutoManual | 23.2 | 91.1 | 4.6 | 95.2 |
| ReAct† | 16.2 | 84.4 | 9.2 | 92.8 |
| AutoRPA (code only) | 1.0 | 80.0 | 0.9 | 92.5 |
| AutoRPA | 1.4 | 91.1 | 1.4 | 95.4 |
消融实验¶
| 配置 | 成功率 (%) |
|---|---|
| AutoRPA (完整) | 51.7 |
| 构建阶段去掉 ReAct | 32.5 |
| 构建阶段去掉翻译器 | 40.2 |
| 代码修复去掉 ReAct | 45.5 |
| 构建器去掉 RAG | 48.8 |
关键发现¶
- 去掉 ReAct 探索后成功率从 51.7% 暴跌至 32.5%,说明直接让 LLM 生成 GUI 代码是不可靠的,ReAct 探索提供的环境知识至关重要
- 翻译器的贡献显著(去掉后降 11.5%),软编码动作对代码泛化性至关重要
- 仅靠 RPA 代码执行(code only)就能达到与 ReAct 接近的成功率,同时 token 消耗降至原来的 4%~7%,说明大部分任务的决策逻辑确实可以被蒸馏为确定性代码
- 随着构建任务数 \(N\) 增加,AutoRPA (code only) 的成功率持续逼近 ReAct,验证了更多样本能帮助生成更鲁棒的 RPA 代码
- 在 WebArena 等高度多样化的真实 Web 环境中,AutoRPA 虽然在成功率上与现有方法持平,但 token 消耗大幅降低
亮点与洞察¶
- 轨迹蒸馏范式:将 LLM Agent 的在线推理转化为离线代码,本质是一种"推理时计算"到"编译时计算"的转换。这个思路可以迁移到任何重复性 Agent 任务场景(如数据处理流水线、测试自动化)
- 软编码翻译:通过语义属性定位 GUI 元素而非硬编码位置/索引,巧妙解决了 GUI 布局变化导致脚本失效的经典 RPA 痛点。这个设计理念适用于所有需要跨环境泛化的自动化脚本
- 混合修复 = 代码调试 + 环境探索:不是让 LLM 纯靠想象调试代码,而是让 Agent 在真实环境中探索获取修正轨迹。这种"在环调试"策略比纯静态代码修复更可靠
局限与展望¶
- 构建阶段仍需消耗大量 token(每个任务类型需要采样 \(N\) 个任务 + 反复验证修复),作者未充分讨论构建成本与测试阶段节省的平衡点
- 对于高度多样化的任务类型(如 WebArena),单一 RPA 函数难以覆盖所有情况,仍需回退到 ReAct,AutoRPA 的优势有所减弱
- 依赖 GUI 元素的语义属性进行定位,但对于属性信息贫乏的界面(如纯图像 UI)可能不适用
- 未来可以探索自动判断何时值得为某类任务构建 RPA(投入-产出分析),以及将 RPA 函数的局部更新与增量验证结合以降低维护成本
相关工作与启发¶
- ReAct 范式 (Yao et al., 2023):交替推理-行动的基础范式,AutoRPA 的探索和修复阶段都基于此
- AutoManual (Chen et al., 2024):从交互中归纳环境规则指导后续任务,与 AutoRPA 的技能蒸馏思路互补
- AdaPlanner (Sun et al., 2023):Plan-and-Execute 范式中的技能学习方法,但依赖人工示范
- 启发:对于任何需要重复执行的 LLM 推理任务,都可以考虑"先用高成本方法探索并收集轨迹,再蒸馏为低成本确定性流程"的策略