從豆包手機等看GUI Agent:MobileRL GUI Agent訓練框架和安卓XML預處理 原創 精華
最近在各個平臺看了看”豆包手機“和特斯拉集成GORK實現車機Agent的相關視頻演示,個人從技術角度歸納兩個關注的技術點:

GUI Agent完成的任務示例
- 將豆包大模型深度植入手機操作系統底層,獲得 Android 系統級高危權限INJECT_EVENTS(注入事件)
- 實現 "視覺識別 + 模擬觸控" 的 GUI Agent(圖形用戶界面Agent)技術,無需 App 配合即可跨應用操作。(結構化UI用XML解析,非結構化UI用像素級VLM定位,精準識別復雜界面(如地圖施工圖標),提升操作成功率。)
以上相關技術匯聚就是目前比較火的“GUI Agent”,順藤摸瓜的翻到了一篇關于移動端GUI Agent訓練框架-MobileRL(也是用于Agent Auto GLM訓練的框架)。下面來看看MobileRL都解決了什么問題。

MobileRL概覽
視覺語言模型(VLM)(如 Qwen2.5-VL、GLM-4.1V)讓 “零樣本交互網頁 / 移動界面” 的 GUI Agent成為研究熱點。這類Agent可通過感知屏幕截圖 + 解析 UI 結構,自主執行點擊、滑動、輸入等操作,無需人工干預,理論上能適配各類移動應用(如日歷、購物、地圖 APP)。然而,移動 GUI 場景的特殊性(交互步驟長、環境反饋稀疏、設備仿真成本高)與通用 VLM 的 “靜態感知” 能力存在矛盾 —— 通用 VLM 僅能基于單幀畫面生成動作,缺乏 “多步規劃” 和 “環境反饋學習” 能力,難以應對復雜移動任務(如 “打開 Booking→篩選 9.10-9.12 的酒店→按價格排序”)。因此,需通過強化學習(RL)讓Agent從 “環境交互反饋” 中優化策略,但移動場景的 RL 面臨獨特挑戰。MobileRL提出了過去GUI-RL 方法的幾個挑戰:
挑戰 1:稀疏正信號下的復雜指令跟隨:移動 GUI 任務的 “指令復雜度” 與 “反饋稀疏性” 矛盾。例如 “添加明天 3 點的重復日歷事件” 需拆解為 “打開日歷→點擊新建→設置時間→開啟重復→保存” 多步,但模型僅在 “全部步驟正確” 時才獲獎勵;移動模擬器的高延遲(單步交互需秒級)導致 “正確執行的軌跡(rollout)極少”,早期探索階段模型多生成錯誤動作,數據利用效率極低,訓練周期被大幅拉長。
挑戰 2:重尾且不穩定的任務難度分布:移動任務難度呈 “重尾分布”—— 少數任務占總計算量的大部分:
后果:傳統 RL 的 “均勻采樣” 會將大量計算資源浪費在 “死胡同任務” 上,同時未充分利用 “難但可解決” 的高價值軌跡(這類軌跡包含 “錯誤恢復”“復雜指令拆解” 的關鍵信號)。
- 易任務:部分任務(如 “搜索無線耳機”)僅需 3-5 步,多次采樣即可成功;
- 死胡同任務:部分任務因 UI 設計限制(如隱藏菜單)或指令歧義,模型 “無論采樣多少次都無法成功”;
挑戰 3:大規模移動環境的采樣瓶頸:部署 / 管理 “數百個并發安卓實例” 的技術門檻高:每個安卓虛擬設備(AVD)需獨立內存 / 存儲,多機器協調難度大;不同機器的模擬器配置(如系統版本、APP 安裝狀態)差異,會導致同一動作的環境反饋不一致,影響 RL 訓練穩定性;早期模擬器不支持 “真正并發執行”,采樣吞吐量極低(如僅能同時運行數十個實例),無法支撐 “大規模 RL 訓練”(需數千次軌跡采樣優化策略)。
建模目標
移動GUIAgent需根據自然語言指令(如“打開日歷,添加明天下午3點的事件”),在移動設備上自主完成閉環交互:感知屏幕狀態→定位UI元素→執行連續動作(無需人類干預),僅在任務成功時獲得獎勵,失敗或達到最大步數時終止。

MobileRL概覽
論文將移動GUIAgent建模為有限時域馬爾可夫決策過程(MDP),各組件的具體定義貼合移動場景特性:
MDP組件 | 具體含義(移動GUI場景適配) |
狀態空間 S | 每個狀態 ① 設備當前截圖(視覺信息); ② 從XML元數據解析的結構化UI層級(功能信息,如按鈕位置、可交互屬性)。 |
動作空間 A | 9類原子GUI操作(覆蓋移動交互核心需求): |
轉移概率 P | 安卓系統與應用的隨機轉移機制(如點擊按鈕后的頁面跳轉不確定性)。 |
獎勵函數 r | 稀疏二元獎勵:任務成功時 r=1,失敗或超時 r=0,僅在任務終止時反饋。 |
時域 H | 最大交互步數(實驗中設為50步),避免無限循環。 |
初始分布 | 指令-狀態對的聯合分布(即任務初始時的設備狀態+自然語言指令)。 |
優化目標:

其中

是交互軌跡,

是軌跡總獎勵。
MobileRL

