实战演示:用Open-AutoGLM实现抖音自动搜索关注,全过程分享
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现抖音自动搜索并关注指定博主的典型移动端AI任务。通过自然语言指令驱动,该方案无需脚本编写,支持屏幕理解、动态规划与安全验证,显著提升移动应用自动化效率。
实战演示:用Open-AutoGLM实现抖音自动搜索关注,全过程分享
1. 这不是脚本,是真正能“看懂屏幕”的手机AI助手
你有没有试过在抖音里反复翻找一个博主?输入搜索词、点开主页、滑动页面、确认账号信息、再点关注——整个过程要手动操作七八步。更别说遇到验证弹窗、广告遮挡、界面改版这些意外情况。
Open-AutoGLM 不是传统意义上的自动化工具。它不靠坐标点击,也不依赖固定UI结构。它像一个坐在你手机旁的真人助手:能实时“看见”屏幕内容,理解当前界面状态,听懂你的自然语言指令,再一步步规划、执行、验证,直到任务完成。
比如这句指令:
“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”
它会自动完成:
- 启动抖音App(如果未运行)
- 定位顶部搜索栏并点击
- 调出键盘,输入“dycwo11nt61d”
- 点击搜索按钮
- 在结果页识别带该ID的头像和昵称
- 判断是否为官方认证账号(避免误关注仿冒号)
- 点击进入主页
- 找到“关注”按钮并点击
- 确认关注成功弹窗(如有)
整个过程无需你碰一次手机,也不需要提前写好任何坐标或XPath。你只管说人话,剩下的交给它。
这不是概念演示,而是已在真实安卓设备上稳定运行的端到端能力。接下来,我会带你从零开始,亲手部署、连接、实测——不跳过任何一个关键细节,不隐藏任何常见坑点。
2. 准备工作:三件套缺一不可
Open-AutoGLM 的运行依赖三个独立但紧密协作的组件:你的电脑(控制端)、你的安卓手机(执行端)、以及一个视觉语言模型服务(决策大脑)。它们必须同时就位,才能让AI真正“动手”。
2.1 你的电脑:装好ADB,配对成功
ADB(Android Debug Bridge)是连接电脑与手机的唯一通道。它不是可选插件,而是整个系统运转的基石。
别跳过验证环节:很多用户卡在第一步,不是因为不会安装,而是没验证成功。
-
在 macOS 或 Linux 上,用 Homebrew 或 apt 安装后,务必执行:
adb version输出类似
Android Debug Bridge version 1.0.41才算通过。 -
在 Windows 上,手动解压 platform-tools 后,必须将路径加入系统环境变量 Path,并重启命令行窗口再测试。很多人忘了重启,导致始终报
adb: command not found。 -
验证连接时,执行:
adb devices正确输出必须是:
List of attached devices ABCDEFGHIJKLMNOP device注意末尾是
device,不是unauthorized或空白。如果是unauthorized,请立即去手机上点击“允许USB调试”——这个弹窗有时会一闪而过,或被其他应用遮挡。
2.2 你的安卓手机:开发者模式+ADB Keyboard双启用
普通用户模式下,手机拒绝一切远程控制。必须开启两个关键开关:
第一,开发者模式与USB调试
路径因品牌而异,但核心动作不变:
设置 → 关于手机 → 连续点击“版本号”7次 → 返回设置 → 找到“开发者选项” → 开启“USB调试”
重点提醒:部分华为、小米、OPPO 设备还需额外开启“USB调试(安全设置)”,否则 ADB 只能识别设备,无法执行点击、截图等操作。
第二,ADB Keyboard 输入法
这是解决中文输入的核心。标准 ADB input text 命令对中文支持极差,极易乱码或失败。ADB Keyboard 是社区公认的可靠方案。
安装后,必须完成两步设置(仅靠 adb install 不够):
# 启用该输入法(让它出现在输入法列表中)
adb shell ime enable com.android.adbkeyboard/.AdbIME
# 设为默认输入法(确保所有输入框都走它)
adb shell ime set com.android.adbkeyboard/.AdbIME
验证是否生效:
adb shell settings get secure default_input_method
输出必须是 com.android.adbkeyboard/.AdbIME。如果不是,请重复执行上面两条命令。
2.3 模型服务:本地部署 or 云端调用?
Open-AutoGLM 本身不包含大模型,它是一个“指挥官”,需要对接一个能看图、懂语言、会规划的视觉语言模型(VLM)。你有两个选择:
-
本地部署(推荐学习/调试):用你自己的显卡跑 vLLM 推理服务。需要 NVIDIA GPU(建议 24GB 显存起),启动后监听
http://localhost:8000/v1。优点是数据不出本地,响应快;缺点是首次下载模型约 20GB,耗时较长。 -
云端调用(推荐快速上手):直接使用已部署好的服务,如 z.ai、Novita AI 或 ModelScope。只需提供 API Key 和服务地址,省去硬件和部署烦恼。本文后续实测即采用此方式,降低入门门槛。
无论哪种,记住一点:Open-AutoGLM 的 --base-url 参数,指向的就是这个模型服务的 OpenAI 兼容 API 地址。
3. 实战:三步完成抖音自动关注全流程
现在,所有前置条件已满足。我们以最典型的场景——“搜索并关注指定抖音号”——进行端到端实操。全程基于真实命令和反馈,不简化、不美化。
3.1 第一步:克隆代码,安装依赖
在你的电脑终端中执行:
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 模块,而不是报 ModuleNotFoundError。
3.2 第二步:确认设备连接,获取设备ID
保持手机通过 USB 连接电脑(WiFi 方式稍后介绍),执行:
adb devices
你会看到类似输出:
List of attached devices
8A9X025R2Q device
这里的 8A9X025R2Q 就是你的设备ID。把它记下来,后面要用。
3.3 第三步:下达指令,见证AI执行
假设你已注册 z.ai 服务并获得 API Key,其模型服务地址为 https://api.z.ai/api/paas/v4,模型名为 autoglm-phone-9b。
在 Open-AutoGLM 目录下,执行:
python main.py \
--device-id 8A9X025R2Q \
--base-url https://api.z.ai/api/paas/v4 \
--model autoglm-phone-9b \
--apikey your_actual_api_key_here \
"打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"
执行过程中,你会看到清晰的三段式日志:
-
截图分析阶段
AI 会先截取当前手机屏幕,发送给模型服务。日志显示:[INFO] Captured screenshot: /tmp/screen_123456.png [INFO] Sending to VLM for analysis... -
意图规划阶段
模型返回结构化思考链,例如:================================================== 思考过程: -------------------------------------------------- 当前屏幕显示手机桌面。任务要求打开抖音,需先找到抖音图标并点击。 -------------------------------------------------- 执行的动作: { "action": "Tap", "element": [320, 850] } ================================================== -
动作执行与验证阶段
ADB 执行点击,AI 再次截图,确认已进入抖音首页,然后继续规划下一步:“定位搜索栏”→“点击”→“输入文字”→“点击搜索”→“识别结果”→“点击头像”→“点击关注”。每一步都有日志回显,失败会重试。
最终,你会看到:
[SUCCESS] Task completed successfully.
[RESULT] Followed user 'XXX' (ID: dycwo11nt61d).
此时,打开你的抖音App,会发现目标博主已被关注。整个过程约 45-90 秒,取决于网络和手机性能。
4. 关键细节解析:为什么它能“看懂”屏幕?
很多用户好奇:它怎么知道哪里是搜索框?怎么区分“关注”和“已关注”按钮?这背后是 Open-AutoGLM 架构的精妙设计,而非简单OCR。
4.1 多模态理解:不只是“识别文字”
传统自动化工具依赖 UI 层级(XML)或图像匹配(Template Matching)。前者在APP更新后极易失效;后者对字体、颜色、位置变化极其敏感。
Open-AutoGLM 的视觉语言模型(AutoGLM-Phone)接收的是整张屏幕截图 + 自然语言指令。它做的是:
- 空间感知:理解元素的相对位置(“搜索栏在顶部中央”,“关注按钮在头像右侧”)
- 语义理解:结合上下文判断功能(“这个带+号的蓝色按钮,在个人主页上,大概率是关注”)
- 状态推理:识别按钮文本变化(“关注” vs “已关注” vs “互相关注”),并据此决定是否点击
这就像教一个新同事用APP:你不用告诉他每个像素坐标,只要说“在抖音主页,找到右上角那个放大镜图标,点它”,他就能办到。
4.2 智能规划:拒绝“死命令”,支持动态调整
指令是静态的,但手机界面是动态的。Open-AutoGLM 内置了闭环反馈机制:
- 每执行一个动作(如点击搜索栏),它会立刻截图。
- 将新截图 + 原始指令 + 已执行动作历史,一起发给模型。
- 模型重新评估当前状态,决定下一步——是继续输入?还是滑动找更多结果?或是处理突然弹出的权限请求?
这意味着,当搜索结果页没有立刻出现目标ID时,它不会报错退出,而是自动向下滑动,再次分析,直到找到或超时。这种“边走边看、随时修正”的能力,是它区别于脚本式自动化的本质。
4.3 敏感操作保护:不是“全自动”,而是“可接管”
安全是移动自动化的红线。Open-AutoGLM 默认启用了人工接管机制:
- 当检测到登录页、支付页、短信验证码弹窗等高风险界面时,AI 会暂停执行,输出提示:
[PAUSE] Detected login screen. Please manually enter credentials. [WAITING] Press Enter to continue after manual step... - 你只需在手机上完成输入,按回车键,AI 即恢复执行。
这既保障了账户安全,又避免了因验证码等不可预测环节导致流程中断。
5. 进阶技巧:让AI更懂你,效率翻倍
掌握基础操作后,以下技巧能显著提升实用性与鲁棒性。
5.1 指令写作心法:少即是多,具体胜于模糊
AI 不是万能的,它依赖你提供的线索质量。对比这两条指令:
“帮我关注一个抖音博主”
→ AI 无法知道是谁,会随机选择或报错。
“打开抖音,搜索用户‘科技小灵通’,进入其主页,点击关注按钮”
→ 包含明确APP名、搜索关键词、目标动作,成功率极高。
黄金法则:
- 必须包含 APP名称(抖音、小红书、淘宝)
- 搜索类任务,用 “搜索用户XXX” 或 “搜索抖音号XXX”,比“找XXX”更精准
- 涉及点击,优先用 功能描述(“关注按钮”、“私信按钮”)而非位置(“右上角”)
5.2 WiFi远程控制:摆脱USB线束缚
USB连接稳定,但限制了手机摆放和移动。WiFi 远程是生产力升级的关键。
正确步骤(以 Android 12 为例):
- 手机与电脑连同一WiFi
- 手机:设置 → 开发者选项 → 无线调试 → 开启 → 点击“使用配对码配对设备”
- 电脑终端执行:
输入配对码后,再执行:adb pair 192.168.1.100:37845 # 使用手机屏幕上显示的IP和端口adb connect 192.168.1.100:5555 - 验证:
adb devices应显示192.168.1.100:5555 device
此后,所有 main.py 命令中的 --device-id 参数,直接替换为这个IP:端口即可。手机可放在桌面上,完全脱离电脑。
5.3 批量任务:一次指令,多台手机同步执行
如果你有多个测试机或需要批量操作,Open-AutoGLM 支持并发控制。核心是 Python API 的灵活调用:
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
# 配置模型服务
model_config = ModelConfig(
base_url="https://api.z.ai/api/paas/v4",
model_name="autoglm-phone-9b",
api_key="your_key"
)
# 为每台手机创建独立Agent
agent1 = PhoneAgent(model_config=model_config, device_id="8A9X025R2Q")
agent2 = PhoneAgent(model_config=model_config, device_id="ZYXWVUTSRQ")
# 并行执行不同任务
result1 = agent1.run("打开抖音,搜索‘AI教程’,关注前3个结果")
result2 = agent2.run("打开小红书,搜索‘咖啡拉花’,收藏第1篇笔记")
这在APP灰度测试、多账号运营、竞品功能巡检等场景中,效率提升数倍。
6. 常见问题与解决方案:避开90%的部署陷阱
根据大量用户反馈,这些问题出现频率最高,且往往卡住新手。
6.1 “Connection refused” 错误:模型服务没连上
现象:执行 main.py 后报错 requests.exceptions.ConnectionError: HTTPConnectionPool... Max retries exceeded with url: /v1/chat/completions
排查顺序:
- 检查
--base-url是否拼写错误(注意末尾是否有/v1) - 如果是本地 vLLM,确认
python -m vllm.entrypoints.openai.api_server是否仍在运行(不要关闭启动它的终端) - 如果是云端服务,检查 API Key 是否复制完整(z.ai Key 通常以
sk-开头,共52位)
6.2 手机无反应,或点击错位
现象:日志显示“执行 Tap [x,y]”,但手机没动作,或点到了错误位置。
首要检查:
adb shell settings get secure default_input_method输出是否为com.android.adbkeyboard/.AdbIME?不是则重设。- 手机是否开启了“开发者选项”里的“USB调试”和“USB调试(安全设置)”?缺一不可。
- 手机屏幕分辨率是否过高?某些超高清屏(如 3200x1440)可能导致坐标计算偏差。临时将手机显示缩放调至“默认”可缓解。
6.3 中文输入乱码或不显示
现象:搜索框里出现 ???? 或空格,而非预期文字。
Windows 用户专属方案: 在运行 main.py 前,先在 PowerShell 中执行:
$env:PYTHONIOENCODING="utf-8"
然后再运行 Python 命令。这是 Windows 控制台默认编码与 ADB Keyboard 通信不一致导致的经典问题。
7. 总结:从“能用”到“好用”的关键认知
Open-AutoGLM 的价值,远不止于“自动点手机”。它代表了一种新的交互范式:以意图为中心,而非以操作为中心。
- 你不再需要学习 ADB 命令、不再需要写 XPath、不再需要维护脆弱的坐标脚本。你只需要清晰地表达“我想做什么”。
- 它的智能体现在对不确定性的包容:界面改版、网络波动、弹窗干扰,都不再是流程的终点,而是触发重新规划的信号。
- 它的开放性在于架构:控制端(Open-AutoGLM)、执行端(ADB/手机)、决策端(VLM服务)三者解耦。你可以自由更换更强大的模型,或接入自研的视觉模块。
当然,它也有边界:目前主要适配主流APP,对极小众或深度定制的企业APP支持有限;复杂长流程(如跨APP协同)仍需分步指令。但作为2024年最成熟的开源手机AI Agent框架,它已经把移动自动化的门槛,降到了一个普通开发者伸手可及的高度。
现在,你已经拥有了完整的知识链条:从环境搭建、设备配对、指令编写,到问题诊断、效率优化。下一步,就是打开终端,输入那行命令,亲眼看着你的手机,第一次真正“听懂”你的话。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐

所有评论(0)