“豆包手机”普通手机实践教程 Open-AutoGLM
Galaxy |
2025-12-16 16:00 |
325 次浏览
技术分享
笔记
分享
使用教程
豆包手机
Open-AutoGLM
## 🧭 文章总览
### 准备
- [🔗 操作步骤](#准备工作)
### 环境配置
- [🔗 环境准备](#环境准备)
- [🔗 部署准备工作](#部署准备工作)
### 部署步骤
- [🔗 注册API](#1-注册智谱-bigmodel-或者-modelscope魔搭社区)
- [🔗 安装依赖](#2-安装依赖)
- [🔗 配置ADB](#3-配置-adb)
- [🔗 安装ADB键盘](#4-安装-adb-keyboard用于文本输入)
- [🔗 运行程序](#5运行main_zppy)
### 问题解决
- [🔗 常见问题](#常见问题)
### 进阶功能
- [🔗 远程调试](#配置远程调试)
- [🔗 自行部署模型](#自行部署模型)
- [🔗 其他配置](#配置)
---
# **准备工作**
-----
##### ***文件下载***
1. **Python** [下载](https://www.python.org/ftp/python/3.14.0/python-3.14.0-amd64.exe)
2. **VS code** [下载](https://vscode.js.cn/Download)
3. **Open-AutoGLM** *项目主程序* [下载(Github)](https://github.com/zai-org/Open-AutoGLM)
4. **Adb工具** [下载](https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn)
5. **ADB Keyboard**[下载](https://github.com/senzhk/ADBKeyBoard/blob/master/ADBKeyboard.apk)
-----
<p style="color:red; background-color:orange; padding:5px;">
整合下载,避开国外网站(已整合,方便后续操作)
</p>
## 📦 下载方式
[Privacy]
<div align="center">
<a href="https://www.123865.com/s/W3hjVv-VIrLh?pwd=H9Rv#" style="text-decoration: none;">
<div style="display: inline-block; padding: 15px; margin: 10px; background: linear-gradient(135deg, #FF6B00, #FF8C00); border-radius: 10px; color: white; min-width: 150px;">
<div style="font-size: 24px;">📁</div>
<div style="font-weight: bold;">123云盘</div>
<div style="font-size: 12px; opacity: 0.9;">高速下载</div>
</div>
</a>
<a href="https://cloud.189.cn/web/share?code=RVJVFv2MZjEb" style="text-decoration: none;">
<div style="display: inline-block; padding: 15px; margin: 10px; background: linear-gradient(135deg, #0099E5, #00BFFF); border-radius: 10px; color: white; min-width: 150px;">
<div style="font-size: 24px;">✈️</div>
<div style="font-weight: bold;">天翼云盘</div>
<div style="font-size: 12px; opacity: 0.9;">(访问码:hf3a)</div>
</div>
</a>
</div>
[/Privacy]
-----
<video controls width="100%">
<source src="/uploads/videos/20251217_114914_6942283a7367a.mp4" type="video/mp4">
您的浏览器不支持视频播放
</video>
-----
# **操作开始**
<p style="color:red; padding:25px;">
本教程合并文件下载后分为Windows和Mac两个版本可以放心食用
</p>
解压之后文件:

## 环境准备
1. **安装python 和 VS code**
建议使用 Python 3.10 及以上版本。 教程提供版本为3.12.0版本可以放心*“食用”*
-----
2. **ADB (Android Debug Bridge)**
配置adb环境⭐⭐⭐ |【系统通过 ADB(Android Debug Bridge)来控制设备】
2. 配置环境变量
- MacOS 配置方法:在 `Terminal` 或者任何命令行工具里
```bash
# 假设解压后的目录为 ~/Downloads/platform-tools。如果不是请自行调整命令。
export PATH=${PATH}:~/Downloads/platform-tools
```
- Windows 配置方法:可参考 [第三方教程](https://blog.csdn.net/x2584179909/article/details/108319973) (第三方教程同时也由mac的教程)进行配置。
也可参照本视频:
<video controls width="100%">
<source src="/uploads/videos/20251216_175904_69412d6810911.mp4" type="video/mp4">
您的浏览器不支持视频播放
</video>
-----
3. Android 7.0+ 的设备或模拟器,并启用 `开发者模式` 和 `USB 调试`
1.开发者模式启用:通常启用方法是,找到 `设置-关于手机-版本号` 然后连续快速点击 10
次左右,直到弹出弹窗显示“开发者模式已启用”。不同手机会有些许差别,如果找不到,可以上网搜索一下教程。
2.USB 调试启用:启用开发者模式之后,会出现 `设置-开发者选项-USB 调试`,勾选启用
3.部分机型在设置开发者选项以后, 可能需要重启设备才能生效. 可以测试一下: 将手机用USB数据线连接到电脑后, `adb devices`
查看是否有设备信息, 如果没有说明连接失败.
也可参照本视频:(示例华为手机)
<video controls width="100%">
<source src="/uploads/videos/20251216_182632_694133d8043ea.mp4" type="video/mp4">
您的浏览器不支持视频播放
</video>
-----
## 部署准备工作
### 1. 注册智谱 BigModel 或者 ModelScope(魔搭社区)
**1. 智谱 BigModel**
- 文档: https://docs.bigmodel.cn/cn/api/introduction
- `--base-url`: `https://open.bigmodel.cn/api/paas/v4`
- `--model`: `autoglm-phone`
- `--apikey`: 在智谱平台申请你的 API Key
**2. ModelScope(魔搭社区)**
- 文档: https://modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B
- `--base-url`: `https://api-inference.modelscope.cn/v1`
- `--model`: `ZhipuAI/AutoGLM-Phone-9B`
- `--apikey`: 在 ModelScope 平台申请你的 API Key
具体注册视频:(智谱 BigModel)
<video controls width="100%">
<source src="/uploads/videos/20251216_190009_69413bb9a994c.mp4" type="video/mp4">
您的浏览器不支持视频播放
</video>
### 2. 安装依赖
-----
*以下的操作视频*
<video controls width="100%">
<source src="/uploads/videos/20251217_112055_69422197836f8.mp4" type="video/mp4">
您的浏览器不支持视频播放
</video>
-----
用VS code 打开Open-AutoGLM-main文件夹 新建终端输入以下内容:
1. **打开终端**:在 VS Code 中按 `` Ctrl+` ``(反引号键)或点击“终端”菜单 → “新建终端”
2. **创建虚拟环境**: (已经配备有虚拟环境了,可以直接跳过这一步)
```powershell
# Windows
python -m venv venv
# Linux/Mac
python3 -m venv venv
```
这会在当前项目目录下创建一个名为 `venv` 的虚拟环境文件夹
3. **激活虚拟环境**:
```powershell
# Windows (PowerShell)
.\venv\Scripts\Activate.ps1
# Windows (CMD)
venv\Scripts\activate.bat
# Linux/Mac
source venv/bin/activate
```
激活后,终端提示符前会出现 `(venv)` 标识
4. **安装依赖**: (加载虚拟环境后,可以跳过这一步)
```powershell
pip install -r requirements.txt
pip install -e .
```
### 3. 配置 ADB
确认 **USB数据线具有数据传输功能**, 而不是仅有充电功能
确保已安装 ADB 并使用 **USB数据线** 连接设备:
```bash
# 检查已连接的设备
adb devices
# 输出结果应显示你的设备,如:
# List of devices attached
# emulator-5554 device
```
### 4. 安装 ADB Keyboard(用于文本输入)
下载 [安装包](https://github.com/senzhk/ADBKeyBoard/blob/master/ADBKeyboard.apk) 并在对应的安卓设备中进行安装。(下载整合包无需下载)
使用adb install ADBKeyboard.apk
注意,安装完成后还需要到 `设置-输入法` 或者 `设置-键盘列表` 中启用 `ADB Keyboard` 才能生效(或使用命令`adb shell ime enable com.android.adbkeyboard/.AdbIME`[How-to-use](https://github.com/senzhk/ADBKeyBoard/blob/master/README.md#how-to-use))
### 5.运行main_ZP.py
选择上方运行 以调试模式运行
等待检测完毕 填入申请的Apikey就可以愉快的使用了!!!😀
**使用原生的main.py**
```bash
# 使用智谱 BigModel
python main.py --base-url https://open.bigmodel.cn/api/paas/v4 --model "autoglm-phone" --apikey "your-bigmodel-api-key" "打开美团搜索附近的火锅店"
# 使用 ModelScope
python main.py --base-url https://api-inference.modelscope.cn/v1 --model "ZhipuAI/AutoGLM-Phone-9B" --apikey "your-modelscope-api-key" "打开美团搜索附近的火锅店"
```
-----
# 常见问题
我们列举了一些常见的问题,以及对应的解决方案:
### 设备未找到
尝试通过重启 ADB 服务来解决:
```bash
adb kill-server
adb start-server
adb devices
```
如果仍然无法识别,请检查:
1. USB 调试是否已开启
2. 数据线是否支持数据传输(部分数据线仅支持充电)
3. 手机上弹出的授权框是否已点击「允许」
4. 尝试更换 USB 接口或数据线
### 能打开应用,但无法点击
部分机型需要同时开启两个调试选项才能正常使用:
- **USB 调试**
- **USB 调试(安全设置)**
请在 `设置 → 开发者选项` 中检查这两个选项是否都已启用。
### 文本输入不工作
1. 确保设备已安装 ADB Keyboard
2. 在设置 > 系统 > 语言和输入法 > 虚拟键盘 中启用
3. Agent 会在需要输入时自动切换到 ADB Keyboard
### 截图失败(黑屏)
这通常意味着应用正在显示敏感页面(支付、密码、银行类应用)。Agent 会自动检测并请求人工接管。
### windows 编码异常问题
报错信息形如 `UnicodeEncodeError gbk code`
解决办法: 在运行代码的命令前面加上环境变量: `PYTHONIOENCODING=utf-8`
### 交互模式非TTY环境无法使用
报错形如: `EOF when reading a line`
解决办法: 使用非交互模式直接指定任务, 或者切换到 TTY 模式的终端应用.
-----
# 其他
<p style="color:red; background-color:yellow; padding:25px;">
扩展(无线调试 和 部署本地模型)
</p>
# 配置远程调试
###### 在手机端开启无线调试
确保手机和电脑在同一个WiFi中,如图所示

#### 在电脑端使用标准 ADB 命令
```bash
# 通过 WiFi 连接, 改成手机显示的 IP 地址和端口
adb connect 192.168.1.100:5555
# 验证连接
adb devices
# 应显示:192.168.1.100:5555 device
```
### 设备管理命令
```bash
# 列出所有已连接设备
adb devices
# 连接远程设备
adb connect 192.168.1.100:5555
# 断开指定设备
adb disconnect 192.168.1.100:5555
# 指定设备执行任务
python main.py --device-id 192.168.1.100:5555 --base-url http://localhost:8000/v1 --model "autoglm-phone-9b" "打开抖音刷视频"
```
### Python API 远程连接
```python
from phone_agent.adb import ADBConnection, list_devices
# 创建连接管理器
conn = ADBConnection()
# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")
# 列出已连接设备
devices = list_devices()
for device in devices:
print(f"{device.device_id} - {device.connection_type.value}")
# 在 USB 设备上启用 TCP/IP
success, message = conn.enable_tcpip(5555)
ip = conn.get_device_ip()
print(f"设备 IP: {ip}")
# 断开连接
conn.disconnect("192.168.1.100:5555")
```
### 远程连接问题排查
**连接被拒绝:**
- 确保设备和电脑在同一网络
- 检查防火墙是否阻止 5555 端口
- 确认已启用 TCP/IP 模式:`adb tcpip 5555`
**连接断开:**
- WiFi 可能断开了,使用 `--connect` 重新连接
- 部分设备重启后会禁用 TCP/IP,需要通过 USB 重新启用
**多设备:**
- 使用 `--device-id` 指定要使用的设备
- 或使用 `--list-devices` 查看所有已连接设备
# 自行部署模型
如果你希望在本地或自己的服务器上部署模型:
1. 按照 `requirements.txt` 中 `For Model Deployment` 章节自行安装推理引擎框架。
对于SGLang, 除了使用pip安装,你也可以使用官方docker:
>
> ```shell
> docker pull lmsysorg/sglang:v0.5.6.post1
> ```
>
> 进入容器,执行
>
> ```
> pip install nvidia-cudnn-cu12==9.16.0.29
> ```
对于 vLLM,除了使用pip 安装,你也可以使用官方docker:
>
> ```shell
> docker pull vllm/vllm-openai:v0.12.0
> ```
>
> 进入容器,执行
>
> ```
> pip install -U transformers --pre
> ```
**注意**: 上述步骤出现的关于 transformers 的依赖冲突可以忽略。
1. 在对应容器或者实体机中(非容器安装)下载模型,通过 SGlang / vLLM 启动,得到 OpenAI 格式服务。这里提供一个 vLLM部署方案,请严格遵循我们提供的启动参数:
- vLLM:
```shell
python3 -m vllm.entrypoints.openai.api_server \
--served-model-name autoglm-phone-9b \
--allowed-local-media-path / \
--mm-encoder-tp-mode data \
--mm_processor_cache_type shm \
--mm_processor_kwargs "{\"max_pixels\":5000000}" \
--max-model-len 25480 \
--chat-template-content-format string \
--limit-mm-per-prompt "{\"image\":10}" \
--model zai-org/AutoGLM-Phone-9B \
--port 8000
```
- SGLang:
```shell
python3 -m sglang.launch_server --model-path zai-org/AutoGLM-Phone-9B \
--served-model-name autoglm-phone-9b \
--context-length 25480 \
--mm-enable-dp-encoder \
--mm-process-config '{"image":{"max_pixels":5000000}}' \
--port 8000
```
- 该模型结构与 `GLM-4.1V-9B-Thinking` 相同, 关于模型部署的详细内容,你也以查看 [GLM-V](https://github.com/zai-org/GLM-V)
获取模型部署和使用指南。
- 运行成功后,将可以通过 `http://localhost:8000/v1` 访问模型服务。 如果您在远程服务器部署模型, 使用该服务器的IP访问模型.
### 4. 检查模型部署
模型服务启动后,可以使用检查脚本验证部署是否成功:
```bash
python scripts/check_deployment_cn.py --base-url http://你的IP:你的端口/v1 --model 模型名称
```
脚本将发送测试请求并展示模型的推理结果,你可以根据输出判断模型部署是否正常工作。
基于给定的任务, 预期输出如下。**如果思维链长度很短, 或者出现了乱码, 很可能是模型部署失败**, 请仔细检查文档要求的配置和依赖。
```
<think>用户想要比较这个洗发水在京东和淘宝上的价格,然后选择最便宜的平台下单。当前在小红书app上,显示的是一个关于LUMMI MOOD洗发水的帖子。
我需要:
1. 先启动京东app,搜索这个洗发水
2. 查看京东的价格
3. 再启动淘宝app,搜索这个洗发水
4. 查看淘宝的价格
5. 比较价格后,选择最便宜的京东或淘宝下单
首先,我需要从当前的小红书界面退出,然后启动京东app。</think>
<answer>do(action="Launch", app="京东")
```
**参数说明:**
- `--base-url`: 模型服务地址(根据实际部署地址修改)
- `--model`: 模型名称
- `--messages-file`: 可选,指定自定义测试消息文件(默认使用 `scripts/sample_messages.json`)
## 使用 AutoGLM
### 命令行
根据你部署的模型, 设置 `--base-url` 和 `--model` 参数. 例如:
```bash
# 交互模式
python main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"
# 指定模型端点
python main.py --base-url http://localhost:8000/v1 "打开美团搜索附近的火锅店"
# 使用 API Key 进行认证
python main.py --apikey sk-xxxxx
# 使用英文 system prompt
python main.py --lang en --base-url http://localhost:8000/v1 "Open Chrome browser"
# 列出支持的应用
python main.py --list-apps
```
### Python API
```python
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
# Configure model
model_config = ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b",
)
# 创建 Agent
agent = PhoneAgent(model_config=model_config)
# 执行任务
result = agent.run("打开淘宝搜索无线耳机")
print(result)
```
## 配置
### 自定义SYSTEM PROMPT
系统提供中英文两套 prompt,通过 `--lang` 参数切换:
- `--lang cn` - 中文 prompt(默认),配置文件:`phone_agent/config/prompts_zh.py`
- `--lang en` - 英文 prompt,配置文件:`phone_agent/config/prompts_en.py`
可以直接修改对应的配置文件来增强模型在特定领域的能力,或通过注入 app 名称禁用某些 app。
### 环境变量
| 变量 | 描述 | 默认值 |
|-------------------------|------------------|----------------------------|
| `PHONE_AGENT_BASE_URL` | 模型 API 地址 | `http://localhost:8000/v1` |
| `PHONE_AGENT_MODEL` | 模型名称 | `autoglm-phone-9b` |
| `PHONE_AGENT_API_KEY` | 模型认证 API Key | `EMPTY` |
| `PHONE_AGENT_MAX_STEPS` | 每个任务最大步数 | `100` |
| `PHONE_AGENT_DEVICE_ID` | ADB 设备 ID | (自动检测) |
| `PHONE_AGENT_LANG` | 语言 (`cn` 或 `en`) | `cn` |
### 模型配置
```python
from phone_agent.model import ModelConfig
config = ModelConfig(
base_url="http://localhost:8000/v1",
api_key="EMPTY", # API 密钥(如需要)
model_name="autoglm-phone-9b", # 模型名称
max_tokens=3000, # 最大输出 token 数
temperature=0.1, # 采样温度
frequency_penalty=0.2, # 频率惩罚
)
```
### Agent 配置
```python
from phone_agent.agent import AgentConfig
config = AgentConfig(
max_steps=100, # 每个任务最大步数
device_id=None, # ADB 设备 ID(None 为自动检测)
lang="cn", # 语言选择:cn(中文)或 en(英文)
verbose=True, # 打印调试信息(包括思考过程和执行动作)
)
```
### Verbose 模式输出
当 `verbose=True` 时,Agent 会在每一步输出详细信息:
```
==================================================
💭 思考过程:
--------------------------------------------------
当前在系统桌面,需要先启动小红书应用
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Launch",
"app": "小红书"
}
==================================================
... (执行动作后继续下一步)
==================================================
💭 思考过程:
--------------------------------------------------
小红书已打开,现在需要点击搜索框
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [500, 100]
}
==================================================
🎉 ================================================
✅ 任务完成: 已成功搜索美食攻略
==================================================
```
这样可以清楚地看到 AI 的推理过程和每一步的具体操作。
## 支持的应用
Phone Agent 支持 50+ 款主流中文应用:
| 分类 | 应用 |
|------|-----------------|
| 社交通讯 | 微信、QQ、微博 |
| 电商购物 | 淘宝、京东、拼多多 |
| 美食外卖 | 美团、饿了么、肯德基 |
| 出行旅游 | 携程、12306、滴滴出行 |
| 视频娱乐 | bilibili、抖音、爱奇艺 |
| 音乐音频 | 网易云音乐、QQ音乐、喜马拉雅 |
| 生活服务 | 大众点评、高德地图、百度地图 |
| 内容社区 | 小红书、知乎、豆瓣 |
运行 `python main.py --list-apps` 查看完整列表。
## 可用操作
Agent 可以执行以下操作:
| 操作 | 描述 |
|--------------|-----------------|
| `Launch` | 启动应用 |
| `Tap` | 点击指定坐标 |
| `Type` | 输入文本 |
| `Swipe` | 滑动屏幕 |
| `Back` | 返回上一页 |
| `Home` | 返回桌面 |
| `Long Press` | 长按 |
| `Double Tap` | 双击 |
| `Wait` | 等待页面加载 |
| `Take_over` | 请求人工接管(登录/验证码等) |
## 自定义回调
处理敏感操作确认和人工接管:
```python
def my_confirmation(message: str) -> bool:
"""敏感操作确认回调"""
return input(f"确认执行 {message}?(y/n): ").lower() == "y"
def my_takeover(message: str) -> None:
"""人工接管回调"""
print(f"请手动完成: {message}")
input("完成后按回车继续...")
agent = PhoneAgent(
confirmation_callback=my_confirmation,
takeover_callback=my_takeover,
)
```
提示:本文最后更新时间为 2026-01-14 11:18,如文中内容素材有错误或者已经失效,请留言告知。
评论 0
暂无评论,快来发表第一条评论吧!