news 2026/2/2 23:16:06

从命令行到API:Open-AutoGLM两种调用方式实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从命令行到API:Open-AutoGLM两种调用方式实操

从命令行到API:Open-AutoGLM两种调用方式实操

你有没有想过,手机能听懂你说话,还能自己点开App、输入关键词、滑动屏幕、完成任务?不是科幻电影,是今天就能跑起来的现实——Open-AutoGLM,一个真正能“看”手机屏幕、“想”操作路径、“动”手指执行的AI手机智能体。它不依赖预设脚本,不靠固定坐标点击,而是用视觉语言模型理解界面、用推理能力规划动作、用ADB精准操控真机。

更关键的是,它不只停留在演示视频里。你可以在本地电脑上,用一条命令让它帮你刷抖音、比价下单、发微信消息;也可以写几行Python代码,把它嵌入自己的自动化流程中。本文不讲原理、不堆参数,只聚焦一件事:怎么真正用起来。我们将完整走通两种最常用、最实用的调用路径——命令行快速验证,和Python API工程集成,并全程基于真实设备环境,避开文档里没说清的坑。

1. 环境准备:让电脑和手机“握手成功”

再强的AI,也得先连上手机。这一步看似简单,却是90%失败案例的起点。我们跳过“理论上可行”的描述,直击实操要点。

1.1 你的设备必须满足这三点

  • 电脑系统:Windows 10/11 或 macOS Sonoma 及以上(Linux同理,但本文以Win/macOS为主)
  • Python版本:严格建议使用Python 3.10.12(不是3.11或3.12)。vLLM对Python版本敏感,3.11+在部分系统会报ModuleNotFoundError: No module named 'vllm._C'
  • 安卓手机:Android 8.0以上(Android 7勉强可用,但部分新机型权限策略会导致ADB拒绝连接),且必须是真实手机——模拟器无法获取真实屏幕图像,视觉理解直接失效

1.2 ADB配置:别被“环境变量”吓住

ADB不是软件,是工具链。配置核心就两件事:让电脑认出ADB命令,让手机信任电脑

  • Windows用户

    1. 下载官方platform-tools,解压到C:\adb
    2. Win + R→ 输入sysdm.cpl→ 高级 → 环境变量 → 在“系统变量”里找到Path→ 编辑 → 新建 → 粘贴C:\adb
    3. 重启命令行窗口(重要!旧窗口不读新环境变量),输入adb version,看到类似Android Debug Bridge version 1.0.41即成功
  • macOS用户

    1. 解压后进入Terminal,执行:
      echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc
    2. 输入adb version验证

常见卡点:adb devices返回空或unauthorized。这不是ADB问题,是手机没授权。请检查:① 开发者模式已开启(设置→关于手机→版本号连点7次);② USB调试已打开(设置→开发者选项→USB调试);③ 手机弹出“允许USB调试吗?”对话框,务必勾选“始终允许”,再点确定。若无弹窗,尝试换USB线或USB口——很多线只充电不传数据。

1.3 手机端关键设置:不止是“打开USB调试”

