第一步:屏幕理解——AI 是怎么"看"手机的

传统的自动化脚本依赖固定的元素 ID 或坐标定位,一旦 App 改版就全线崩溃。而 AI 操作手机的第一步,是让模型"看见"屏幕的实际样子

目前主流的实现方式有两种:

方式优点缺点
OCR + UI 节点抓取速度快、成本低,适合结构化界面需要处理多语言、字体缩放、动态内容
VLM(视觉大模型)直接看图泛化能力强,能理解复杂布局延迟较高,需要 GPU 加速或云端推理

iDeviceFarm 采用VLM + OCR 混合方案:VLM 负责整体布局理解和大字段提取,OCR 辅助小字识别和表单填充。两层输出经过对齐校验后才送入下一步规划。

第二步:意图规划——把一句话拆成 N 步

当你说一句「把这些商品上架」时,AI 需要做一系列推理:

  1. 识别意图类型:这是电商铺货类任务,映射到 worklfow_id="list_products"(如果有对应模板的话)。
  2. 提取槽位参数:价格范围、商品分类、目标平台——这些是工作流必需的填空项。
  3. 生成步骤图:把任务展开为 ordered steps 序列,每一步标注要调用的原子能力和断言条件。

关键难点在于容错和动态应变。理想情况下,第 3 步成功但第 5 步失败,系统不应该全盘重来,而是定位到第 5 步的异常原因,必要时回滚到最近成功状态后重试。这就是为什么我们强调不靠模型"感觉",要靠执行+断言+回传闭环

第三步:操作执行——每一步都有回执

这是最容易被忽略但也最关键的一环。一个可靠的执行层必须做到:

实现上,这一步由Agent 执行端承担——每台手机上的原生客户端(iOS Swift App 或 Android Java/Flutter),通过 WebSocket 接收 farm 下发的 task_dispatch 消息,然后在本机执行操作并把 result 回传。整个过程不走第三方服务,数据留在你的电脑里。

协议与数据传输

连接 farm 控制面和 Agent 执行端的通道是基于WebSocket + JSON的轻量级协议,主要消息类型包括:

消息类型方向用途
registerAgent → Farm设备注册,上报 ID、名称、平台(ios)、能力标签
heartbeatAgent ↔ Farm周期性心跳保活,超时标离线
task_dispatchFarm → Agent下发步骤图或工作流引用
task_progress/task_resultAgent → Farm上传进度和最终结果
task_cancelFarm → Agent取消正在执行的任务

这套协议的设计原则是简单、幂等、可扩展:每条消息都有 protocolVersion 字段标记版本兼容性,task_dispatch 可以多次下发(覆盖上一次未完成的),agentKind 预留了扩展位以便后续支持 Android/HarmonyOS。

总结:可靠性比花哨更重要

回到最初的问题:"AI 操作手机是怎么实现的?"答案是:视觉理解 + 意图规划 + 原子执行闭环。但这三个字背后是一套系统工程——不只是调个大模型接口那么简单。真正的核心竞争力不在于"AI 有多聪明",而在于当某一步失败时,系统能不能自己找回来

想了解更多实操细节(比如如何接手机、怎么配 MCP),去 AI 对接安装部署 看看。