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 请求人工接管

参考链接

相关推荐
爱吃rabbit的mq14 小时前
第09章:随机森林:集成学习的威力
算法·随机森林·集成学习
(❁´◡`❁)Jimmy(❁´◡`❁)15 小时前
Exgcd 学习笔记
笔记·学习·算法
YYuCChi15 小时前
代码随想录算法训练营第三十七天 | 52.携带研究材料(卡码网)、518.零钱兑换||、377.组合总和IV、57.爬楼梯(卡码网)
算法·动态规划
不能隔夜的咖喱15 小时前
牛客网刷题(2)
java·开发语言·算法
VT.馒头15 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
进击的小头16 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
范纹杉想快点毕业17 小时前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
咖丨喱17 小时前
IP校验和算法解析与实现
网络·tcp/ip·算法
罗湖老棍子17 小时前
括号配对(信息学奥赛一本通- P1572)
算法·动态规划·区间dp·字符串匹配·区间动态规划
fengfuyao98518 小时前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab