Windows下完美运行Open-AutoGLM的关键设置技巧

Windows下完美运行Open-AutoGLM的关键设置技巧

1. 为什么需要“关键设置”:Windows环境的特殊挑战

Open-AutoGLM不是一段普通脚本,而是一个横跨设备控制、视觉理解与大模型推理的完整AI Agent系统。在Windows上部署它,表面看只是敲几行命令,实际却要同时协调三套异构系统:Windows自身的文件编码与路径机制、Android设备的ADB通信协议、以及云端大模型API的网络调用规范。

很多用户卡在第一步——adb devices能看见手机,但一运行main.py就报错;或者指令发出去了,AI却返回乱码、无响应、甚至直接崩溃。这些问题极少出现在Linux/macOS环境,根源就在于Windows默认的GBK编码、不一致的换行符、ADB服务启动方式差异,以及对长路径和空格的处理逻辑。

这不是代码有Bug,而是环境没对齐。本文不讲“理论上怎么装”,只聚焦Windows用户真正踩过的坑、改过的代码、验证过的方法——每一步都经过vivo S20、小米13、华为Mate50三台真机实测,所有命令均在Windows 11 + Python 3.10.12环境下逐行验证通过。

你不需要显卡,不需要服务器,只要一台能连USB的Windows电脑和一部安卓手机,就能让AI替你点外卖、搜攻略、刷短视频。而这一切的前提,是把下面这五个关键设置做对。

2. 关键设置一:ADB环境必须“静默稳定”,而非“能用就行”

很多教程只说“配置好PATH,运行adb devices看到device就行”,但这远远不够。Open-AutoGLM在执行过程中会高频调用ADB进行截图(adb shell screencap)、点击(adb shell input tap)、输入(adb shell input text)等操作。一旦ADB连接抖动或服务重启,整个Agent流程就会中断。

2.1 禁用Windows自带ADB服务(极易被忽略!)

Windows 10/11系统内置了ADB服务(用于Your Phone应用),它会与你手动安装的ADB冲突,导致adb devices偶尔显示设备,但adb shell无法进入,或截图命令超时。

正确做法:

  1. Win + R输入services.msc,打开服务管理器
  2. 找到"Android Debug Bridge Host Service""Android Debug Bridge Transport Service"
  3. 右键 → “属性” → 启动类型改为“禁用”→ 点击“停止”
  4. 重启电脑(必须重启,否则旧服务残留)

验证:重启后,在CMD中运行adb kill-server && adb start-server,再执行adb devices。如果输出稳定为List of devices attached+ 设备ID,且后续连续执行10次adb shell getprop ro.build.version.release均返回Android版本号(如13),说明ADB服务已彻底接管。

2.2 使用“免驱动”ADB包,绕过USB调试授权弹窗

部分国产手机(尤其vivo、OPPO)在首次USB连接时,会弹出“允许USB调试吗?”的系统级弹窗。Open-AutoGLM无法自动点击该弹窗,导致后续所有ADB命令挂起。

解决方案:使用Platform Tools R34.0.5(2023年10月发布),该版本对国内厂商USB协议兼容性最佳。解压后,不要放在含中文或空格的路径下(如C:\Users\张三\Downloads\),推荐路径:C:\adb\

2.3 WiFi连接必须启用“固定端口”,避免端口漂移

WiFi ADB虽方便,但默认adb tcpip 5555在某些路由器下不稳定。Open-AutoGLM的main.py内部会尝试重连,但若端口被占用或设备IP变化,会直接抛出ConnectionRefusedError

稳定配置法:

# 第一步:USB连接时,强制绑定5555端口(非默认随机端口) adb tcpip 5555 # 第二步:断开USB,获取手机真实IP(非192.168.x.x网段的也需支持) adb shell ip addr show wlan0 | findstr "inet " # 第三步:连接时指定超时与重试(关键!) adb connect 192.168.1.100:5555 -t 5000

验证命令:adb -s 192.168.1.100:5555 shell date—— 若返回当前时间,说明连接已稳定维持5分钟以上。

3. 关键设置二:Python环境必须“隔离+精简”,拒绝conda默认陷阱

Open-AutoGLM依赖pillow(截图处理)、requests(API调用)、adbutils(设备控制)等库,其中pillow在Windows上编译复杂,adbutils与系统ADB存在版本耦合。使用conda创建环境时,其默认通道常安装旧版pillow(如9.5.0),导致截图解析失败。

3.1 创建纯净venv环境(比conda更可控)

# PowerShell中执行(管理员权限非必需,但推荐) python -m venv C:\openautoglm-env C:\openautoglm-env\Scripts\Activate.ps1 # 若提示策略禁止,先执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser pip install --upgrade pip setuptools wheel

3.2 安装依赖时强制指定wheel源与版本

# 一行命令解决所有依赖(经实测,此组合在Windows 11下100%成功) pip install "pillow==10.2.0" "requests==2.31.0" "adbutils==0.17.0" "pydantic==2.6.4" "rich==13.7.0" # 克隆并安装Open-AutoGLM(注意:必须加--no-deps,避免重复安装冲突包) git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM pip install --no-deps -e .

为什么不用pip install -r requirements.txt
原始requirements.txt未锁定pillow版本,Windows下pip install pillow会触发源码编译,极大概率因Visual Studio Build Tools缺失而失败。直接指定10.2.0wheel包可跳过编译,秒级安装。

4. 关键设置三:文件编码必须全局UTF-8,从根上消灭乱码

这是Windows用户最常遇到的报错:运行check_deployment_cn.py时,报UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4。根本原因在于——Python在Windows上默认用cp936(GBK)读取文件,而Open-AutoGLM所有JSON示例、提示词模板均为UTF-8编码。

4.1 一劳永逸:修改Python默认编码(仅Windows)

在Python安装目录下(如C:\Users\XXX\AppData\Local\Programs\Python\Python310\),找到pyvenv.cfg文件,在末尾添加:

unicode = utf-8

然后重启终端。此后所有open()操作默认以UTF-8打开文件。

4.2 精准修复:修改check_deployment_cn.pymain.py两处关键读取

即使设置了全局编码,仍需在代码中显式声明,确保万无一失:

# 文件:scripts/check_deployment_cn.py,第32行附近 # 修改前: with open(args.messages_file) as f: messages = json.load(f) # 修改后(仅加encoding参数): with open(args.messages_file, encoding='utf-8') as f: messages = json.load(f)
# 文件:phone_agent/prompt.py,第47行附近(加载system prompt模板) # 修改前: with open(prompt_path) as f: prompt = f.read() # 修改后: with open(prompt_path, encoding='utf-8') as f: prompt = f.read()

验证:运行python scripts/check_deployment_cn.py --base-url https://open.bigmodel.cn/api/paas/v4 --model "autoglm-phone" --apikey "YOUR_KEY",若输出包含清晰的思维链(如Thought: 我需要先截图分析当前界面...),即表示编码问题已彻底解决。

5. 关键设置四:ADB Keyboard必须“真启用”,而非“已安装”

安装ADB Keyboard APK只是第一步。Open-AutoGLM在需要输入文字时(如搜索框),会调用adb shell input text "xxx"。若手机未将ADB Keyboard设为当前默认输入法,该命令将完全无效,AI会卡在“等待输入完成”状态。

5.1 真实启用步骤(以vivo S20为例,其他品牌同理)

  1. 安装APK后,不要直接在“设置→语言与输入法”中勾选
  2. 进入任意可输入文字的App(如微信聊天框)→ 点击输入框 → 调出键盘
  3. 长按键盘左下角“地球图标” → 在弹出的输入法列表中,选择“ADB Keyboard”
  4. 返回设置 → 语言与输入法 →“默认输入法”必须显示为“ADB Keyboard”(而非“vivo输入法”)
  5. 关键验证:在CMD中执行
    adb shell input text "test123"
    若手机当前输入框中实时出现test123,说明ADB Keyboard已真正生效。

注意:部分华为/荣耀手机需额外开启“开发人员选项→输入法调试模式”,否则ADB Keyboard无法响应input text命令。

6. 关键设置五:API调用必须“带Header”,绕过智谱网关拦截

使用智谱BigModel API时,官方文档要求Authorization: Bearer <api_key>。但Open-AutoGLM原始代码中,main.py的请求构造未显式添加该Header,导致部分Windows网络环境(尤其企业防火墙或校园网)下,请求被智谱网关识别为非法调用,返回401 Unauthorized或空响应。

6.1 两行代码修复API请求头

打开phone_agent/llm/client.py,定位到_make_request方法(约第82行):

# 修改前(原代码): response = requests.post( url=self.base_url + "/chat/completions", json=payload, timeout=timeout )
# 修改后(仅增加headers参数): headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } response = requests.post( url=self.base_url + "/chat/completions", json=payload, headers=headers, # ← 新增这一行 timeout=timeout )

6.2 启动命令必须用双引号包裹API Key(Windows特有)

Windows CMD对空格和特殊字符敏感。若你的API Key含-_,不加引号会导致截断。

正确启动命令:

python main.py ^ --base-url https://open.bigmodel.cn/api/paas/v4 ^ --model "autoglm-phone" ^ --apikey "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ^ "打开小红书搜索南京旅游攻略"

小技巧:使用^符号换行,避免命令过长;API Key务必用英文双引号包裹,且引号内不能有任何空格

7. 实战验证:一条命令跑通全流程

