AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Android 设备变得简单
- 多设备并发控制 - 同时管理和控制多个 Android 设备,设备间状态完全隔离
- 对话式任务管理 - 通过聊天界面控制 Android 设备
- 实时屏幕预览 - 基于 scrcpy 的低延迟视频流,随时查看设备正在执行的操作
- 直接操控手机 - 在实时画面上直接点击、滑动操作,支持精准坐标转换和视觉反馈
- 零配置部署 - 支持任何 OpenAI 兼容的 LLM API
- ADB 深度集成 - 通过 Android Debug Bridge 直接控制设备
- 模块化界面 - 清晰的侧边栏 + 设备面板设计,功能分离明确
AutoGLM-GUI 只需要一个 OpenAI 兼容的模型服务。你可以:
- 使用官方已托管的第三方服务
- 智谱 BigModel:
--base-url https://open.bigmodel.cn/api/paas/v4,--model autoglm-phone,--apikey <你的 API Key> - ModelScope:
--base-url https://api-inference.modelscope.cn/v1,--model ZhipuAI/AutoGLM-Phone-9B,--apikey <你的 API Key>
- 智谱 BigModel:
- 或自建服务:参考上游项目的部署文档用 vLLM/SGLang 部署
zai-org/AutoGLM-Phone-9B,启动 OpenAI 兼容端口后将--base-url指向你的服务。
示例:
# 使用智谱 BigModel
pip install autoglm-gui
autoglm-gui \
--base-url https://open.bigmodel.cn/api/paas/v4 \
--model autoglm-phone \
--apikey sk-xxxxx
# 使用 ModelScope
pip install autoglm-gui
autoglm-gui \
--base-url https://api-inference.modelscope.cn/v1 \
--model ZhipuAI/AutoGLM-Phone-9B \
--apikey sk-xxxxx
# 指向你自建的 vLLM/SGLang 服务
pip install autoglm-gui
autoglm-gui --base-url http://localhost:8000/v1 --model autoglm-phone-9b- Python 3.10+
- 已开启 USB 调试的 Android 设备
- 已安装 ADB 并添加到系统 PATH
- 一个 OpenAI 兼容的 API 端点
无需手动准备环境,直接安装运行:
# 通过 pip 安装并启动
pip install autoglm-gui
autoglm-gui --base-url http://localhost:8080/v1也可以使用 uvx 免安装启动(需已安装 uv,安装教程):
uvx autoglm-gui --base-url http://localhost:8080/v1# 从源码安装
git clone https://github.com/your-repo/AutoGLM-GUI.git
cd AutoGLM-GUI
uv sync
# 构建前端(必须)
uv run python scripts/build.py
# 启动服务
uv run autoglm-gui --base-url http://localhost:8080/v1启动后,在浏览器中打开 http://localhost:8000 即可开始使用!
AutoGLM-GUI 支持同时控制多个 Android 设备:
- 设备列表 - 左侧边栏自动显示所有已连接的 ADB 设备
- 设备选择 - 点击设备卡片切换到对应的控制面板
- 状态指示 - 清晰显示每个设备的在线状态和初始化状态
- 状态隔离 - 每个设备有独立的对话历史、配置和视频流
设备状态说明:
- 🟢 绿点:设备在线
- ⚪ 灰点:设备离线
- ✓ 标记:设备已初始化
- 连接设备 - 启用 USB 调试并通过 ADB 连接设备(支持 USB 和 WiFi)
- 选择设备 - 在左侧边栏选择要控制的设备
- 初始化 - 点击"初始化设备"按钮配置 Agent
- 对话 - 描述你想要做什么(例如:"去美团点一杯霸王茶姬的伯牙绝弦")
- 观察 - Agent 会逐步执行操作,每一步的思考过程和动作都会实时显示
除了 AI 自动化,你也可以直接在实时画面上操控手机:
- 实时画面 - 设备面板右侧显示手机屏幕的实时视频流(基于 scrcpy)
- 点击操作 - 直接点击画面中的任意位置,操作会立即发送到手机
- 滑动手势 - 按住鼠标拖动实现滑动操作(支持滚轮滚动)
- 视觉反馈 - 每次操作都会显示涟漪动画和成功/失败提示
- 精准转换 - 自动处理屏幕缩放和坐标转换,确保操作位置准确
- 显示模式 - 支持自动、视频流、截图三种显示模式切换
技术细节:
- 使用 scrcpy 提供低延迟(~30-50ms)的 H.264 视频流
- 前端自动获取设备实际分辨率(如 1080x2400)
- 智能处理视频流缩放(如 576x1280)与设备分辨率的映射
- 支持 letterbox 黑边的精确坐标计算
- 颗粒化触摸事件支持(DOWN、MOVE、UP)实现流畅的手势操作
AutoGLM-GUI 采用简化的多设备并发架构,支持同时管理多个 Android 设备:
后端设计:
- 使用字典管理多个
PhoneAgent实例:agents: dict[str, PhoneAgent] - 每个设备有独立的
scrcpy视频流实例 - 设备级别的锁机制,避免不同设备间的阻塞
- 所有 API 接口支持
device_id参数进行设备路由
前端设计:
- 使用
Map<string, DeviceState>管理每个设备的独立状态 - 组件化设计,功能职责清晰分离:
DeviceCard- 单个设备信息卡片DeviceSidebar- 设备列表侧边栏DevicePanel- 设备操作面板(ChatBox + Screen Monitor)
- 设备状态完全隔离,互不影响
核心特点:
- ✅ 无任务队列,简化设计
- ✅ 无复杂调度,每个设备独立运行
- ✅ 实时 WebSocket 通信,支持流式响应
- ✅ 自动设备发现和状态同步(每 3 秒刷新)
# 后端开发(自动重载)
uv run autoglm-gui --base-url http://localhost:8080/v1 --reload
# 前端开发服务器(热重载)
cd frontend && pnpm dev
### 构建和打包
```bash
# 仅构建前端
uv run python scripts/build.py
# 构建完整包
uv run python scripts/build.py --packApache License 2.0
AutoGLM-GUI 使用 MIT 许可证。但是,它打包了 ADB Keyboard APK (com.android.adbkeyboard),该组件使用 GPL-2.0 许可证。ADB Keyboard 组件作为独立工具使用,不影响 AutoGLM-GUI 本身的 MIT 许可。
详见:AutoGLM_GUI/resources/apks/ADBKeyBoard.LICENSE.txt
本项目基于 Open-AutoGLM 构建,感谢 zai-org 团队在 AutoGLM 上的卓越工作。


