AndroidGen: Building an Android Language Agent under Data Scarcity¶
| 信息 | 内容 |
|---|---|
| 会议 | ACL 2025 |
| arXiv | 2504.19298 |
| 代码 | GitHub |
| 领域 | LLM Agent / 移动端智能体 |
| 关键词 | Android agent, 数据稀缺, 轨迹生成, 自动评估, 开源agent |
一句话总结¶
提出 AndroidGen 框架,通过经验检索(ExpSearch)、反思规划(ReflectPlan)、自动校验(AutoCheck)和步骤级评判(StepCritic)四个模块,在高质量训练数据稀缺的条件下增强LLM的Android操作能力,并通过自动生成轨迹数据训练出无需人工标注的开源移动端agent。
研究背景与动机¶
- 问题定义:将LLM作为agent在真实移动设备上完成用户任务(如设置闹钟、发送消息、搜索地图等)是重要但尚未充分实现的目标。核心瓶颈在于高质量轨迹数据的稀缺。
- 数据收集困难:(1) 场景多样性——不同应用差异巨大,需要广泛覆盖;(2) 复杂任务标注成本高——多步骤任务需要精确执行和规划;(3) 数据质量控制难——验证每步操作是否完全符合任务要求既费时又费力。
- 现有不足:人工标注耗时耗钱,自动化方法(使用GPT-4等自动完成任务)的成功率过低(如M3A+GPT-4o在AndroidWorld仅27.7%),且缺乏有效的自动质量筛选策略。
- 核心动机:需要一个既能提升agent性能的推理框架,又能自动生成高质量训练数据、训练开源模型的完整pipeline。
方法详解¶
整体框架¶
AndroidGen包含三个阶段:预备阶段(Preliminary)→ 任务执行(Task Execution)→ 更新(Update),核心为四个模块:
关键设计¶
-
ExpSearch(经验检索):
- 利用LLM的in-context learning能力,从历史轨迹数据库中检索最相似的已完成任务作为示例
- 使用Contriever编码指令计算相似度,选top-1结果
- 每次完成任务后用StepCritic评估并更新数据库,实现迭代自我改进和从易到难泛化
-
ReflectPlan(反思规划):
- 首步:分析任务和环境生成step-by-step计划
- 后续步:反思当前进度,更新计划状态,遇到失败或循环时动态修正计划
- 解决了传统planning对执行结果过于乐观的问题
-
AutoCheck(自动校验):
- 每步操作前主动验证有效性(元素ID是否存在、类型是否合规、滚动是否完成等)
- 采用规则策略而非LLM自检,避免自检标准不一致导致的误报
- 检测到问题时终止执行并在下一轮反馈
-
StepCritic(步骤级评判):
- 将任务分解为子目标,基于完整操作序列和设备最终状态进行细粒度评估
- 每个子目标标注是否完成及对应步骤(-1表示未完成)
- 支持轨迹增强:部分完成的轨迹可按已完成子目标截断为多条有效训练数据
损失函数¶
使用标准语言模型损失进行LoRA微调。将规划步和执行步混合训练,使模型同时具备规划和执行能力。
实验关键数据¶
主实验:AndroidWorld成功率¶
| Agent | 模型 | 平均成功率 |
|---|---|---|
| SeeAct | GPT-4o | 15.9% |
| M3A | GPT-4o | 27.7% |
| AndroidGen | GLM-4-9B* | 29.2% |
| AndroidGen | Llama-3-70B* | 35.3% |
| AndroidGen | GPT-4o | 46.8% |
AitW基准对比¶
| 方法 | General | Web Shopping |
|---|---|---|
| AppAgent (GPT-4o) | 16.7 | 8.3 |
| DigiRL (RL训练)* | 71.9 | 67.2 |
| AndroidGen (GLM-4-9B*) | 65.6 | 59.4 |
| AndroidGen (Llama-3-70B*) | 74.0 | 79.2 |
| AndroidGen (GPT-4o) | 85.4 | 81.3 |
消融实验¶
| 方法 | Easy | Medium | Hard | 平均 |
|---|---|---|---|---|
| Base Agent | 35.0 | 5.9 | 0.0 | 20.7 |
| +ReflectPlan | 51.7 | 14.7 | 0.0 | 32.4 |
| +AutoCheck | 53.3 | 17.6 | 0.0 | 34.2 |
| +ExpSearch | 65.0 | 32.4 | 11.8 | 46.8 |
关键发现¶
- AndroidGen大幅超越基线:在AndroidWorld上GPT-4o版本达46.8%(vs SeeAct 15.9%,M3A 27.7%)
- ExpSearch贡献最大:从34.2%→46.8%,是唯一能解决Hard任务的模块(11.8%)
- 开源模型训练有效:未经人工标注的Llama-3-70B*在AitW上超越RL训练的DigiRL(74.0% vs 71.9%)
- StepCritic优于二元评估:轨迹级准确率87.9%,高于Captioner+GPT-4的84.6%,且提供细粒度子目标标签
- 轨迹增强策略有效:利用部分完成轨迹的截断增强,最大化数据利用率
- 流行应用测试:在Google Maps、YouTube、Spotify等8个真实应用上成功率65%
亮点与洞察¶
- 完整的"框架+数据+模型"闭环:从推理框架到自动数据生成到开源模型训练,形成可复现的pipeline
- StepCritic的子目标粒度评估比简单的任务成功/失败判断提供了更丰富的训练信号
- AutoCheck采用规则而非LLM自检是务实的设计选择——避免了LLM自检标准不一致导致的false positive
- ExpSearch的迭代自我改进机制实现了无需人工干预的从易到难泛化
- 轨迹增强算法巧妙利用了部分完成的轨迹,极大缓解了数据稀缺问题
局限性¶
- AndroidWorld任务成功率仍不到50%,Hard任务仅11.8%,距离实用仍有差距
- 依赖GPT-4o作为StepCritic评判器,存在评判偏差和API成本问题
- 环境观测基于XML accessibility tree,缺乏视觉感知能力(不用截图)
- 仅在英文环境下评测,未覆盖其他语言的移动端场景
- ExpSearch的检索质量受数据库大小限制,初始阶段可能缺乏相似任务
相关工作与启发¶
- AI Scientist / AppAgent / Mobile-Agent:各类agent框架的对比参照
- DigiRL (Bai et al., 2024):基于RL的离线到在线训练方法,AndroidGen的训练数据方法可与之互补
- ReAct (Yao et al., 2022):推理+行动范式的基础,ReflectPlan在其基础上增加了计划动态更新
- 对"自动生成训练数据→训练开源模型"这一范式有普遍启发意义
评分¶
| 维度 | 分数 |
|---|---|
| 新颖性 | ⭐⭐⭐⭐ |
| 技术深度 | ⭐⭐⭐⭐ |
| 实验充分度 | ⭐⭐⭐⭐⭐ |
| 实用价值 | ⭐⭐⭐⭐⭐ |
| 总体推荐 | ⭐⭐⭐⭐ |