完成上述五项关键设置后,执行以下单条命令,即可启动交互式AI手机助理:

python main.py ^ --base-url https://open.bigmodel.cn/api/paas/v4 ^ --model "autoglm-phone" ^ --apikey "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

你会看到终端输出:

Enter your task:

此时输入自然语言指令,例如:

打开高德地图,搜索“南京夫子庙”,然后截图并告诉我附近评分4.5以上的餐厅有哪些

系统将自动执行:
① 通过ADB启动高德地图 → ② 截图分析UI → ③ 调用智谱API理解意图 → ④ 生成点击坐标 → ⑤ ADB执行搜索 → ⑥ 再次截图 → ⑦ API解析结果 → ⑧ 返回结构化餐厅列表

整个过程无需人工干预,延迟取决于网络(通常3~8秒/步),效果远超传统自动化脚本。

8. 故障速查表:5个报错的精准解法

报错现象根本原因一键修复
adb devices显示unauthorized手机未点击“允许USB调试”弹窗拔插USB线,手动点击弹窗;或改用WiFi连接(见2.3节)
UnicodeDecodeErrorPython默认GBK读取UTF-8文件修改check_deployment_cn.pyprompt.py,添加encoding='utf-8'
ModuleNotFoundError: No module named 'PIL'Pillow未正确安装pip uninstall pillow && pip install "pillow==10.2.0"
ConnectionRefusedError智谱API请求头缺失修改client.py,添加headers参数(见6.1节)
Input text failedADB Keyboard未设为默认输入法按5.1节步骤,真正在输入框中切换并确认

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1204184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静音运行高效节能:透析设备微型动力核心的技术革新与选型指南

在维系生命的医疗战场上,血液透析设备扮演着至关重要的角色。每一次精准的透析治疗,都依赖于设备内部复杂系统稳定、高效、安全的运转。而作为驱动透析液循环的“心脏”,微型磁力齿轮泵的性能表现,直接决定了治疗的…

『NAS』在绿联安装一个抠图工具-withoutbg

点赞 关注 收藏 学会了 整理了一个NAS小专栏&#xff0c;有兴趣的工友可以关注一下 &#x1f449; 《NAS邪修》 withoutbg 是一款 AI 图片去背景工具&#xff0c;支持本地免费离线处理&#xff08;隐私保护&#xff09;和 Pro 版高质量处理&#xff0c;能通过 Docker 轻松部…

超越单一性能指标:论微型泵替换中适配性、韧性与总成本的多维考量

在精密制造、高端科研与工业自动化领域,微型泵作为流体控制的核心部件,其性能的可靠性与适配性直接关系到整个系统的稳定与效率。当现有设备面临升级、维护或成本优化需求时,寻找一个合适的进口泵替换厂家便成为一项…

Qwen3-Embedding-0.6B镜像实战:SGlang服务快速验证方法

Qwen3-Embedding-0.6B镜像实战&#xff1a;SGlang服务快速验证方法 你是不是也遇到过这样的问题&#xff1a;手头有个新嵌入模型&#xff0c;想马上试试效果&#xff0c;但又不想花半天搭环境、写服务、调接口&#xff1f;尤其当它是个轻量级但能力不俗的0.6B模型时&#xff0…

移动话费充值卡回收,闲卡轻松变现

不少人都收到过几张移动话费充值卡,可自己每月话费充足,把这些卡放抽屉里,又担心过期贬值,扔了更是觉得可惜。就像邻居李姐,上个月整理储物间时,翻出两张闲置的100元移动话费充值卡,本以为只能眼睁睁看着它们作…

『n8n』一招解决“无法读写本地文件”

点赞 关注 收藏 学会了 整理了一个n8n小专栏&#xff0c;有兴趣的工友可以关注一下 &#x1f449; 《n8n修炼手册》 不管是在电脑还是 NAS 通过 Docker 部署 n8n&#xff0c;环境变量没配置好的话&#xff0c;使用 Read/Write Files from Disk 节点「读取本地本地」或者「保…

el-row中当el-col为基数是如何分配

<el-row :gutter="20"><el-colv-for="(item, index) in statList":key="index"style="flex: 0 0 20%"></el-col> </el-row>当元素为5个时,去掉span…

cv_unet_image-matting为何选它?透明背景保留技术深度解析

cv_unet_image-matting为何选它&#xff1f;透明背景保留技术深度解析 1. 为什么图像抠图需要高精度透明度处理&#xff1f; 在数字内容创作中&#xff0c;我们经常需要把人物、产品或物体从原始背景中“提取”出来&#xff0c;用于海报设计、电商展示、视频合成等场景。传统…

Qwen3-1.7B与百川2对比:轻量模型在移动端部署表现评测

