DEV Community

Fenix
Fenix

Posted on

OpenGUI:手机上的 OpenClaw

#ai

OpenGUI 是一个让 AI 操作真实 Android 手机的项目。

项目地址:https://github.com/Core-Mate/open-gui

OpenClaw 把 AI 接到桌面环境,OpenGUI 则把类似的执行层放到了 Android 手机上。它面向的是手机 App 里的任务:点击、输入、截图、阅读页面、执行流程、返回结果。

很多任务天然发生在移动端:X、Reddit、Hacker News、Telegram、微信、小红书,还有不少只在 App 内完整存在的业务流程。网页自动化覆盖不到这些场景。

基本架构

OpenGUI 由后端和 Android 客户端两部分组成。

后端负责理解任务、生成计划、监督执行和总结结果;Android 客户端连接后端,在真实设备上执行 GUI 操作。除了点屏幕,它还要处理任务状态、设备状态和失败后的恢复。

仓库里能看到几块代码:

  • 后端的任务规划、Executor Graph、复核和总结
  • Android 端的 AccessibilityService 动作执行
  • 设备通过 WebSocket 保持连接
  • 飞书/Lark、Telegram、REST API 等远程触发入口

这样跑起来后,手机可以保持待命,像一个远程 worker 一样接任务、执行任务、回传结果。

本地启动

本地需要先准备 Android 开发环境,并连接一台 Android 设备。

启动后端:

cd server
./start.sh
Enter fullscreen mode Exit fullscreen mode

启动 Android 客户端:

cd client
./start.sh
Enter fullscreen mode Exit fullscreen mode

后端脚本会准备依赖服务、数据库和 API;客户端脚本会构建 APK、安装到连接的 Android 设备上,并启动应用。

手机侧还需要手动确认 USB 调试、Accessibility Service、悬浮窗权限,以及模型 API Key / 机器人凭证等。权限授权这部分保留人工确认更合理。

难点在哪里

手机 Agent 的麻烦通常出现在后续状态处理上。点一下屏幕只是开始。

比如一个很简单的任务:

打开 X,搜索 mobile AI agents 相关的近期讨论,收集主要观点,并总结大家主要关心的问题。

这个任务看起来不大,但手机上会发生很多不确定的事情:App 可能停在旧页面,搜索框可能没点中,结果页可能加载慢,中间还可能弹出登录、权限、推荐关注之类的窗口。

所以 Mobile Agent 不能只会“看图然后点一下”。它还要知道任务做到哪一步了,当前屏幕是不是符合预期,点错之后怎么恢复,页面没变化时要不要重试,最后怎么把执行结果收回来。

我实际跑了一下,也仔细看了 OpenGUI 的源码。它的思路还挺不错:后端 graph 管任务状态和计划,Executor Graph 负责把具体步骤派到手机上,Android 端通过 AccessibilityService 执行动作,再通过 WebSocket 把设备状态和执行结果传回来。

这会把手机放进执行循环里。后端判断任务要继续、重试还是结束;手机端把真实屏幕和动作结果反馈回来。

这套设计比单纯写脚本靠谱得多。手机可以待命、执行、反馈,更接近一个移动端 worker。

我能想到的第一批用途,是社区信息收集、移动端流程测试、运营任务执行,以及那些网页自动化碰不到的 App-only 流程。

Top comments (0)