在移动应用自动化领域,GUI代理面临的最大技术瓶颈就是如何有效处理长程任务。想象一下,当你需要完成"比较京东和淘宝上AirPods Pro 2的价格→将更便宜的商品加入购物车→把商品链接分享给微信好友"这样跨多个应用的操作时,人类可以自然地记住关键中间状态(比如哪个平台的更便宜),但现有AI代理却常常在长任务序列中"迷失方向"。
当前主流解决方案主要有两种:原始轨迹回放(Raw History)和自由文本摘要(Coarse Summary)。原始轨迹方法就像把每一步操作截图保存下来,代理需要处理大量冗余信息;而自由文本摘要则像让代理写一篇流水账日记,关键细节容易丢失。这两种方法在短任务中尚可应付,但当任务步骤超过20步时,代理的性能就会断崖式下跌——动作匹配分数(AMS)平均下降37%,任务完成率(TCR)下降超过40%。
ASM的创新之处在于它模拟了人类完成复杂任务时的认知方式。当我们网购比价时,大脑不会记住每个页面的所有细节,而是会锚定几个关键节点:"京东价格1249元"、"淘宝价格1329元"、"更便宜的是京东"。ASM正是将这种认知过程结构化:
这种设计使得代理的"工作记忆"从平均需要处理2671个token(原始轨迹)降至约1265个,同时保持了关键决策信息的完整性。
ASM的工作流程遵循"检索-推理-更新"的闭环机制。以跨平台比价任务为例:
python复制# 伪代码示例:ASM的核心处理流程
def process_step(current_state, memory_bank):
# 检索阶段:基于当前UI状态筛选相关锚点
relevant_anchors = retrieve_anchors(
current_state.screenshot,
current_state.accessibility_tree,
memory_bank
)
# 推理阶段:结合锚点预测下一步动作
next_action = llm_reasoning(
user_instruction="比较京东和淘宝价格",
current_ui=current_state,
anchors=relevant_anchors
)
# 更新阶段:分析是否需要创建/更新锚点
new_memory_bank = update_anchors(
memory_bank,
current_state,
next_action
)
return next_action, new_memory_bank
特别值得注意的是锚点更新策略。当检测到以下情况时会创建新锚点:
在AndroTMem-Bench的严格测试中,ASM展现出显著优势:
| 模型 | 原始轨迹 AMS | 文本摘要 AMS | ASM AMS | 提升幅度 |
|---|---|---|---|---|
| GPT-4o | 14.24 | 15.49 | 19.83 | +28% |
| Gemini-2.5-Pro | 32.71 | 36.39 | 57.37 | +58% |
| Qwen2.5-VL-7B | 20.71 | 35.09 | 40.36 | +15% |
更令人印象深刻的是,随着任务步骤增加,ASM的优势更加明显。在60+步的超长任务中,ASM相比原始轨迹方法的AMS优势可达到2.3倍。
购物比价场景:
[dep] price_jd=1249和[dep] price_tb=1329确保决策准确跨应用分享场景:
[ctx] target_app=WeChat维持任务上下文多步骤表单填写:
[state] address_verified=true避免冗余验证有效的锚点提取是ASM成功的关键。我们的实践表明,以下信号最适合触发锚点创建:
java复制// Android端示例:基于AccessibilityService的锚点检测
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == TYPE_WINDOW_STATE_CHANGED) {
// 检测到页面跳转
String currentActivity = event.getClassName().toString();
if (isKeyPage(currentActivity)) {
createAnchor(
type: "page_switch",
content: extractKeyInfo(event.getSource()),
timestamp: System.currentTimeMillis()
);
}
}
}
长任务运行时的内存管理面临严峻挑战。我们采用分层存储策略:
这种设计使得在Redmi Note 12 Turbo(12GB内存)上可以稳定处理超过100步的任务链。
问题现象:代理将价格信息关联到错误商品
解决方案:
bbox=(x1,y1,x2,y2)问题场景:突然弹出系统权限请求框
处理流程:
不同厂商的Android ROM存在UI差异。我们的应对措施包括:
os_version和dpi信息某电商APP集成ASM后,自动化测试脚本的成功率从68%提升至92%。一个典型的手机下单测试脚本:
gherkin复制Scenario: 跨平台比价下单
Given 用户要购买AirPods Pro 2
When 在京东查到价格是1249元
And 在淘宝查到价格是1329元
And 将京东商品加入购物车
And 完成支付流程
Then 订单应显示"待发货"状态
And 支付金额应为1249元
ASM在此过程中自动维护的关键锚点包括:
[price] source=JD, value=1249, timestamp=13:45:22[comparison] cheaper=JD, delta=80[cart] item_id=12345, quantity=1虽然ASM已经取得显著成效,但在以下方面仍有提升空间:
我们在Mate 60 Pro上进行的实验显示,引入视觉语言模型(VLM)辅助锚点提取后,在页面改版场景下的稳定性可再提升18%。这为下一代GUI代理的发展指明了方向——更紧密地结合感知、记忆与推理能力,让移动自动化真正达到人类水平的可靠性。