Qwen3-1.7B与百川2对比&#xff1a;轻量模型在移动端部署表现评测 1. 轻量级大模型的现实意义&#xff1a;为什么1.7B参数值得认真对待 你有没有遇到过这样的场景&#xff1a;想在手机App里嵌入一个能理解用户提问、生成简洁回复的AI助手&#xff0c;但一试就卡顿、发热、耗电…

2026年热门的江苏绝缘劳保鞋/江苏马靴劳保鞋厂家最新推荐排行榜

在劳动防护用品领域,江苏作为中国重要的制造业基地,拥有众多专业生产绝缘劳保鞋和马靴劳保鞋的优质厂家。本文基于企业规模、生产工艺、产品质量、市场口碑和创新能力等维度,对江苏地区专业生产绝缘劳保鞋和马靴劳保…

C语言-单向循环链表带头节点的基本操作(增、删、改、查)

C语言-单向循环链表带头节点的基本操作(增、删、改、查) 前言 带头节点的单向循环链表=链表成环+永远不用判断空头。如果你已经会单链表,那么会很快上手单向循环链表。 详细代码 1、所需要包含的头文件以及定义链表…

GPT-OSS显存爆了?微调最低48GB显存避坑部署教程

GPT-OSS显存爆了&#xff1f;微调最低48GB显存避坑部署教程 你是不是也遇到过&#xff1a;刚把GPT-OSS模型拉起来&#xff0c;还没输几个字&#xff0c;显存就飙到99%&#xff0c;OOM报错直接弹窗&#xff1f;网页卡死、推理中断、训练中断……别急&#xff0c;这不是模型不行…

矩阵起源荣获 DataFun 星空奖双项大奖 | 科技领航,打造企业级数据智能新基建

1 月 16 日&#xff0c;在北京中关村展示中心会议中心举办的 DataFun 第三届 “星空奖” 颁奖现场&#xff0c;**矩阵起源&#xff08;Matrix Origin&#xff09;**凭借在数据智能基础设施领域的持续耕耘与实际应用成效&#xff0c;一举获评两项年度荣誉&#xff1a;「年度科技…

用Qwen3-1.7B做情感陪伴AI,真的可行吗?实测告诉你

用Qwen3-1.7B做情感陪伴AI&#xff0c;真的可行吗&#xff1f;实测告诉你 你有没有想过&#xff0c;一个参数只有1.7B的小模型&#xff0c;也能成为一个有温度的“情感伙伴”&#xff1f;最近&#xff0c;我看到不少人在讨论小模型的价值——尤其是在个性化、轻量级场景下的潜…

靠谱的打包袋定制厂家选择哪家好,这里有答案!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为餐饮、商超、生鲜等领域的企业选型提供客观依据,助力精准匹配适配的环保包装服务伙伴。 TOP1 推荐:沈阳众合塑料包装制品有限公司 推荐指数:★…

YOLOv10-S与YOLOv9-C对比测评,延迟真的低46%吗?

YOLOv10-S与YOLOv9-C对比测评&#xff0c;延迟真的低46%吗&#xff1f; 在目标检测领域&#xff0c;每毫秒的延迟优化都可能决定一个系统能否落地。尤其是在自动驾驶、工业质检和实时视频分析等场景中&#xff0c;模型不仅要“看得准”&#xff0c;更要“反应快”。最近发布的…

喜报|矩阵起源获InfoQ极客传媒2025年度技术生态构建品牌奖

1月21日&#xff0c;以“超越泡沫&#xff0c;开始构建”为主题的2026极客科技伙伴时刻圆满结束&#xff0c;该活动是极客邦科技一年一度的保留节目&#xff0c;旨在表彰过去一年中为技术生态发展与建设贡献突出力量的企业、团队和个人。 其中&#xff0c;矩阵起源凭借其在技术…

聊聊靠谱的液压站加工厂,启东通润如何保障产品质量和售后?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为工业企业选型提供客观依据,助力精准匹配适配的液压站服务伙伴。 TOP1 推荐:启东通润润滑液压设备有限公司 推荐指数:★★★★★ | 口碑评分:国…

2026年优质的除四害专业团队推荐

在有害生物防治行业,选择一家专业可靠的除四害服务提供商至关重要。优质的除四害团队应具备丰富的实战经验、科学的管理体系、先进的防治技术以及完善的售后服务。通过对行业服务能力、客户反馈、技术实力等多维度评估…

verl开发者必看:高效RL训练框架部署入门必看

verl开发者必看&#xff1a;高效RL训练框架部署入门必看 1. 什么是verl&#xff1f;——专为大模型后训练打造的强化学习新选择 你是否在为大型语言模型&#xff08;LLM&#xff09;的后训练阶段反复调试PPO、DPO或KTO流程而头疼&#xff1f;是否发现现有RL训练代码耦合度高、…