news 2026/2/13 13:24:56

Open-AutoGLM如何实现自动关注抖音号?真实任务部署案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Open-AutoGLM如何实现自动关注抖音号?真实任务部署案例

Open-AutoGLM如何实现自动关注抖音号?真实任务部署案例

1. 什么是Open-AutoGLM:手机端AI Agent的“大脑”与“手眼”

Open-AutoGLM不是一款单一模型,而是一套面向安卓设备的端云协同AI智能体框架。它由智谱开源,核心目标很实在:让大模型真正“看得见、想得清、动得了”——看懂手机屏幕、理解用户意图、再精准操控设备完成任务。

你可能用过语音助手或自动化脚本,但它们往往依赖固定规则或预设路径。Open-AutoGLM不同:它把视觉语言模型(VLM)作为“眼睛和大脑”,把ADB(Android Debug Bridge)当作“手臂”,形成一个闭环的感知-决策-执行系统。用户不需要写一行代码,也不需要记住按钮位置,只要说一句“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”,整个流程就自动跑起来了。

这个框架背后有两个关键角色:

  • AutoGLM-Phone:是运行在服务端的推理引擎,负责接收截图、解析界面、生成操作步骤;
  • Phone Agent:是部署在本地控制端的协调中枢,它连接手机、截取屏幕、发送指令、验证结果,并在敏感操作(如登录、支付、关注)前主动暂停,等待人工确认。

换句话说,Open-AutoGLM不是“教手机做事”,而是给手机配了一个能看会想、手脚麻利、还懂得分寸的AI助理。

2. 真实任务拆解:从一句话到完成关注的全过程

我们以标题中的任务为例:“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”——这看似简单的一句话,背后其实包含5个关键阶段。Phone Agent不会跳步,而是像真人一样一步步推进:

2.1 意图识别与任务分解

AI首先将自然语言指令解析为结构化任务树:

  • 启动抖音App(若未运行)
  • 进入搜索页(点击顶部搜索框)
  • 输入抖音号“dycwo11nt61d”
  • 在搜索结果中定位目标账号卡片
  • 点击“关注”按钮

这个过程不依赖关键词匹配,而是通过VLM理解当前界面语义。比如它能区分“搜索框”和“用户名输入框”,也能识别“关注”按钮在不同UI风格下的视觉变体(红色+“关注”文字 / 灰色+“+关注”图标 / 悬浮按钮等)。

2.2 屏幕感知与元素定位

每执行一步前,Phone Agent都会调用ADB截取当前屏幕(adb shell screencap -p),将图片和OCR文本一起发给AutoGLM-Phone服务端。模型输出的是带坐标的可操作元素列表,例如:

{ "elements": [ {"id": "search_bar", "x": 120, "y": 85, "width": 400, "height": 60, "text": "搜索"}, {"id": "user_card_1", "x": 50, "y": 320, "width": 600, "height": 180, "text": "dycwo11nt61d · 原创美食分享"}, {"id": "follow_btn", "x": 520, "y": 450, "width": 120, "height": 48, "text": "关注"} ] }

注意:坐标是绝对像素值,适配不同分辨率手机;text字段是OCR识别结果,用于语义对齐。

2.3 安全执行与人工接管机制

当识别到“关注”按钮时,系统不会直接点击。它会触发内置的敏感操作确认流程

  • 在控制台打印提示:“检测到关注操作,是否继续?[y/N]”
  • 若用户回车确认,才执行adb shell input tap 580 474
  • 若是登录页或验证码弹窗,系统自动暂停,并推送截图到指定微信/钉钉群,支持远程人工接管

这种设计不是技术妥协,而是工程落地的关键——它让自动化既高效,又可控、可审计。

2.4 多轮交互与状态校验

真实场景中,网络延迟、页面加载、弹窗干扰都可能导致失败。Phone Agent采用“执行→校验→重试”三段式逻辑:

  • 执行点击后,立即截屏
  • 检查新界面是否出现“已关注”文字或按钮变灰
  • 若未命中预期状态,最多重试2次;超时则报错并返回当前截图供排查

