“豆包手机”普通手机实践教程 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> 解压之后文件: ![2f267c50-5950-46a1-a1f9-118babcbf6de.png](/uploads/20251217_112650_694222fa5df96.png) ## 环境准备 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中,如图所示 ![setting.png](/uploads/20251216_231304_69417700b9feb.png) #### 在电脑端使用标准 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,如文中内容素材有错误或者已经失效,请留言告知。
版权声明

本文作者:Galaxy

本文链接: https://lygalaxy.cn/blog.php?id=10

许可协议: CC BY-NC-ND 4.0

协议说明: 允许他人非商业性共享作品,必须注明原作者及来源,不得修改、衍生或用于商业目的

本站所有文章除特别声明外,均采用上述许可协议。转载请注明文章出处!

文章音乐

评论 0

登录 后发表评论

暂无评论,快来发表第一条评论吧!