三层架构:各司其职

很多团队第一次接触手机自动化时,会误以为"接个 AI 就能操作手机"了。实际上,要让 AI 稳定地控制真实手机,需要三层能力配合,每一层解决不同问题:

层级代号职责不负责
L1 原子能力真机 Agent在真机上完成一次可验证的基础操作(点击/滑动/输入等)理解用户自然语言
L2 工作流剧本/模板把刚需场景编成稳定步骤图(如"发布一条抖音短视频")替代 IAM/控制台
L3 对话编排Cloud/Eino选工作流、补全槽位、创建/查询任务、解释失败在对话里直接点 UI
任务状态机df_task下发、取消、日志、终态执行 UI 自动化

L1 原子能力:每个动作都有回执

原子能力是整座大厦的地基——没有可靠的基础操作,上层设计得再好也是空中楼阁。目前支持的原子能力包括:

关键点在于:每个调用有成功/失败回执。系统不靠模型"感觉"来保证正确性,而是靠「执行 + 断言 + 回传」闭环。这意味着即使中间某一步失败了,也能精确定位到是哪一步出了问题,而不是整个流程糊成一团。

L2 工作流:把刚需场景变成稳定剧本

如果说原子能力是积木块,那工作流就是把这些积木拼成的稳定结构。一个 L2 工作流由以下部分组成:

  1. workflow_id:唯一标识符,比如 publish_short_video;
  2. 槽位 schema:定义用户需要填写哪些参数(文案、视频路径、目标 App 等);
  3. steps 或 FSM(有限状态机):具体的执行步骤图,每一步调用原子能力并附带断言;
  4. 发布状态 + scope:scope 分为 system(系统预置)和 tenant(租户自定义),status 标记是否 published 对外可见。

当前内置的工作流示例是「短视频发布」:参数包含账号语境、文案、媒体引用方式、目标 App(抖音/小红书/视频号至少先定 1 个),执行后可「立即执行」或绑定指定在线设备。定时发布、多设备批量等 P1 能力也在排期中。

L3 对话编排:自然语言直达真机

L3 是用户直接接触的界面——你说一句话,系统自动拆解并调度。它的核心链路是:

  1. 用户输入意图:例如「明天 9 点用这台手机发一条抖音,文案是 xxx」;
  2. Eino Agent 规划:解析意图,识别需要调用的工作流(publish_short_video),提取槽位参数;
  3. 产出步骤图 → 建任务:展开工作流为 df_task,状态变为 running;
  4. WS 下发至 Agent 执行端:经 WebSocket 传给真机 Agent,执行 steps 并回传进度/结果;
  5. 控制台查看结果:pending → running → succeeded/failed,失败必有可读错误信息。

这里有一个重要原则:L3 默认不直接编排每一次 tap。它只做高层意图理解和调度,具体怎么做是在 L2 工作流中定义好的。这样做的好处是可维护性强——改流程只需编辑工作流 JSON,不需要重新训练模型。

三块协作:MCP、会话、工作流

iDeviceFarm 的产品架构分为三大块,它们共享同一套工作流和基础设施:

模块是什么做什么
MCP Server给 WorkBuddy/Claude 等外部 AI 的入口列设备、跑工作流、查任务;不点手机
Agent 会话控制台内置对话工作台运营用户多轮聊天→选工作流、填参→建任务
工作流可版本化的自动化模板库槽位 schema + steps/FSM + 发布状态;内外统一

这三块不是独立运作的——它们通过同一个 ws(task_dispatch) → agent 执行端 → 真机的通路汇聚。也就是说,无论你从 MCP 进来、还是从控制台 Agent 会话进来,最终走的都是同一条执行链路。

安全与数据:全程不落盘截图

产品有个硬性约束:全链路不落盘、不落库截图。设备信息、任务记录全部保留在您自己的电脑里。这对数据敏感的工作室和企业来说意味着:即使有人拿到服务器或本地机器,也无法还原出屏幕内容或业务细节。

结合多租户 + RBAC 权限体系(租户/部门/角色/菜单/权限),企业可以实现严格的内部管控:不同事业部只看到自己的设备,运营只有设备/任务/AI 权限,只读角色不能创建任务。

一句话总结:原子能力是地基,工作流是剧本,对话编排是指令中枢——三者合在一起,才是真正可靠的手机 AI 智能体。想了解具体怎么上手,见 安装部署 说明。