这种鲁棒性设计,让它能在模拟器、真机、不同安卓版本上稳定运行,而不是只在Demo视频里流畅。

3. 本地控制端部署:四步打通电脑与手机

部署的核心思路是:本地电脑做“指挥官”,云端服务做“参谋”,安卓手机做“士兵”。下面所有操作均在Windows/macOS本地终端完成,无需在手机上安装额外APP(除ADB Keyboard外)。

3.1 环境准备:让电脑认识你的手机

先确保基础链路畅通:

  • ADB工具安装:从Android SDK Platform-Tools下载,解压后配置环境变量。
    • Windows:sysdm.cpl → 高级 → 环境变量 → 系统变量Path → 新增ADB路径
    • macOS:在~/.zshrc中添加export PATH=$PATH:~/Downloads/platform-tools
  • 验证ADB:终端输入adb version,应显示版本号;输入adb devices,首次连接需在手机上授权调试。

重要提醒:ADB Keyboard不是可选组件。它是唯一能通过ADB输入中文的可靠方案。安装后务必在手机“设置→语言与输入法”中将其设为默认,否则搜索时无法输入抖音号。

3.2 手机端设置:开启“被操控权限”

三步解锁安卓设备的自动化能力:

  1. 开启开发者模式:设置 → 关于手机 → 连续点击“版本号”7次
  2. 启用USB调试:设置 → 开发者选项 → 打开“USB调试”(勾选“USB调试(安全设置)”更佳)
  3. 授权调试设备:首次用USB连接时,手机弹出“允许USB调试吗?”对话框,勾选“始终允许”,再点确定

完成这三步后,adb devices命令应返回类似ZY322KDL9F device的设备ID。如果显示unauthorized,说明授权未通过,请检查手机弹窗。

3.3 控制端代码部署:轻量级Python服务

Open-AutoGLM的控制端极简,仅需三行命令:

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

依赖中关键组件说明:

  • adbutils:替代原生adb命令,提供Python API封装,稳定性更高
  • Pillow:处理截图缩放与格式转换(服务端VLM通常要求512×512输入)
  • requests:与云端AutoGLM-Phone API通信

安装完成后,可直接运行示例测试:

python examples/test_adb.py --device-id ZY322KDL9F

该脚本会自动截屏、保存为screen.png,验证ADB链路是否正常。

3.4 连接方式选择:USB稳如磐石,WiFi灵活自由

连接方式适用场景设置命令注意事项
USB直连开发调试、高可靠性任务adb devices无需网络,延迟最低,推荐首次部署使用
WiFi无线远程办公、多设备管理adb tcpip 5555adb connect 192.168.1.100:5555首次需USB连接执行tcpip,手机与电脑必须在同一局域网

实测建议:WiFi连接时,将手机Wi-Fi频段切换至2.4GHz(而非5GHz),可显著降低ADB掉线率。若仍不稳定,可在main.py中增加重连逻辑:conn.reconnect_on_failure = True

4. 云端服务对接:让AI“看见”你的手机屏幕

Open-AutoGLM的智能来自云端的AutoGLM-Phone服务。它不是普通API,而是一个专为手机自动化优化的视觉语言模型服务,需自行部署或使用托管实例。

4.1 服务端要求与启动方式

官方推荐使用vLLM加速推理,最低配置建议:

  • GPU:NVIDIA RTX 3090(24GB显存)或A10G(24GB)
  • 模型:autoglm-phone-9b(9B参数,支持1024上下文)
  • 启动命令示例:
python -m vllm.entrypoints.openai.api_server \ --model zai-org/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 1024 \ --dtype half \ --port 8800

关键参数说明:

  • --max-model-len 1024:必须与客户端--max-length一致,否则截图编码失败
  • --dtype half:启用FP16,显存占用减半,推理速度提升40%
  • --port 8800:映射到公网时,需在云服务器防火墙放行该端口

4.2 客户端调用:一条命令启动全流程