MobileRL概覽
框架核心思路:先通過兩階段監督微調(SFT)預熱,再進行自適應強化學習(RL),解決直接RL冷啟動效率低、探索成本高的問題。
組件1:無推理監督微調(Reasoning-Free SFT)
直接從基礎視覺語言模型(VLM)啟動RL,會因移動環境采樣成本高(每個樣本需安卓模擬器運行)、初始策略動作準確率低,導致探索效率極差。因此,第一步用“無推理專家數據”快速搭建動作執行基礎。
- 數據來源:遵循Xu等人(2024)的協議收集人類標注專家演示數據,補充AndroidControl數據集(Li等人,2024)的訓練集,總計97.9k訓練步。
- 訓練特點:數據僅包含“指令→動作序列”的映射(無中間推理步驟),目標是讓模型掌握基礎GUI操作(如“點擊按鈕”“輸入文本”)的執行邏輯,避免RL初期因動作錯誤浪費計算資源。
- 訓練配置:使用Llama-Factory框架,訓練2個epoch,學習率從 余弦衰減至 ,圖像保留原始分辨率以保證UI元素識別精度。
組件2:推理監督微調(Reasoning SFT)
無推理SFT的策略是“黑箱”(僅知動作序列,不知為何執行),難以處理長指令、組合型任務(如“搜索酒店→篩選日期→按價格排序”)。需通過添加“中間推理步驟”,提升模型的指令拆解和邏輯規劃能力。
通過“基礎指令模型引導+迭代精煉”,給專家軌跡添加透明的推理過程,構建推理增強訓練集:

組件3:Agent強化學習(Agentic RL)
前面兩階段SFT已搭建“動作執行+指令理解”基礎,但仍缺乏環境交互反饋(如錯誤動作的修正、任務效率優化)。需通過RL利用環境反饋,進一步提升策略的魯棒性和效率。


難度自適應GRPO(ADAGRPO)算法
為解決移動場景的三大挑戰,在GRPO基礎上設計了ADAGRPO(Difficulty-ADAptive GRPO),包含三個關鍵策略,分別對應“獎勵分配”“采樣效率”“難度適配”問題:
策略1:最短路徑獎勵調整(SPA)
原始稀疏獎勵將 r=1 均勻分配給成功軌跡的每一步,導致模型偏向“長軌跡”(長軌跡貢獻更多梯度更新),但移動用戶更偏好高效、短步驟的交互。
根據軌跡長度調整獎勵,短成功軌跡獲得更高回報:


策略2:難度自適應正向回放(AdaPR)
移動環境中,“成功且有挑戰性”的軌跡極少(稀疏獎勵),但這類軌跡包含關鍵學習信號(如復雜指令的拆解、錯誤恢復);而普通RL的均勻采樣會浪費資源在低價值軌跡上。
借鑒經驗回放,構建“高質量軌跡緩沖區”,平衡回放與探索:

策略3:失敗課程過濾(FCF)
任務難度呈“重尾分布”:部分任務模型始終無法解決(如超復雜多步驟任務),反復采樣這類任務會浪費計算資源,且無正向學習信號。
基于“課程學習”思想,動態過濾持續失敗的任務:
- 失敗判定:若某任務連續2個epoch的所有軌跡均失敗(獎勵為0),進入3個epoch的“冷卻期”;
- 權重衰減:冷卻期內,該任務的采樣概率按
降低(f為連續失敗epoch數); - 冷卻期結束后仍未成功,永久從采樣池中移除。
XML預處理
安卓無障礙服務生成的原始XML包含UI頁面的完整布局和元素信息,但存在三大問題:
- 含大量“結構型節點”:僅用于頁面布局(如框架容器),無實際交互語義;
- 屏外節點干擾:可滾動頁面會包含未顯示在屏幕上的節點,影響動作模擬(如點擊、滑動)的準確性;
- 屬性描述冗余:XML屬性冗長(如完整類名、重復布爾值),增加模型處理的token開銷。
處理步驟
1. 移除屏外節點
根據任務需求動態控制是否保留屏外節點,避免無效節點干擾:
- 控制參數:?
?remain_nodes??(布爾值)
a.??remain_nodes=True??:保留屏外節點(如需總結整頁內容、無需滾動交互的場景);
b.??remain_nodes=False??:移除屏外節點(默認用于動作模擬場景,避免模型點擊/滑動不可見元素)。
- 判斷邏輯:遞歸檢查節點的?
?bounds???屬性(邊界坐標),僅保留完全位于屏幕尺寸??[0,0]~[Window_Height, Window_Width]??內且被父節點包含的“屏內節點”。
2. 刪除冗余節點
僅保留“有功能/語義的節點”,剔除無交互價值的結構型節點:
- 功能節點判斷標準(滿足任一即可保留):
a.布爾屬性為??True???:包含??checkable???(可勾選)、??clickable???(可點擊)、??scrollable??(可滾動)等交互相關屬性;
b.文本屬性非空:??text???(顯示文本)或??content-desc??(內容描述)字段有有效信息。
- 處理邏輯:遍歷所有節點,刪除不滿足上述條件的冗余節點(如純布局框架、空白占位元素)。
3. 屬性簡化
精簡XML屬性描述,減少token消耗并突出關鍵信息:
- 具體優化規則:
a.布爾屬性:僅保留??True???值(如??clickable="true"???保留,??clickable="false"??直接省略);
b.無用屬性刪除:移除??index???(索引)、??resource-id???(資源ID)、??package??(應用包名),這些信息對語義理解無幫助;
c.類名精簡:僅保留類名的最后一部分(如??android.widget.FrameLayout???簡化為??FrameLayout??);
d.文本屬性合并:將??text???和??content-desc??合并為統一文本字段,單獨展示;
e.完整保留邊界屬性:??bounds???(元素坐標,如??[221,1095][858,1222]??)是動作執行的核心依據,完全保留。

示例
實驗性能


消融
參考文獻
- MobileRL: Online Agentic Reinforcement Learning for Mobile GUI Agents,https://arxiv.org/pdf/2509.18119
- ??https://github.com/THUDM/MobileRL??
本文轉載自??大模型自然語言處理?? 作者:老余

















包含兩部分:
