手机 Agent 的真实水平有多差?MobilePA-Bench 用交互式沙箱给出了答案:最强模型总分仅 75.52%

核心摘要:手机正在变成 LLM 智能体的下一个主战场,但现有的评测体系跟实际使用严重脱节——GUI 类基准只考"点屏幕",函数调用类基准只考"字符串匹配"。阿里通义 MAI 团队这篇 MobilePA-Bench(arXiv:2608.23035)的思路是:既然要考,就把整个手机后端搬进沙箱,维护一份实时数据库,让 Agent 在一个有状态、会报错、有权限限制的环境里真刀真枪地干。覆盖 13 个功能域、212 个工具、1705 个任务,还单列了子 Agent 协作、记忆使用、技能复用三个进阶维度。结果挺扎心:13 个前沿模型里最强的 Claude-Opus-5 总分也只有 75.52%,Memory 维度全员崩盘,最好的也只有 64.63%。这不是一篇"刷榜"论文,而是一面照妖镜——它告诉你,移动智能体距离"可靠"还隔着一条叫做"复合可靠性"的鸿沟。如果你在做端侧 Agent,这个基准值得放进你的评测栈。


📖 论文信息

  • 标题:MobilePA-Bench: Benchmarking Mobile Planner Agents on Complex Real-World Tasks
  • 作者:Yi Zhu、Xiongwei Wu、Qiyi Wang、Tingyu Qu、Jiajun Liu、Sihan Cao、Long Chen、Weigao Sun、Feida Zhu、Yiran Zhong、Steven Hoi
  • 机构:MAI Team, Alibaba Token Hub, Alibaba Group
  • 链接:https://arxiv.org/abs/2608.23035
  • 代码:https://github.com/Tongyi-MAI/MobilePA-Bench

🎯 一个被忽略的评测盲区

你有没有想过一个问题:手机上的 AI 助手,到底该怎么考?

现在的评测体系分成了两派,而这两派各自有一块明显的盲区。

第一派是 GUI 中心基准,代表选手是 AndroidWorld、OSWorld、MobiBench 这一挂。它们的做法是给 Agent 一个安卓模拟器,让它看屏幕截图、点按钮、滑页面,最后检查任务完成没。这条路测的是"像素级感知 + 界面操作",挺直观的,但问题在于——真实手机助理的大量工作根本不在屏幕上发生。订机票、查日历、发短信、开关勿扰模式,这些事的本质是一连串后台工具调用和状态变更。把算力全花在解析 UI 布局上,是拿错了尺子。

顺带提一句背景:AndroidWorld 这条线的竞争已经很激烈了。Google 发布的这个基准包含 116 个手工任务,2026 年 8 月的公开快照里 Qwen3.8-Max 已经刷到了 85.3%,开源的 GUI-Owl 系模型也在 70 分上下徘徊。分数涨得飞快,但这恰恰说明 GUI 自动化这个子问题正在被快速收敛,它不是当前 Agent 能力的真正瓶颈。

第二派是静态函数调用基准,BFCL、ToolBench、DroidCall、TAU-Bench 这类。它们考的是模型能不能把一句自然语言翻译成正确的 API 调用,评测方式是离线字符串匹配。问题在于,真实环境是有状态的——你调用 add_contact,数据库里就多了一条联系人;你忘了传必填参数,系统会返回 Missing field;你没权限,系统会甩回来 PermissionDenied。静态基准里这些全都不存在,模型在"无反馈的真空中"做题,测不出运行时纠错能力。

这篇论文的判断很干脆:真实的用户意图——比如"帮我规划下周三去上海三日游,机票酒店景点全搞定"——单靠 API 调用或 GUI 自动化都搞不定,它需要记忆检索、技能执行、基础工具使用、子 Agent 委派四种能力的统一编排。于是 MobilePA-Bench 应运而生。

图1:一个真实的多轮任务示例

图1:一个三日游规划任务的完整交互过程。左侧是用户与 Agent 的多轮对话,右侧拆解了 Agent 实际动用的四种能力——先检索记忆(用户偏好短航班、住希尔顿、家在北京),再执行订票技能包,然后调用扫码工具,最后把"填参观人信息、完成预约"委派给 GUI 子 Agent。这才是真实手机助理该有的样子,也是这个基准要测的东西。

🏗️ 核心设计:把手机后端整个搬进沙箱

MobilePA-Bench 最重要的设计决策,是放弃了视觉渲染,转而构建一个有状态仿真沙箱。一句话讲:不画界面了,直接操作数据库。

沙箱由三个紧耦合的层级构成:

  • Tool Schema:定义结构化函数接口。比如 add_contact 明确要求 namephoneNumber 两个必填参数,并标注所属域。
  • Tool Implementation Code:真正的执行逻辑。它会校验参数、检查联系人是否已存在、生成动态 ID(如 contact_002),而不是简单地"假装成功"。
  • Shared Stateful Database:维护实时应用状态,同时记录运行审计日志。

形式化一点,环境状态定义为 \(\mathcal{S}_t = \langle \mathcal{D}_t, \mathcal{O}_t \rangle\)(实时数据库 + 操作日志),每次执行返回结构化反馈 \(f_t = \langle Status, ErrorType, Payload \rangle\)。Planner 每步执行动作 \(a_t = \pi(q, \mathcal{H}_t, \mathcal{A}_t)\),直到发出 Finish 或达到步数上限 \(T_{max} = 15\)

关键的一点是环境摩擦注入:沙箱在初始配置里故意埋了缺失参数、权限阻断、实体歧义这些坑,逼着 planner 根据动态反馈实时修计划。你不能指望一次把参数填对,你得学会看错误信息、追问用户、调整策略。

图2:MobilePA-Bench 总体架构

图2:架构总览。上层是 Mobile Planner Agent,掌握四类能力(基础工具、记忆、子 Agent 协作、技能);中层是 Tool Executor,执行"工具调用→参数校验→执行→返回结果"的闭环,同时环境反馈"状态更新→观察→事件触发→执行状态";底层是 Mobile Environment,包含可执行工具、可变状态、领域数据库和运行时日志,最终由三类 Checker 判定成功。整个链路是一个真闭环,不是静态问答。

为什么这个设计重要?因为操作直接写结构化后端数据库,不需要视觉渲染,沙箱支持高吞吐、确定性执行和轨迹回放——这让它天然适合做 Agentic RL 的训练环境,而不只是一个评测集。说实话,我觉得这一点比基准本身更有长期价值。

图3:沙箱三层结构的具体例子

图3:以 add_contact 为例的三层结构。上方是 Tool Schema(JSON 格式的函数定义);左下是 Tool Database,存着现有联系人和操作日志;右下是 Tool Code 的真实 Python 实现——校验必填字段、检查重复、生成 contact_002 这样的动态 ID。Tool Executor 调用后返回 {"success": true, "data": {...}} 这样的结构化结果。每一步都会留下审计痕迹。

13 个功能域、212 个工具

任务覆盖的广度是这样的:

功能域 工具数 典型能力
Audio & Entertainment 25 媒体控制、相机、录屏、音乐识别
Apps & Storage 23 应用生命周期、权限、通知、存储清理
Display & Sound 22 亮度、音量、深色模式、勿扰
System Settings 22 控制中心、语言、系统更新
Time Management 16 日历、任务、闹钟、自动化规则
AI Assistant 16 GUI 子 Agent 路由、记忆搜索、智能感知
Calls & Communication 15 联系人、通话、短信、骚扰拦截
Network & Connectivity 14 WLAN、蓝牙、热点、NFC
Travel & Lifestyle 13 天气、导航、支付码、票务
Devices & Cross-device 13 投屏、多屏共享、设备迁移
Input & Interaction 12 截图、扫码、隔空手势
Utilities & Productivity 11 浏览器、计算器、翻译
Security & Privacy 10 屏幕锁、生物识别、密码库

总共 1705 个真实用户任务:Basic Tool Use 占 1040 个,Memory Usage 376 个,Skill Usage 200 个,Sub-agent Collaboration 89 个。

🧠 三个进阶维度:真正拉开差距的地方

如果说基础工具调用是"送分题",那三个进阶维度就是这篇论文真正想拷问的东西。

① Sub-agent Collaboration:考的是"委派质量"

89 个任务专门隔离出那些超出结构化 API 能力边界的活——GUI 视觉操作、条件监控、视觉问答、交互式练习。架构里有六个专门的子 Agent,其中 GUI Sub-agent 负责视觉 grounding 和底层界面交互。

评测口径很聪明:它不考下游子 Agent 执行得好不好,只考 planner 的委派质量——路由选对了没有?交接负载里给的上下文够不够完整?指令清不清晰?这就像考一个项目经理,不是考他会不会写代码,而是考他会不会派活。

② Memory Usage:门控式端到端判定

376 个任务建立在一个连贯的用户画像世界上:用户有个秘书叫 Maya,通勤时习惯静音且媒体音量 20%,导航偏好高对比度路线……请求刻意省略这些显式偏好,要求 planner 在动手之前主动去查持久记忆。

评测用了个挺狠的门控机制。设 \(\hat{M}_T\) 为轨迹中所有 search_user_memory 调用返回的记忆 ID 并集,记忆门控:

\[g_{mem}(q) = \mathbb{1}[\mathcal{M}_q^* \subseteq \hat{M}_T]\]

最终判定:

\[Succ_{mem}(q) = g_{mem}(q) \wedge \mathcal{C}_b(q)(\mathcal{H}_T, \mathcal{S}_T)\]

翻译成人话:必须检索到全部金标记忆 ID,并且任务主检查器也通过,才算成功。少查一条记忆,或者查了记忆但事没办对,都是零分。376 个任务还沿三个诊断轴做了标注:记忆推理类型(单记录 grounding / 冲突记录消解 / 多记录组合)、目标操作(增/替/删)、应用域。

③ Skill Usage:技能包的动态加载

200 个任务把复合型多步手机例程打包成可复用技能。调用技能加载器会返回程序化指令,并动态扩展候选动作集:

\[\mathcal{A}_{t+1} = \mathcal{A}_t \cup \mathcal{G}(s)\]

也就是说,加载技能之后,planner 才能看到技能内部绑定的具体工具 schema。评测在 Skill-Only Routing(SOR)和 Mixed Tool-Skill Routing(MTSR)两种设置下分别跑,取平均。同样要求金标技能被加载且主检查器通过才算成功。

证据对齐的三个 Query Bucket

验证机制与能力维度是正交的,按证据类型分三类:

图4:三类 Query Bucket 的判定方式

图4:三个 Bucket 的判定逻辑。Bucket 1(Tool Call)要求确定性规范步骤,精确匹配工具名、调用顺序、参数字段与归一化值,不允许多余的副作用调用;Bucket 2(State Change)允许多条有效路径,只比对终态数据库差量 \(\mathcal{D}_T - \mathcal{D}_0\) 与标注目标,拒绝破坏性写入;Bucket 3(Agent Behavior)针对开放式任务,按 rubric 评估可观察轨迹——子 Agent 调用是否恰当、追问行为是否连贯。

总分的聚合公式:

\[Score_{overall} = 0.50 \times Score_{Basic} + 0.10 \times Score_{SubAgent} + 0.20 \times Score_{Memory} + 0.20 \times Score_{Skill}\]

这个权重设计值得注意:Memory 和 Skill 各占 20%,比 Sub-agent 的 10% 高一倍。作者显然认为"记住用户"和"复用经验"比"会派活"更接近日常使用的核心痛点。

📊 实验:13 个前沿模型,没人及格(如果及格线是 90 分)

评测配置:动态工具选择召回 N = 15,多轮函数调用,标准化系统提示,最大步数 \(T_{max} = 15\),不可变全分母计分(缺失或无效预测直接计失败)。

主结果这张表我建议你多看两眼:

模型 Overall Basic Sub-agent Memory Skills 平均输出 token
Claude-Opus-5 75.52 83.85 62.92 58.51 78.00 262
Claude-Fable-5 75.31 83.37 70.79 62.50 70.25 269
Kimi-K3 73.01 77.40 62.92 63.56 76.50 270
Qwen-3.8-Max 72.51 77.88 53.93 64.63 76.25 304
Gemini-3.6-Flash 71.21 78.65 66.29 62.77 63.50 221
Gemini-3.1-Pro 71.18 80.58 77.53 48.67 67.00 194
GLM-5.2 67.71 76.06 61.80 49.73 67.75 372
Claude-Opus-4.8 65.52 79.04 50.56 37.23 67.50 283
Qwen-3.7-Max 64.71 76.54 50.56 53.19 53.75 303
Seed-2.1-Pro 63.65 72.98 59.55 42.29 63.75 288
GPT-5.6-Sol 62.68 69.81 49.44 44.15 70.00 221
GPT-5.5 61.44 68.94 51.69 41.76 67.25 243
Kimi-2.6 55.63 70.38 43.82 33.78 46.50 223

(单位:%,加粗为每列最佳)

几个让我停下来的观察。

第一,天花板比想象中低。 最强的 Claude-Opus-5 总分 75.52%,意味着四分之一的任务失败。13 个模型里 7 个低于 70%。要知道这些可都是各家当前最能打的旗舰模型。

第二,维度之间的断层非常大。 Basic Tool Use 的峰值是 83.85%,但 Memory 只有 64.63%,Sub-agent 跨度从 43.82% 到 77.53%。基础工具调用快收敛了,记忆和委派还是重灾区。尤其是 Memory——最强模型也要挂掉超过三分之一的任务。

第三,不存在全能冠军。 这是个挺反直觉的发现:Claude-Opus-5 领先 Basic(83.85%)和 Skills(78.00%),但 Memory 只有 58.51%;Qwen-3.8-Max 在 Memory 上拔得头筹(64.63%);Gemini-3.1-Pro 拿下 Sub-agent(77.53%)却在 Memory 上只有 48.67%。你没法闭眼选一个模型打天下,不同模型的能力画像差异显著。

第四,技能复用确实有用。 Skills 峰值 78.00%,而且多数模型的 Skills 成绩高于自己的 Memory 成绩。把长程例程打包成技能,能有效缓解逐步规划的错误累积——这跟之前 Agent 领域"工作流压缩"的经验是一致的。

评测稳定性:这个基准本身靠不靠谱?

基准类工作最怕的就是"测不准"。作者用 Qwen3.6-27B 在相同设置下跑了 3 次完整评测:

Run Basic Sub-agent Memory Skills Overall
1 73.37 46.07 31.91 47.75 57.22
2 74.33 43.82 32.18 48.25 57.63
3 74.04 43.82 32.71 46.75 57.29
Std. 0.49 1.30 0.41 0.76 0.22

Overall 的波动范围在 57.22%–57.63%,误差带不到 0.5 个点。Sub-agent 波动最大(峰谷差 2.25 点),但也就对应 89 个样本里 2 个任务的判定差异,乘以 10% 权重后对总分影响至多 0.23 点。这个稳定性是相当扎实的。

失败模式:不会"认怂"的模型

论文里有个观察我觉得特别值钱:遇到能力边界、歧义约束或执行异常(比如 PermissionDenied)时,模型倾向于过早发出幻觉工具调用,而不是追问澄清或根据反馈 \(f_t\) 调整策略。

翻译过来就是——这些模型缺乏"校准的克制"。它们宁可瞎编一个看似合理的调用,也不愿意说"这个我做不到"或者"你能再说清楚一点吗"。以 GPT-5.6-Sol 的错误分析为例:Skills 表现最强(70.00%,结构化程序有助于稳定长程执行),但 Sub-agent(49.44%)和 Memory(44.15%)暴露了它在委派交接质量、个性化检索、以及"把检索到的上下文转化为正确动作"上的持续弱点。检索到了记忆但没用对,这种 grounding 失败比"没检索到"更隐蔽,也更难修。

🤔 我的判断

这篇论文最值钱的地方,不是又造了一个榜单,而是它把移动 Agent 的评测从"单点能力"拉到了"复合可靠性"的视角。真实工作流需要记忆消歧、技能加载、有状态 API 执行、GUI 委派串联成一条链,每个环节 90% 的准确率乘起来,端到端就是不及格的。它用 1705 个任务把这个残酷事实量化了。

设计上有几个我很认可的决策。一是放弃视觉渲染、直接操作数据库,评测吞吐量高、可复现、还能回放轨迹,这为后续的 Agentic RL 铺了路——论文也明确说这个沙箱就是奔着"交互式 RL 训练场"去的。二是 Memory 的门控判定,避免了"任务碰巧做对但记忆根本没查"的虚假成功。三是三个 Bucket 的证据对齐设计,把"过程对不对""结果对不对""行为像不像样"分开考,诊断粒度足够细。

但也有几个地方我会打个问号。Sub-agent 维度只有 89 个任务,样本量偏小,单次运行 2 个任务的判定差异就是 2.25 个点的波动——虽然权重低不影响总分,但如果你想拿这个维度做模型选型,噪声得小心。另外,整个沙箱是模拟环境而非真机,工具实现是作者手写的 Python 逻辑,它和真实手机系统(权限弹窗、后台杀进程、跨应用数据同步延迟)之间的 gap 有多大,论文没有展开讨论。Memory 世界的用户画像是合成的,合成画像的分布是否贴近真实用户的混乱记忆,也存疑。

还有个小瑕疵:Sub-agent 维度的评测只考委派质量不考下游执行,这是合理的简化,但也意味着"委派对了但子 Agent 执行翻车"的情况不会被扣分——真实场景里这种失败是算在 Agent 头上的。

对工程实践的启发其实很直接。如果你在做端侧 Agent,这篇论文给出了一张清晰的能力体检表:基础工具调用已经不是瓶颈,优先去补记忆检索后的 grounding、错误恢复时的"该追问就追问"、以及把高频长程流程沉淀成技能包。特别是最后一点,Skills 维度的数据已经证明了这是性价比最高的提升路径。

📝 收尾

移动智能体的竞争,正在从"能不能做"转向"做得稳不稳"。MobilePA-Bench 给出的答案是:连最强的模型,稳定性都还没及格。但这个基准本身——有状态、可回放、面向 RL——可能比那 75.52 分的头条数字更有生命力。如果后续真有人用它做 Agentic RL 把 Memory 维度的 64.63 刷上去,那才是这个故事的下一章。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我