Skip to main content

Web GUI for AutoGLM Phone Agent - AI-powered Android automation

Project description

AutoGLM-GUI

AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Android 设备变得简单

Python License

✨ 特性

  • 多设备并发控制 - 同时管理和控制多个 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>
  • 或自建服务:参考上游项目的部署文档用 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 设备:

  1. 设备列表 - 左侧边栏自动显示所有已连接的 ADB 设备
  2. 设备选择 - 点击设备卡片切换到对应的控制面板
  3. 状态指示 - 清晰显示每个设备的在线状态和初始化状态
  4. 状态隔离 - 每个设备有独立的对话历史、配置和视频流

设备状态说明

  • 🟢 绿点:设备在线
  • ⚪ 灰点:设备离线
  • ✓ 标记:设备已初始化

AI 自动化模式

  1. 连接设备 - 启用 USB 调试并通过 ADB 连接设备(支持 USB 和 WiFi)
  2. 选择设备 - 在左侧边栏选择要控制的设备
  3. 初始化 - 点击"初始化设备"按钮配置 Agent
  4. 对话 - 描述你想要做什么(例如:"去美团点一杯霸王茶姬的伯牙绝弦")
  5. 观察 - Agent 会逐步执行操作,每一步的思考过程和动作都会实时显示

手动控制模式

除了 AI 自动化,你也可以直接在实时画面上操控手机:

  1. 实时画面 - 设备面板右侧显示手机屏幕的实时视频流(基于 scrcpy)
  2. 点击操作 - 直接点击画面中的任意位置,操作会立即发送到手机
  3. 滑动手势 - 按住鼠标拖动实现滑动操作(支持滚轮滚动)
  4. 视觉反馈 - 每次操作都会显示涟漪动画和成功/失败提示
  5. 精准转换 - 自动处理屏幕缩放和坐标转换,确保操作位置准确
  6. 显示模式 - 支持自动、视频流、截图三种显示模式切换

技术细节

  • 使用 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 --pack

📝 开源协议

Apache License 2.0

🙏 致谢

本项目基于 Open-AutoGLM 构建,感谢 zai-org 团队在 AutoGLM 上的卓越工作。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autoglm_gui-0.4.3.tar.gz (248.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autoglm_gui-0.4.3-py3-none-any.whl (262.6 kB view details)

Uploaded Python 3

File details

Details for the file autoglm_gui-0.4.3.tar.gz.

File metadata

  • Download URL: autoglm_gui-0.4.3.tar.gz
  • Upload date:
  • Size: 248.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autoglm_gui-0.4.3.tar.gz
Algorithm Hash digest
SHA256 c0c5550dfc1d2b36fb04a60c531e9816a4c3eead49131cfb6f21a137b7f2149b
MD5 922d3528d0e8a363378f426e1ef6dd5a
BLAKE2b-256 6c8ca934cb72751efda0ad89def5e32a0af74a3719e675ae46ef70c3e22c0268

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoglm_gui-0.4.3.tar.gz:

Publisher: release.yml on suyiiyii/AutoGLM-GUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file autoglm_gui-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: autoglm_gui-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 262.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autoglm_gui-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d2785dabb7571db66afe0e24a3fb597217077f7df22d639b1a45b0c14def7246
MD5 9cbe18d45ee1b5d8fcc82774bfe818d2
BLAKE2b-256 97530d62b025b026bbffb4d23b64df943f60bafe5adb4f72ecf9f5b812f177d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for autoglm_gui-0.4.3-py3-none-any.whl:

Publisher: release.yml on suyiiyii/AutoGLM-GUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page