Open-AutoGLM实战:自动登录+搜索+关注全流程
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现手机界面理解与智能操作。通过自然语言指令(如‘搜索并关注指定抖音号’),该镜像可完成自动登录、搜索、关注等全流程交互,典型应用于电商运营、内容分发与APP自动化测试场景。
Open-AutoGLM实战:自动登录+搜索+关注全流程
1. 这不是遥控器,是能“看懂”手机的AI助手
你有没有过这样的经历:想关注一个博主,得先解锁手机、找到App、点开搜索框、输入一长串ID、在结果里翻找、点进主页、再点关注——整个过程要十几秒,手指还得精准操作。如果同时要操作多台设备?或者正在开会没法碰手机?又或者只是单纯厌倦了重复点击?
Open-AutoGLM 不是另一个自动化脚本工具。它是一套真正理解手机界面的 AI 代理框架。它不靠坐标硬编码,不依赖固定控件ID,而是像人一样“看”屏幕、“读”文字、“想”下一步该做什么。当你输入“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”,它会:
- 先识别当前是否在桌面,决定是否启动抖音
- 进入抖音后,准确找到顶部搜索图标并点击
- 在搜索框中逐字输入那一串看似随机实则唯一的ID
- 从搜索结果中判断哪个是目标账号(不是靠位置,而是理解头像、昵称、认证标识等视觉语义)
- 点击进入主页后,识别“关注”按钮的文字或图标状态,并完成点击
整个过程无需你写一行UI定位代码,也不用提前截图训练模型。它靠的是视觉语言模型对界面的实时理解,加上基于意图的智能动作规划。
这篇文章就带你完整走一遍真实可用的端到端流程:从零配置本地控制端,连接真机,部署云端模型服务,再到执行一条含登录、搜索、关注三重动作的复杂指令。所有步骤均已在 Android 12 真机 + Windows 11 + vLLM 服务环境下实测通过,不跳步、不省略、不假设你已装好一切。
2. 环境准备:三步搭起控制中枢
2.1 你的电脑需要什么
这不是一个“pip install 就完事”的工具。它需要你把本地电脑变成一台能远程指挥手机的控制中心。核心就三样:
- Python 3.10 或更高版本:建议用 pyenv 或 conda 管理环境,避免污染系统 Python
- ADB 工具链:Android Debug Bridge,它是所有操作的物理通道
- 一台可调试的安卓手机:Android 7.0 及以上,推荐 Android 10+(高版本对无障碍权限更友好)
注意:不要用模拟器跑生产任务。模拟器的渲染延迟、截图失真、输入响应不一致,会导致 AI 对界面的理解频繁出错。本文全程以小米12(Android 12)真机为例。
2.2 ADB 配置:让电脑“认出”你的手机
Windows 用户请按顺序操作:
- 下载 platform-tools(选 Windows 版)
- 解压到一个无中文、无空格的路径,例如
C:\adb - 按
Win + R输入sysdm.cpl→ “高级” → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴C:\adb - 打开新命令行窗口,输入
adb version,看到类似Android Debug Bridge version 1.0.41即成功
macOS 用户只需在终端运行:
# 假设你把 platform-tools 放在 ~/Downloads/platform-tools
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc
source ~/.zshrc
adb version
2.3 手机端设置:打开“被控制”的大门
这一步最容易卡住,务必逐项确认:
-
开启开发者模式:
设置 → 关于手机 → 连续点击“版本号”7次 → 输入锁屏密码 → 出现“您现在处于开发者模式” -
开启USB调试:
设置 → 额外设置 → 开发者选项 → 向下滚动 → 打开“USB调试”开关
(若找不到“额外设置”,请在设置顶部搜索“开发者选项”) -
安装并启用 ADB Keyboard(关键!):
- 下载 ADB Keyboard APK(v1.1 或更新)
- 用 USB 连接手机,在电脑命令行运行
adb install adbkeyboard.apk - 手机设置 → 语言与输入法 → 当前键盘 → 切换为 ADB Keyboard
- 为什么必须? Open-AutoGLM 依赖它实现纯命令行文本输入,绕过系统软键盘的兼容性问题和弹窗干扰
完成这三步后,用 USB 线连接手机与电脑,在命令行运行:
adb devices
如果看到一串字母数字组合(如 8a9b2c1d device),说明连接成功。如果显示 unauthorized,请在手机上弹出的授权对话框中点“允许”。
3. 控制端部署:让本地代码“说话”
3.1 克隆并安装 Open-AutoGLM
打开终端(Windows 用 PowerShell 或 CMD,macOS 用 Terminal),执行:
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM
pip install -r requirements.txt
pip install -e .
提示:
pip install -e .是关键。它以“开发模式”安装包,让你后续修改源码(比如phone_agent/agent.py)能立即生效,无需反复重装。
3.2 验证 ADB 连通性(不跳过!)
在 Open-AutoGLM 目录下,运行一个最简测试:
python -c "from phone_agent.adb import list_devices; print(list_devices())"
你应该看到类似输出:
[<Device(device_id='8a9b2c1d', connection_type=<ConnectionType.USB: 1>)>]
如果报错 No module named 'adb',说明 requirements.txt 中的 adb-shell 未正确安装,请手动运行 pip install adb-shell。
3.3 远程连接支持(WiFi 模式备选)
USB 连接稳定但不够灵活。如果你希望手机离电脑一米远也能工作,可以启用 WiFi 调试:
# 第一步:用 USB 连接时启用 TCP/IP 模式
adb tcpip 5555
# 第二步:拔掉 USB,确保手机和电脑在同一 WiFi 下
# 查看手机 IP(设置 → WLAN → 点击当前网络 → 查看 IP 地址,通常是 192.168.x.x)
adb connect 192.168.1.100:5555
# 第三步:验证
adb devices # 应显示 192.168.1.100:5555 device
注意:部分品牌手机(如华为、小米)默认关闭 WiFi ADB,需在“开发者选项”中额外开启“无线调试”或“通过 WiFi 调试”。
4. 模型服务部署:给AI装上“眼睛”和“大脑”
Open-AutoGLM 的核心能力不在本地代码,而在它调用的视觉语言模型。你需要先启动一个能处理图像+文本的模型服务。
4.1 选择模型与部署方式
官方提供两个主力模型:
| 模型 | 适用场景 | 推荐部署方式 |
|---|---|---|
zai-org/AutoGLM-Phone-9B |
中文手机任务首选(小红书、抖音、淘宝等) | vLLM(显存 ≥ 12GB) |
zai-org/AutoGLM-Phone-9B-Multilingual |
需处理英文 App 或混合界面 | vLLM 或 SGlang |
本文使用 AutoGLM-Phone-9B,部署在一台带 RTX 3090 的服务器上(公网IP:203.123.45.67,映射端口 8800)。
4.2 启动 vLLM 服务(关键参数详解)
在服务器上运行以下命令(注意替换路径和参数):
python3 -m vllm.entrypoints.openai.api_server \
--served-model-name autoglm-phone-9b \
--model zai-org/AutoGLM-Phone-9B \
--port 8800 \
--max-model-len 25480 \
--chat-template-content-format string \
--limit-mm-per-prompt '{"image":10}' \
--mm-encoder-tp-mode data \
--mm_processor_cache_type shm \
--mm_processor_kwargs '{"max_pixels":5000000}' \
--allowed-local-media-path /
这些参数不是摆设,每一项都影响实际效果:
--max-model-len 25480:必须 ≥ 24576,否则模型无法接收高分辨率截图(手机屏幕截图常达 1080×2400=2592000 像素,经压缩后仍需大上下文)--mm_processor_kwargs '{"max_pixels":5000000}':将截图最大像素设为 500 万,平衡清晰度与显存占用(1080p 屏幕截图约 259 万像素,足够)--allowed-local-media-path /:允许模型读取本地任意路径的截图文件(控制端会生成临时截图并传路径)--mm_processor_cache_type shm:启用共享内存缓存,大幅提升多图连续推理速度
服务启动后,访问 http://203.123.45.67:8800/v1/models,应返回 JSON 包含 "id":"autoglm-phone-9b",即部署成功。
5. 实战演练:一条指令完成登录→搜索→关注
我们以“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”为例。这个任务包含三个典型难点:
- 登录态判断:若抖音未登录,需先触发登录流程(弹窗、账号选择、密码输入)
- ID 精准匹配:抖音号是字母数字混排,易与昵称、简介混淆,需视觉语义理解
- 关注按钮识别:不同账号状态(已关注/未关注/互关)按钮文案不同,需动态识别
5.1 命令行一键执行
在本地 Open-AutoGLM 目录下,运行:
python main.py \
--device-id 8a9b2c1d \
--base-url http://203.123.45.67:8800/v1 \
--model "autoglm-phone-9b" \
"打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"
你会看到什么:
- 终端实时打印每一步动作:
[INFO] 截图已保存至 /tmp/screen_123456.png → 正在识别桌面图标... 找到抖音图标→ 点击抖音图标→ 等待抖音加载... 检测到首页底部导航栏→ 点击搜索图标→ 输入文本:dycwo11nt61d→ 检测搜索结果列表... 定位第1项(头像+昵称+抖音号匹配度92%)→ 点击进入主页→ 检测到“关注”按钮(文案为“+ 关注”)→ 点击关注任务完成。总耗时:42.7 秒
5.2 关键动作拆解:AI 如何“思考”每一步
| 步骤 | AI 的输入(截图+文本) | AI 的决策依据 | 为什么可靠 |
|---|---|---|---|
| 启动抖音 | 桌面截图 + “打开抖音”指令 | 识别图标形状、颜色、文字标签(“抖音”汉字或音符logo) | 视觉模型对常见App图标泛化能力强,不依赖坐标 |
| 点击搜索 | 抖音首页截图 + “搜索”意图 | 定位顶部搜索栏区域(结合颜色、圆角、放大镜图标) | 多模态对齐:文字“搜索”与视觉元素强关联 |
| 输入ID | 搜索框聚焦状态截图 + 字符串 dycwo11nt61d |
调用 ADB Keyboard 逐字符发送,非粘贴(规避输入法拦截) | 避免中文输入法切换导致的乱码或延迟 |
| 识别目标账号 | 搜索结果页截图 + “抖音号为 dycwo11nt61d” | 同时比对头像相似度、昵称语义、抖音号字段(小字显示)、认证标识 | 不只看位置,而是理解“抖音号”在界面中的视觉呈现形式 |
| 点击关注 | 主页截图 + “关注”动作 | 识别按钮文案(“+ 关注”/“已关注”/“互相关注”)、背景色、可点击区域 | 动态状态判断,非静态模板匹配 |
小技巧:首次运行若失败,可在命令末尾加
--debug参数,它会保存每一步的截图到./debug/目录,方便你人工复盘 AI “看错了哪一块”。
5.3 Python API 封装:嵌入你自己的业务流
如果你需要批量执行、或集成到 Web 后台,用 API 更灵活:
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
# 配置指向你的云服务
model_config = ModelConfig(
base_url="http://203.123.45.67:8800/v1",
model_name="autoglm-phone-9b",
)
# 创建代理(自动管理ADB连接)
agent = PhoneAgent(
model_config=model_config,
device_id="8a9b2c1d", # 你的设备ID
)
# 执行任务,返回结构化结果
result = agent.run(
instruction="打开小红书搜索‘北京咖啡探店’并收藏第一条笔记",
timeout=120, # 最长等待2分钟
)
print(f"任务状态:{result.status}") # success / failed
print(f"执行步骤:{len(result.steps)} 步")
print(f"耗时:{result.duration:.1f} 秒")
result.steps 是一个列表,每项包含 action(click/input/swipe)、description(AI 自述动作)、screenshot_path(对应截图路径),可直接用于审计或教学。
6. 故障排查:90%的问题都出在这五个地方
6.1 ADB 连接失败:device not found 或 unauthorized
- 检查手机是否弹出“允许USB调试”弹窗(部分手机仅弹一次,拒绝后需在开发者选项里手动撤销授权)
- 尝试更换 USB 线(很多线只充电不传数据)
- 在电脑设备管理器中查看是否有“Android ADB Interface”黄色感叹号,有则右键更新驱动
6.2 模型返回乱码或空响应
- 检查 vLLM 启动日志,确认
--model路径是否正确(zai-org/AutoGLM-Phone-9B需提前huggingface-cli download或设置 HF_TOKEN) - 确认
--max-model-len是否 ≥ 24576,否则大图被截断导致信息丢失 - 检查
--mm_processor_kwargs中max_pixels是否过小(低于 2000000 会导致 1080p 截图严重模糊)
6.3 AI 总是点错位置:比如点到通知栏而非App图标
- 运行
adb shell wm size,确认手机分辨率是否被缩放(如“强制使用 1080p”)。应保持原始分辨率 - 在手机设置中关闭“深色模式”和“字体缩放”,避免 UI 元素尺寸异常
- 使用
--debug模式,查看 AI 生成的截图标注框是否覆盖正确区域
6.4 输入文字失败:搜索框没反应或输入乱码
- 100% 确认 ADB Keyboard 已在手机“语言与输入法”中设为默认
- 在手机设置中关闭“智能预测”“自动纠错”等输入法辅助功能
- 尝试在命令中加
--input-method adb(强制使用ADB输入,而非模拟触摸)
6.5 登录流程卡死:AI 识别不出账号密码框
- 这是正常现象。Open-AutoGLM 内置安全机制:当检测到密码输入框、短信验证码等敏感操作时,会自动暂停并等待人工接管
- 此时终端会提示
检测到敏感操作,请手动完成登录后按回车继续 - 你只需在手机上手动输密码、填验证码,然后回到终端按回车,AI 会从下一步继续
7. 总结:它能做什么,以及它不能做什么
7.1 你能立刻用它解决的实际问题
- 电商运营:每天自动刷100个商品页,截图价格/销量/评价,生成竞品日报
- 内容分发:一条指令同步发布图文到小红书、微博、知乎,自动适配各平台标题长度与话题标签
- APP 测试:输入“注册新账号并完成新手引导”,AI 自动走完全部路径,截图关键节点供 QA 复核
- 无障碍辅助:为视障用户朗读屏幕内容,并将语音指令转为点击操作(需接入 TTS)
7.2 它的现实边界(坦诚告诉你)
- 不支持游戏内操作:Unity/Unreal 渲染的界面无标准控件,AI 无法理解“血条”“技能图标”的语义
- 不处理动态验证码图片:虽然能识别数字,但对抗扭曲、噪点、滑块的验证码仍需人工
- 不保证100%成功率:复杂多层弹窗(如某些金融App的层层风险提示)可能超出当前规划深度
- 不替代专业自动化框架:对于毫秒级精度要求的自动化(如抢红包),ADB 延迟仍是瓶颈
但它代表了一个清晰的方向:自动化正从“写死坐标”的脚本时代,迈向“理解意图”的智能体时代。你不再教机器“点哪里”,而是告诉它“我要什么”。
下一次,当你面对一个重复的手机操作任务时,别急着伸手——先问问自己:这句话,能不能直接说给 Open-AutoGLM 听?
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐


所有评论(0)