一切就绪后,只需一条命令即可发起任务:

python main.py \ --device-id ZY322KDL9F \ --base-url http://121.43.128.77:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

参数详解:

  • --device-idadb devices返回的设备序列号,或WiFi地址192.168.1.100:5555
  • --base-url:指向你部署的vLLM服务地址,注意末尾必须带/v1
  • 指令字符串:支持中文,长度建议<120字,避免歧义(如不说“点那个红按钮”,而说“点击关注按钮”)

执行后,你会看到实时日志:

[INFO] 截取屏幕 → 已发送至服务端 [INFO] 服务端返回:定位到搜索框(x=120,y=85) [INFO] 执行点击 → adb shell input tap 120 85 [INFO] 输入文本 “dycwo11nt61d” → 通过ADB Keyboard [INFO] 检测到用户卡片 → 文本匹配度92% [INFO] 敏感操作确认:检测到“关注”按钮,是否执行?[y/N]

y回车,即完成最终点击。

4.3 Python API集成:嵌入你自己的工作流

如果你需要将自动化能力集成进内部系统,Open-AutoGLM提供了干净的Python接口:

from phone_agent.agent import PhoneAgent from phone_agent.adb import ADBConnection # 初始化连接 conn = ADBConnection() conn.connect("ZY322KDL9F") # 创建AI代理 agent = PhoneAgent( device_id="ZY322KDL9F", base_url="http://121.43.128.77:8800/v1", model_name="autoglm-phone-9b" ) # 执行任务(支持异步) result = agent.run("打开抖音,搜索并关注抖音号dycwo11nt61d") print(f"任务状态:{result.status},耗时:{result.duration:.1f}s")

这个API设计屏蔽了ADB细节和网络重试逻辑,你只需关注“要做什么”,不用操心“怎么做”。

5. 故障排查指南:90%的问题都出在这三个环节

即使按教程操作,也常遇到“卡住”“无响应”“点错位置”。根据真实部署经验,问题集中于以下三类:

5.1 ADB连接类问题(占比52%)

现象根本原因解决方案
adb devices显示unauthorized手机未授权调试或授权被拒绝断开USB,关闭开发者选项再重开,重新连接并勾选“始终允许”
WiFi连接后adb shell报错device offline手机休眠导致ADB断连在开发者选项中开启“不锁定屏幕”和“保持USB调试连接”
adb shell input tap无反应ADB Keyboard未设为默认输入法进入手机“设置→语言与输入法”,手动切换并重启ADB

快速自检命令
adb shell getprop ro.build.version.release→ 检查安卓版本(需≥7.0)
adb shell dumpsys window windows \| grep -E 'mCurrentFocus|mFocusedApp'→ 查看当前前台应用

5.2 服务端通信类问题(占比33%)

现象根本原因解决方案
Connection refused云服务器防火墙未放行端口sudo ufw allow 8800(Ubuntu)或检查安全组规则
模型返回乱码或空响应vLLM启动参数--max-model-len与客户端不一致统一设为1024,重启服务
截图上传超时服务端显存不足导致图像编码卡顿降低截图分辨率:在main.py中设置--screenshot-scale 0.5

5.3 UI适配类问题(占比15%)

这是最隐蔽也最难复现的问题:

  • 抖音版本差异:v28.0+将搜索框移至首页右上角,旧版在底部导航栏。解决方案是让VLM学习多版本UI特征,Open-AutoGLM已内置3个主流版本模板。
  • 深色模式干扰:部分按钮在深色下对比度低,OCR识别失败。临时方案:adb shell settings put secure accessibility_display_daltonizer_enabled 0关闭色觉矫正。
  • 键盘遮挡:输入时软键盘弹出,覆盖搜索按钮。框架已自动处理:先收起键盘(adb shell input keyevent 4),再执行点击。

6. 总结:这不是玩具,而是可落地的移动自动化生产力工具

