实战演示:用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 的博主并关注他!"

执行过程中,你会看到清晰的三段式日志:

  1. 截图分析阶段
    AI 会先截取当前手机屏幕,发送给模型服务。日志显示:

    [INFO] Captured screenshot: /tmp/screen_123456.png
    [INFO] Sending to VLM for analysis...
    
  2. 意图规划阶段
    模型返回结构化思考链,例如:

    ==================================================
    思考过程:
    --------------------------------------------------
    当前屏幕显示手机桌面。任务要求打开抖音,需先找到抖音图标并点击。
    --------------------------------------------------
    执行的动作:
    {
      "action": "Tap",
      "element": [320, 850]
    }
    ==================================================
    
  3. 动作执行与验证阶段
    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 为例)

  1. 手机与电脑连同一WiFi
  2. 手机:设置 → 开发者选项 → 无线调试 → 开启 → 点击“使用配对码配对设备”
  3. 电脑终端执行:
    adb pair 192.168.1.100:37845  # 使用手机屏幕上显示的IP和端口
    
    输入配对码后,再执行:
    adb connect 192.168.1.100:5555
    
  4. 验证: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

排查顺序

  1. 检查 --base-url 是否拼写错误(注意末尾是否有 /v1
  2. 如果是本地 vLLM,确认 python -m vllm.entrypoints.openai.api_server 是否仍在运行(不要关闭启动它的终端)
  3. 如果是云端服务,检查 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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