Open-AutoGLM Windows 安装部署教程

Open-AutoGLM Windows 安装部署教程

本教程记录在 Windows 系统上部署 Open-AutoGLM (Phone Agent) 的完整流程,包含常见问题的解决方案。

由于电脑显存原因,使用的Q8gguf版本,所以任务完成度比较低,可以准确做到打开APP并滑动,无法打字输入,AI推测由于量化版本无法准确识别屏幕与通信延时过高。

环境要求

  • 操作系统: Windows 10/11
  • Python: 3.10+
  • GPU: NVIDIA 显卡(推荐 12GB+ 显存)
  • Android 设备: Android 7.0+,已启用 USB 调试

一、克隆项目

powershell 复制代码
git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM

⚠️ 网络问题 : 如果克隆失败,可尝试添加 --depth 1 参数进行浅克隆:

powershell 复制代码
git clone https://github.com/zai-org/Open-AutoGLM.git --depth 1

二、安装 Python 依赖

powershell 复制代码
pip install -r requirements.txt
pip install -e .

三、安装 ADB 工具

1. 下载 ADB

Android 官方 下载 Platform Tools,解压到自定义目录(如 C:\platform-tools)。

2. 配置环境变量

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「系统变量」中找到 Path,点击「编辑」
  3. 添加 ADB 所在目录(如 C:\platform-tools
  4. 重启终端使配置生效

3. 验证安装

powershell 复制代码
adb version
# 应显示: Android Debug Bridge version 1.0.41

四、模型部署

⚠️ 重要:vLLM 不支持 Windows

官方推荐的 vLLM 部署方式不支持 Windows (依赖 uvloop 模块),会报错:

vbnet 复制代码
ModuleNotFoundError: No module named 'uvloop'

解决方案:使用 Ollama + GGUF 量化模型

1. 安装 Ollama

Ollama 官网 下载 Windows 版本并安装。

2. 下载 GGUF 量化模型

从 HuggingFace 下载量化版本:

  • Q8_0(约 10GB,精度高):
  • Q4_K_M(约 5.5GB,显存友好): 适合 8GB 显存显卡

⚠️ 网络问题: 如果 HuggingFace 下载失败,可使用镜像站:

arduino 复制代码
https://hf-mirror.com/mradermacher/AutoGLM-Phone-9B-GGUF

将下载的 .gguf 文件放到项目的 models 目录下。

3. 创建 Ollama Modelfile

models 目录下创建 Modelfile 文件:

sql 复制代码
FROM ./AutoGLM-Phone-9B.Q8_0.gguf

PARAMETER temperature 0.1
PARAMETER num_ctx 4096
PARAMETER num_gpu 99
4. 导入模型到 Ollama
powershell 复制代码
cd models
ollama create autoglm-phone-9b -f Modelfile
5. 验证模型
powershell 复制代码
ollama list
# 应显示: autoglm-phone-9b:latest

五、连接 Android 设备

1. 启用开发者模式

在手机上:设置关于手机 → 连续点击「版本号」7 次

2. 启用 USB 调试

设置开发者选项 → 启用以下选项:

  • USB 调试
  • USB 调试(安全设置)(部分机型需要)

⚠️ 重要: 部分机型需要同时开启「USB 调试」和「USB 调试(安全设置)」才能正常点击操作。

3. 连接设备

用 USB 数据线连接手机和电脑(确保数据线支持数据传输,不是仅充电线)。

手机弹出授权提示时,点击「允许」。

4. 验证连接

powershell 复制代码
adb devices
# 应显示:
# List of devices attached
# XXXXXX    device

⚠️ 设备未识别 : 如果显示 unauthorized 或无设备,尝试:

powershell 复制代码
adb kill-server
adb start-server
adb devices

5. 安装 ADB Keyboard

ADB Keyboard 用于文本输入,必须安装:

powershell 复制代码
# 下载 APK
Invoke-WebRequest -Uri "https://github.com/senzhk/ADBKeyBoard/raw/master/ADBKeyboard.apk" -OutFile "ADBKeyboard.apk"

# 安装到手机
adb install ADBKeyboard.apk

安装后,在手机上启用: 设置系统语言和输入法虚拟键盘(或「键盘管理」)→ 启用 ADB Keyboard

六、运行 Phone Agent

启动命令

powershell 复制代码
# 设置编码(解决中文乱码)
$env:PYTHONIOENCODING="utf-8"

# 交互模式
python main.py --base-url http://localhost:11434/v1 --model autoglm-phone-9b

# 直接执行任务
python main.py --base-url http://localhost:11434/v1 --model autoglm-phone-9b "打开小红书搜索美食"

系统检查

启动时会自动检查:

  1. ✅ ADB 安装
  2. ✅ 设备连接
  3. ✅ ADB Keyboard
  4. ✅ 模型 API

全部通过后进入交互模式,输入任务即可。

常见问题

1. vLLM 报错 No module named 'uvloop'

原因 : vLLM 不支持 Windows
解决: 使用 Ollama + GGUF 量化模型(见第四节)

2. 中文乱码 UnicodeEncodeError gbk

解决: 运行前设置环境变量

powershell 复制代码
$env:PYTHONIOENCODING="utf-8"

3. ADB Keyboard 检查失败

解决:

  1. 确认 APK 已安装:adb shell pm list packages | findstr adbkeyboard
  2. 在手机设置中启用 ADB Keyboard 输入法

4. 能打开应用但无法点击

原因 : 部分机型需要额外权限
解决: 在「开发者选项」中同时启用:

  • USB 调试
  • USB 调试(安全设置)

5. 截图黑屏

原因 : 应用显示敏感页面(支付、密码等)
解决: Agent 会自动检测并请求人工接管

6. 显存不足

解决: 使用更小的量化版本:

  • Q4_K_M(约 5.5GB)
  • Q5_K_M(约 6.5GB)

7. HuggingFace 下载失败

解决: 使用国内镜像站

arduino 复制代码
https://hf-mirror.com/mradermacher/AutoGLM-Phone-9B-GGUF

环境变量配置(可选)

可以通过环境变量简化命令:

powershell 复制代码
$env:PHONE_AGENT_BASE_URL = "http://localhost:11434/v1"
$env:PHONE_AGENT_MODEL = "autoglm-phone-9b"
$env:PYTHONIOENCODING = "utf-8"

# 之后直接运行
python main.py

支持的操作

操作 描述
Launch 启动应用
Tap 点击指定坐标
Type 输入文本
Swipe 滑动屏幕
Back 返回上一页
Home 返回桌面
Long Press 长按
Double Tap 双击
Wait 等待页面加载
Take_over 请求人工接管

参考链接

相关推荐
Stardep5 小时前
算法入门19——二分查找算法——X的平方根
算法·leetcode·二分查找算法
We་ct5 小时前
LeetCode 135. 分发糖果:双向约束下的最小糖果分配方案
前端·算法·leetcode·typescript
宇钶宇夕5 小时前
CoDeSys入门实战一起学习(十三):函数(FUN)深度解析:自定义、属性与实操案例
运维·算法·自动化·软件工程
l1t5 小时前
对clickhouse给出的二分法求解Advent of Code 2025第10题 电子工厂 第二部分的算法理解
数据库·算法·clickhouse
老蒋每日coding5 小时前
AI Agent 设计模式系列(十二)—— 异常处理和恢复模式
人工智能·设计模式
Tisfy5 小时前
LeetCode 3315.构造最小位运算数组 II:位运算
算法·leetcode·题解·位运算
亮子AI5 小时前
【Github】如何取消 issue 自动加入 project 的功能?
github·issue
YuTaoShao5 小时前
【LeetCode 每日一题】1292. 元素和小于等于阈值的正方形的最大边长
算法·leetcode·职场和发展
Remember_9935 小时前
【数据结构】深入理解Map和Set:从搜索树到哈希表的完整解析
java·开发语言·数据结构·算法·leetcode·哈希算法·散列表
浅念-5 小时前
C++第一课
开发语言·c++·经验分享·笔记·学习·算法