回顾整个“自动关注抖音号”任务,Open-AutoGLM的价值远不止于完成一个动作:

  • 它把非结构化指令转化为结构化操作:用户说人话,系统输出像素级坐标,中间没有规则引擎硬编码;
  • 它用多模态理解替代UI自动化脚本:不依赖控件ID或XPath,面对抖音改版也能自适应;
  • 它把安全控制嵌入执行链路:每一次敏感操作都留有确认入口,符合企业级自动化审计要求;
  • 它提供生产就绪的工程封装:从ADB连接管理、截图压缩、重试策略到日志追踪,全部开箱即用。

当然,它也有明确边界:目前不支持跨App跳转后的上下文继承(如“用淘宝搜完商品,把链接发到微信”),也不处理需要生物识别的场景。但这些恰恰指明了演进方向——而Open-AutoGLM的开源架构,正为社区贡献留出了清晰路径。

如果你正在寻找一个不依赖App内SDK、不越狱、不Root、纯标准安卓协议的移动AI自动化方案,Open-AutoGLM值得你花两小时部署验证。它可能不会取代专业RPA,但一定能成为你手机自动化工作流中最灵活的那一环。


获取更多AI镜像

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

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

Scratch发明者介绍

Scratch 的发明者Scratch 是由麻省理工学院媒体实验室&#xff08;MIT Media Lab&#xff09;的终身幼儿园小组&#xff08;Lifelong Kindergarten Group&#xff09;开发的。该项目的领导者是米切尔雷斯尼克&#xff08;Mitchel Resnick&#xff09;&#xff0c;他是麻省理工学…

作者头像 李华
网站建设 2026/2/11 17:34:44

语音输入新方式!Seaco Paraformer实时录音体验

语音输入新方式&#xff01;Seaco Paraformer实时录音体验 你有没有过这样的时刻&#xff1a;开会时手忙脚乱记笔记&#xff0c;却漏掉关键结论&#xff1b;采访中一边听一边打字&#xff0c;结果语速一快就错漏百出&#xff1b;写方案想到精彩点&#xff0c;刚张嘴说半句&…

作者头像 李华
网站建设 2026/2/10 18:42:19

Qwen3-Embedding-4B性能报告:MTEB榜单第一实测部署

Qwen3-Embedding-4B性能报告&#xff1a;MTEB榜单第一实测部署 1. Qwen3-Embedding-4B&#xff1a;为什么它值得你立刻关注 如果你正在为搜索、推荐、知识库或RAG系统寻找一个真正好用的嵌入模型&#xff0c;Qwen3-Embedding-4B可能就是那个“刚刚好”的答案——不是最大&…

作者头像 李华
网站建设 2026/2/12 10:24:32

为什么Open-AutoGLM连接总失败?ADB调试部署教程解析

为什么Open-AutoGLM连接总失败&#xff1f;ADB调试部署教程解析 你是不是也遇到过这样的情况&#xff1a;兴冲冲地克隆了Open-AutoGLM仓库&#xff0c;配好了环境&#xff0c;手机也开了USB调试&#xff0c;可一运行python main.py就卡在“连接设备失败”或者直接报错device n…

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

为什么结果带标签?SenseVoiceSmall rich_transcription后处理详解

为什么结果带标签&#xff1f;SenseVoiceSmall rich_transcription后处理详解 1. 你听到的不只是文字&#xff0c;而是“有情绪的声音” 打开 SenseVoiceSmall 的 WebUI&#xff0c;上传一段录音&#xff0c;点击识别——几秒后&#xff0c;屏幕上跳出的不是干巴巴的一行字&a…

作者头像 李华
网站建设 2026/2/13 8:54:57

YOLOv9 vs 其他版本:哪个更适合新手?

YOLOv9 vs 其他版本&#xff1a;哪个更适合新手&#xff1f; 目标检测是计算机视觉中最基础也最实用的任务之一&#xff0c;而YOLO系列模型凭借“快、准、易部署”的特点&#xff0c;成为无数初学者踏入AI实战的第一站。但当你打开GitHub&#xff0c;面对YOLOv5、v6、v7、v8、…

作者头像 李华