Open-AutoGLM要“看”屏幕、“点”图标、“输”文字,三步缺一不可:

  • 屏幕捕获:依赖ADBscreencap命令,无需额外设置
  • 点击与滑动:依赖ADBinput tap/input swipe,无需额外设置
  • 文字输入:这是最容易被忽略的环节。安卓原生输入法不支持ADB指令输入,必须安装ADB Keyboard
    1. 从GitHub Release页下载最新版APK(如ADBKeyboard_v1.0_all.deb.apk
    2. 用USB线传输到手机,安装
    3. 进入手机“设置→系统管理→语言与输入法→虚拟键盘”,将默认输入法切换为“ADB Keyboard”
    4. 返回桌面,长按任意输入框,确认弹出软键盘——此时才算真正就绪

2. 控制端部署:三分钟跑通本地代码

环境配好,下一步是把控制大脑装到你电脑上。Open-AutoGLM的控制端是纯Python项目,没有编译,只有依赖。

2.1 克隆与安装:别跳过-e参数

git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .

注意最后的-e(editable mode)。它让Python把当前目录当作已安装包,后续修改代码(如调试日志)无需重复安装。跳过它,你会遇到ModuleNotFoundError: No module named 'phone_agent'

2.2 连接设备:USB是底线,WiFi是进阶

  • USB直连(推荐新手)

    adb devices # 正常输出示例: # List of devices attached # 1234567890abcdef device

    设备ID1234567890abcdef就是你的--device-id值。

  • WiFi无线连接(适合远程调试)

    1. 先用USB线连接,执行adb tcpip 5555
    2. 拔掉USB线,确保手机和电脑在同一WiFi下
    3. 查看手机IP:手机设置→关于手机→状态信息→IP地址(通常是192.168.x.x
    4. 电脑执行:adb connect 192.168.x.x:5555
    5. 再次adb devices,应显示192.168.x.x:5555 device

提示:WiFi连接不稳定是常态。如果adb shell卡住或断连,立刻切回USB——这不是模型问题,是网络问题。

3. 命令行调用:一句话启动,任务自动完成

这是最快验证效果的方式。你不需要写代码,只要一条命令,AI就开始工作。

3.1 基础命令结构:记住这四个必填项

python main.py \ --device-id <设备ID或IP:端口> \ --base-url <模型服务地址> \ --model "autoglm-phone-9b" \ "你的自然语言指令"
  • --device-id:来自adb devices的输出,如1234567890abcdef192.168.1.100:5555
  • --base-url:模型服务的API入口。新手强烈推荐用智谱BigModel在线服务,省去本地部署麻烦:
    • 地址:https://open.bigmodel.cn/api/paas/v4
    • 模型名:autoglm-phone
    • 需配合--apikey(去智谱AI官网申请免费API Key)
  • --model:指定模型名称,线上服务填autoglm-phone,本地vLLM服务填autoglm-phone-9b
  • 最后的字符串:你的指令,用英文双引号包裹,必须是完整、明确的中文句子

3.2 实战案例:从“打开抖音”到“关注博主”

我们用一个真实场景贯穿全流程:

python main.py \ --device-id 1234567890abcdef \ --base-url https://open.bigmodel.cn/api/paas/v4 \ --apikey your_actual_api_key_here \ --model "autoglm-phone" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

执行后,你会看到终端实时打印AI的思考过程:

[INFO] 截取当前屏幕... [INFO] 将屏幕图像发送至模型... [INFO] 模型返回:{"action": "LAUNCH_APP", "app_name": "抖音"} [INFO] 执行:启动抖音应用... [INFO] 截取屏幕...检测到搜索框... [INFO] 模型返回:{"action": "INPUT_TEXT", "text": "dycwo11nt61d"} [INFO] 执行:输入文本... [INFO] 模型返回:{"action": "TAP", "x": 520, "y": 180} [INFO] 执行:点击搜索结果... [INFO] 模型返回:{"action": "TAP", "x": 890, "y": 210} [INFO] 执行:点击关注按钮... [INFO] 任务完成!

整个过程约20-40秒,取决于网络和手机性能。关键观察点

  • AI是否准确识别了抖音图标?(看第一屏截图)
  • 搜索框定位是否正确?(看坐标x/y是否落在输入框内)
  • 关注按钮是否点中?(看最终界面是否有“已关注”字样)

如果某一步失败,比如点错了位置,大概率是屏幕分辨率适配问题。此时加参数--scale-factor 1.0强制重置缩放(默认会根据设备DPI自动计算,但部分国产ROM有偏差)。

3.3 命令行进阶技巧:不只是“执行一次”

  • 交互模式:去掉最后的指令字符串,进入循环模式:

    python main.py --device-id 1234567890abcdef --base-url ... --apikey ... # 终端出现 > 符号,可连续输入多条指令,如: # > 打开小红书搜咖啡 # > 切换到微信给张三发截图
  • 查看支持应用:避免指令超纲,先查白名单:

    python main.py --list-apps # 输出:微信、抖音、淘宝、美团、小红书、京东、支付宝、Chrome...
  • 启用详细日志:排查问题必备:

    python main.py --verbose --device-id ... "指令" # 显示每张截图的Base64编码、模型原始JSON响应、ADB执行命令

4. Python API调用:把AI变成你程序里的一个函数

命令行适合验证,但工程落地需要API。Open-AutoGLM提供了简洁的Python接口,让你像调用普通函数一样驱动手机。

4.1 核心四行:初始化、配置、运行、收果

from phone_agent import PhoneAgent from phone_agent.model import ModelConfig # 1. 配置模型服务 model_config = ModelConfig( base_url="https://open.bigmodel.cn/api/paas/v4", model_name="autoglm-phone", api_key="your_actual_api_key_here" ) # 2. 创建Agent实例(绑定设备) agent = PhoneAgent( model_config=model_config, device_id="1234567890abcdef" # 或 "192.168.1.100:5555" ) # 3. 执行任务(同步阻塞,等待完成) result = agent.run("打开淘宝搜索无线耳机") # 4. 获取结果 print("任务状态:", result.status) # success / failed print("执行步骤数:", len(result.steps)) print("最终截图路径:", result.final_screenshot)

这段代码的核心价值在于:它把复杂的多模态推理、ADB通信、异常重试全部封装了。你只需关心输入(指令)和输出(结果对象)。

4.2 结果对象详解:不只是“成功/失败”

result不是布尔值,而是一个结构化对象,包含所有关键信息:

属性类型说明
statusstr"success""failed"
stepslist每步操作的字典列表,含action,description,screenshot_path
final_screenshotstr最终界面截图保存路径(如./screenshots/final_20241205_142233.png
error_messagestr失败时的详细错误(如"未找到'关注'按钮"
total_timefloat从开始到结束的总耗时(秒)

这意味着你可以轻松实现:

  • 自动化测试报告:统计100次任务的成功率、平均耗时、常见失败点
  • 截图存档:每次任务生成带时间戳的截图,用于审计或复盘
  • 失败自动重试if result.status == "failed": agent.run("重新执行相同指令")

4.3 自定义回调:接管敏感操作,安全第一

Open-AutoGLM内置了安全机制,当检测到支付、登录、验证码等高风险操作时,会暂停并等待人工确认。你可以通过回调函数接管这个过程:

def on_sensitive_action(action_info): """当AI准备执行敏感操作时触发""" print(f" 检测到敏感操作:{action_info['action']}") print(f" 描述:{action_info['description']}") print(f" 当前截图:{action_info['screenshot_path']}") # 这里可以弹窗、发邮件、或直接返回True允许执行 user_input = input("是否允许执行?(y/n): ") return user_input.lower() == "y" # 创建Agent时注册回调 agent = PhoneAgent( model_config=model_config, device_id="1234567890abcdef", on_sensitive_action=on_sensitive_action # 注册函数 ) result = agent.run("登录微信") # 程序会在登录页暂停,等待你输入y/n

这个设计让Open-AutoGLM既能全自动运行,又能在关键时刻交还控制权,完美平衡效率与安全。

5. 故障排除:那些文档没写的“真实世界”问题

部署顺利是理想,出错才是常态。以下是我们在真实设备上踩过的坑及解法:

5.1 “Connection refused” —— 不是模型挂了,是端口没通

现象:requests.exceptions.ConnectionError: HTTPConnectionPool(host='...', port=8000): Max retries exceeded with url: /v1/chat/completions

原因:90%是云服务器防火墙未开放端口。即使你telnet ip 8000不通,也不代表模型没跑——可能只是防火墙拦截。

解决:

  • 阿里云/腾讯云:进入安全组,添加入方向规则,协议类型TCP,端口范围8000/8000
  • 本地vLLM:确认启动命令中--host 0.0.0.0(不是127.0.0.1),否则只监听本地

5.2 “No response from model” —— 模型在“思考”,你在“干等”

现象:终端卡在[INFO] 将屏幕图像发送至模型...,1分钟后报超时。

原因:vLLM显存不足或max-model-len设置过小,导致大图(如1080p截图)被截断,模型无法解析。

解决:

  • 启动vLLM时,必须显式增大--max-model-len
    python3 -m vllm.entrypoints.openai.api_server \ --max-model-len 32768 \ # 原25480不够,至少32K --model zai-org/AutoGLM-Phone-9B \ --port 8000
  • 检查GPU显存:nvidia-smi,9B模型需≥16GB显存(A10/A100)

5.3 “Click not working” —— 点错了?其实是坐标系偏移

现象:AI说“点击坐标(520,180)”,但实际点到了状态栏。

原因:部分安卓ROM(尤其华为、小米)启用了“全面屏手势”,隐藏了底部导航栏,导致ADB坐标系与屏幕像素不一致。

解决:强制关闭手势,改用传统三键导航:

  • 华为:设置→系统和更新→系统导航→“屏幕内三键导航”
  • 小米:设置→桌面→系统导航方式→“经典导航键”

重启手机后重试,坐标精度立即提升。

6. 总结:你已经掌握了AI手机助理的钥匙

我们从零开始,完成了Open-AutoGLM的完整实操闭环:

  • 环境层:明确了Windows/macOS、Python 3.10、真实安卓机、ADB Keyboard这四大硬性条件;
  • 连接层:用adb devicesadb connect打通了电脑与手机的数据通道;
  • 命令行层:用一条python main.py ...命令,让AI自动完成“打开App→搜索→点击→关注”的全链路;
  • API层:用四行Python代码,将AI封装成可编程、可监控、可回调的工程组件;
  • 排障层:直面了防火墙、显存、坐标偏移等真实部署障碍,并给出可立即执行的解法。

Open-AutoGLM的价值,不在于它多炫酷,而在于它把“手机自动化”这件事,从需要写死坐标的脚本时代,推进到了用自然语言指挥的智能体时代。你现在拥有的,不是一段代码,而是一个能理解你意图、能看见你屏幕、能替你动手的数字分身。

下一步,你可以:

  • 把它接入你的RPA流程,让客服机器人自动查订单;
  • 用它批量测试App新版本,覆盖50+主流应用;
  • 甚至开发一个“老人模式”:语音说“帮我给儿子发微信”,AI自动完成。

技术的终点,永远是让人更自由。而自由的第一步,就是亲手敲下那条命令。


获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 13:28:32

大模型书籍丨国内顶尖院校出品,非常火爆的LLM大模型入门中文书来了

最近有一本人工智能入门的书比较火&#xff0c;这本书集合了最新的产品、技术&#xff0c;并通过顶尖院校的教授书写而成。我今天阅读了第一章&#xff0c;感觉浅显易懂&#xff0c;顺便把笔记也做出来了&#xff0c;供大家参考。 大语言模型入门 第一部分 背景与基础知识 第…

作者头像 李华
网站建设 2026/2/2 7:18:53

Git下载提速300%:这些技巧你知道吗?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Git下载优化工具包&#xff0c;包含以下功能&#xff1a;1) 自动检测并切换最佳镜像源&#xff1b;2) 并行下载技术实现&#xff1b;3) 断点续传支持&#xff1b;4) 本地缓…

作者头像 李华
网站建设 2026/2/1 8:12:02

30分钟用Wireshark抓包分析三次握手

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个自动化Wireshark分析脚本&#xff0c;功能&#xff1a;1. 自动捕获TCP握手过程&#xff1b;2. 标记关键字段&#xff08;序列号、标志位等&#xff09;&#xff1b;3. 检测…

作者头像 李华
网站建设 2026/1/29 15:20:13

开发食材热量查询工具,输入食材名称,重量,查询热量,蛋白质,碳水含量,支持多食材组合计算,辅助减肥期饮食控制。

1. 实际应用场景描述在减脂或健身过程中&#xff0c;用户需要精确控制每日摄入的热量、蛋白质和碳水化合物。目前市面上的营养查询工具往往&#xff1a;- 只支持单一食材查询- 无法批量计算多种食材组合- 数据更新不及时- 缺乏本地化食材库&#xff08;如中式食材&#xff09;因…

作者头像 李华
网站建设 2026/1/30 2:10:02

Windows文件修复失败?快马平台帮你搞定

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Windows文件修复工具&#xff0c;支持检测和修复常见系统文件损坏问题。工具应包含以下功能&#xff1a;1. 扫描系统文件并标记损坏文件&#xff1b;2. 提供联机修复选项&…

作者头像 李华
网站建设 2026/2/1 5:08:55

Canvas编辑器实战:从零构建交互式数据可视化工具

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个专业级数据可视化Canvas编辑器&#xff0c;功能包括&#xff1a;1. 支持常见图表类型(柱状图、折线图、饼图)的绘制和编辑 2. 数据绑定接口(支持JSON/CSV导入) 3. 交互功能…

作者头像 李华