本文作者:阿里云无影技术专家 陈湘婷
引言
近期在淘宝平台上,淘金币抵扣力度非常之大,金币几乎可以当钱花。双十一更是整出了“淘金币贷款”,让大家提前锁定优惠、买买买。过完双十一,面对欠下的几万淘金币债务,小伙伴们只能每天打开淘宝做各种打卡任务:签到、浏览、逛店、领奖励……枯燥到怀疑人生。于是我们基于现有 Mobile Agent 框架和无影 AgentBay 的 SDK做了一个“全自动助手”:把这类重复劳动交给云手机 GUI Agent,从此人类只负责享受优惠。
背景与项目
“赚淘金币”这件事,表面上是省钱小游戏,实际上很像一份重复劳动:每天都要打开淘宝,在各种入口里找任务,签到、浏览、逛店、领奖励,顺手还得处理一堆弹窗和加载。双十一之后,甚至有人“欠”了几万淘金币,被迫天天打卡“还债”。如果你认真做过几天,很快就会发现:真正让人崩溃的不是某一个步骤,而是链路很长、页面变化很快、还总会被网络和弹窗打断。
我们做的,就是把这份重复劳动交给一个能在手机界面里“自己看、自己点、自己输入”的助手来完成——一个 AI 驱动的云手机远程 GUI 自动化平台。它既能自动执行任务,又不会把人完全踢出局:前端提供云手机实时画面与交互,你随时可以手动接管;后端负责会话管理与任务调度,并用事件流把每一步“想了什么、做了什么、发生了什么”记录下来,方便观察和复盘。最终目标也很朴素:让淘金币打卡这种事变成后台自动完成,人类只负责享受优惠。而这一切自动化的基石,是我们将底层控制从传统 ADB 迁移到了 无影 AgentBay 的 SDK ——一个专为云手机场景设计的开源自动化开发套件。
站在巨人肩膀上:两大 Mobile Agent 工作简介
我们这个项目并不是“从零造轮子”。最近两个月,业界在移动端 GUI Agent 方向上有两项非常值得关注的工作发布,它们为“手机自动化”提供了成熟的底座能力。本文的实现就是基于这些能力进行工程化整合与增强。
阶跃星辰:GELab-Zero(移动 Agent 基建化)
随着 AI 体验日益深入消费级终端设备,移动 Agent 研究正处于从 “可行性验证” 向 “大规模应用” 转型的关键节点。虽然基于 GUI 的方案具有通用兼容性,但移动生态的碎片化带来了沉重的工程负担,阻碍了创新。GELab-Zero 旨在打破这些壁垒:
- 开箱即用的全栈基建:自动处理多设备 ADB 连接、依赖安装与权限配置,让开发者把精力放在策略创新上
- 消费级硬件本地部署:内置 4B GUI Agent 模型,并针对 Mac(M 系列芯片)及 NVIDIA RTX 4060 做优化,支持本地化运行与数据隐私
- 灵活的任务分发与编排:支持跨多设备分发任务并记录交互轨迹,提供 ReAct 循环、多智能体协作及定时任务等通用模式
- 加速从原型到落地:在基建层降低门槛,使团队能更快从“能跑”走向“可规模化”
智谱:AutoGLM Phone Agent(多模态感知 + 规划 + 执行)
Phone Agent 是一个基于 AutoGLM 构建的手机端智能助理框架。它以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务:用户只需用自然语言描述需求(例如“打开某 App 搜索美食”),系统即可解析意图、理解当前界面、规划下一步动作并执行。其典型能力包括:
- 屏幕感知:视觉语言模型理解当前 UI 状态
- 智能规划:根据任务目标生成可执行步骤
- 自动化控制(传统实现):通过 ADB 控制设备完成点击/输入/滑动
- 安全与接管:内置敏感操作确认机制,并支持登录/验证码等场景的人工接管
- 远程调试:提供远程 ADB 调试能力,可通过 WiFi/网络连接设备
接下来我们会重点分享:当我们站在上述 Mobile Agent 底座之上,把底层控制从 ADB 原语迁移到无影 AgentBay SDK 之后,为什么建联更快、截图长尾更短,以及多会话稳定性为什么明显变好。
系统能力总览:三条能力线如何协作
如果把整个系统想象成一个“打工三人组”,那大概是这样分工的:
- 前端负责“让你看见”和“让你能插手”——云手机画面通过无影自研的 ASP(Adaptive Streaming Protocol) 远程协议接入,前端用
resource_url的 iframe 展示实时画面,而且你想点哪里就点哪里,像远程控制一样直接上手。 - Agent负责“看屏幕→想一想→动手干活”。LLM 会把你的自然语言任务转成一串动作:Tap、Swipe、Type、Back/Home、Launch、LongPress/DoubleTap、Wait、Takeover……然后后端把这些动作落到设备上执行。
- SSE 事件流负责“把过程说清楚”。我们不把它当成实时画面通道,而是当成执行过程的旁白:thinking/action/takeover/completed/error/stopped 等事件会一路流出来,便于前端展示、也便于落库复盘;
screenshot事件主要服务于“模型视觉输入/兜底调试”。
前端 React 这边其实是开了“两条路”:一条是ASP协议的专用通道,它通过 iframe 直接嵌入 AgentBay 的云手机画面,这才是让你能像刷视频一样丝滑操作、几乎零延迟交互的关键;另一条路才是 SSE 长连接,它更像是 AI 的“解说台”,负责把后台 GLM 或 GELab 那些大脑里的实时思考片段、动作指令流式地推送到你的聊天框里。
后端 FastAPI 则像个稳健的“总调度”,一边通过 Supabase 盯着你的账号和会话安全,一边把 AI 算出来的点击、滑动指令通过 无影 AgentBay SDK 落实到云端设备。最人性化的一点是,当 AI 在 ASP 画面里遇到搞不定的登录或验证码时,它会通过 SSE 给你发个信号,这种“AI 辅助、人工补位”的逻辑,让整个自动化流程既有高效率,又有极高的容错率。
案例流程:一次“赚淘金币”任务如何跑通
说回淘金币打卡赚金币这个任务,通常会经历这样一条链路:
- 创建会话 → 打开淘宝 → 找到并进入“淘金币”入口
- 按任务列表循环执行:签到、浏览、逛店、领奖励(你看着它一项项清掉)
- 期间不断处理现实世界的“刁难”:弹窗、跳转、加载、偶发空白页
- 真遇到登录/验证码/敏感页:Agent 不硬刚,直接触发 Takeover,让你在实时画面里完成关键一步,然后它再把剩下的苦活继续干完
这类任务的关键不是“写死”的脚本,而是 AI 在应对“长链路 + 不确定性”时,能保持自主推进且支持随时人机配合。
- 为了应对上述复杂性,我们设计了如下结构化提示词(可直接用于支持 ReAct 框架的 Mobile Agent):
任务目标:在淘宝APP中完成今日所有赚金币任务,并统计获得的总金币数。
执行步骤:
- 打开淘宝并登录
- 检测淘宝APP是否已安装,若未安装则使用应用宝安装。
- 启动淘宝APP,如果需要登录,暂停当前任务转为人工接手来完成该操作。
- 进入淘金币页面
- 在首页点击「淘金币」图标(通常位于顶部导航栏)。
- 若界面变化导致入口不同,搜索关键词「淘金币」。
- 记录当前淘金币总结
- 任务智能执行
- 任务分类处理:
- A类任务(瞬时完成):点击后直接跳转返回(如“去浏览”、“去签到”)。优先执行此类任务。
- B类任务(需停留):进入任务页面后,根据提示倒计时(通常3-60秒)等待:
- 若页面有进度圈/倒计时,等待其消失后返回。
- 若需滑动页面,每2秒向上滑动一次(滑动距离为屏幕高度的1/3)。
- C类任务(跳转外部APP):
- 尝试跳转时,若目标APP未安装,立即放弃任务并记录。
- 若已跳转,等待5秒后返回淘宝。
- 任务执行策略
- 循环扫描任务列表,优先执行所有A类任务。
- 随后执行B、C类任务,每次返回金币页面后刷新任务列表(下拉页面)。
- 遇到弹窗(如“任务完成”)立即关闭。
- 结果统计
- 任务完成后,在淘金币首页顶部查看当前金币总数。
- 对比执行前后的金币数,计算差值作为本次获得的金币。
- 记录日志:成功X个任务,跳过Y个任务,获得Z金币。
异常处理:
- 页面加载超时(>15秒):强制返回淘金币首页。
- 任务中断:重新进入淘金币页面继续。
- 账号异常退出:重新登录。
- 同一种操作尝试不要超过3次,3次都失败就退出当前页面再尝试其它方式。
淘宝场景为什么是 Agent 的“试金石”?
在真实环境下,淘宝 App 的复杂度远超简单的 Demo。我们总结了五个最容易让 Agent “翻车”的坑:
- 动态 UI 陷阱:大促期间 UI 几乎每天都在变。今天背熟的按钮坐标,明天可能就变成了一个浮动挂件。Agent 的寻路策略必须具备极高的容错性,才能在各种“不按套路出牌”的瞬间稳住节奏。
- 弹窗干扰频率极高:红包弹窗、升级提示、活动跳转,这些会随时切断 Agent 的逻辑链,导致它在“迷宫”里越走越深。
- 安全策略严苛(关键痛点):敏感页面(如支付、账号、验证码)在系统底层禁止截图(Screen Capture)。传统的“截图 + AI”方案在此时会瞬间“失明”变为黑屏。但由于我们前端接入的是 ASP 实时流(它直接走云端协议加速,不依赖系统截图指令),用户依然能看到正常的画面并完成接管,这确保了自动化流程在任何情况下都不会陷入“死锁”。无影 AgentBay SDK + ASP 协议的组合,正是绕过系统截图限制、实现‘永不黑屏’的关键。
- 性能瓶颈:传统 ADB 截图耗时长(Worst-case 可达 10s+),导致 AI 的决策反馈循环太慢,无法跟上动态页面的加载频率。
- 网络波动的连带反应:云手机或 App 加载卡顿时,如果 Agent 节奏控制不好,很容易陷入重复无效点击的死循环。
无影 AgentBay SDK 如何重构云手机自动化底座
为了解决上述难题,我们构建了一个“感官与执行”分离的闭环架构,并深度集成 无影 AgentBay SDK —— 这是阿里云无影推出的官方移动端自动化开发套件,专为云手机场景设计,支持毫秒级指令下发、低延迟截图流与多会话隔离。
如果你也在做 Mobile Agent 或云手机自动化项目,强烈推荐试试这个 SDK!它让底层控制从“脆弱的 ADB 脚本”升级为“稳定可扩展的云原生接口”。 👉 GitHub 地址:https://github.com/aliyun/wuying-agentbay-sdk,如果觉得有用,欢迎点个 🌟 支持!
1. 执行加速:AgentBay SDK 指令直达
在动作执行端,以上两大厂商Agent一致采用了ADB原语的方式对手机进行操作。我们实现了从 ADB 原语到 AgentBay 原生 SDK 的全面迁移。
- 指令直达底层:动作不再经过中间层的 ADB 转发,而是通过 AgentBay 的云原生通道直接注入手机系统。这种无状态的调用方式彻底消除了 ADB 的连接抖动和执行排队问题。
- 截图链路深度优化:模型所需的视觉输入直接从 AgentBay 平台侧获取。相比传统
adb screencap动辄 10 秒的波动,SDK 模式下截图稳定在 1 秒以内,极大提升了决策频率。
2. 视觉底座:ASP (Adaptive Streaming Protocol)
我们通过前端嵌入无影 ASP 协议来呈现视频流画面,它提供了:
- 毫秒级低延迟:近乎零延迟的画面同步,是实现“人机协同”的前提,极大提高了远程操作的沉浸感。
- 全透明交互:用户可以直接在 ASP 画面上进行点击和滑动,与后台 Agent 的指令共用一套执行上下文。
3. 关键能力:基于 ASP 的实时人工接管 (Takeover)
这是本系统最核心的“鲁棒性保障”。当 Agent 识别到无法处理的验证码或进入敏感页面时,会立即触发 Takeover 事件。
图:Agent 正在执行任务,右侧 ASP 画面支持实时同步操作,方便用户随时介入
这种设计实现了算法负责长尾任务、人类负责关键决策的完美分工。用户在实时画面完成关键一步(如滑动验证)后,Agent 立刻收回控制权,继续未完成的自动化链路。
AgentBay 如何助力提效
在早期的版本中,我们使用的是传统的 ADB 隧道模式。切换到无影 AgentBay SDK 通道后,系统的健壮性发生了质变。这套由阿里云无影团队开源的 SDK,专为高并发、低延迟的云手机自动化场景打造,彻底解决了 ADB 在生产环境中的诸多痛点。
- 彻底解决“连接抖动”:在多会话并发场景下,在同一台服务器上维护几十条 ADB 长连接是一场噩梦。改用 SDK 接口调用后,控制逻辑变成了稳定的 REST/RPC 调用,稳定性提升了一个量级。
- 截图长尾效应的消失:通过 AgentBay SDK 直接获取已处理好的图片流,耗时从 10s 直接压缩到 1s 以内。
- 建联速度的飞跃:从“创建会话”到“设备就绪”的耗时从 20s 缩短至 2s,实现了秒级进入执行状态。
- 工程化“可持续运行”优化:
- 服务重启可续跑:通过
session_id持久化机制,即便后端服务重启,也能快速重建 SDK Session,避免因缓存丢失导致的设备失控。 - 任务停止可靠性:优化了 Stop 信号的响应窗口期,确保用户在前端点击“停止”时,Agent Loop 能在毫秒级内感知并安全退出。
总结
“赚淘金币”这类高不确定性的真实任务,正是检验 Mobile Agent 工程能力的试金石。
我们通过引入无影 AgentBay SDK 替代传统 ADB 原语,在底层构建了更稳定可靠的执行通道;同时,结合 ASP 与 SSE 构建的双通道机制,有效解决了远程自动化中“看不清、点不准、难交互”的核心痛点。
这一架构让 AI 专注于处理枯燥的长尾重复任务,而人类则在关键节点及时介入、提供兜底保障——真正实现了人机协同的高效闭环。
未来,我们将继续探索复杂真实场景下的智能体鲁棒性,让自动化不止于“能跑”,更能“跑得稳、跑得准”。
相关链接
- 无影 AgentBay 官网
- 无影 AgentBay SDK Github- 欢迎 Star 支持!