news 2026/4/29 22:35:48

AutoGLM-Phone验证码场景处理?人工介入机制实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AutoGLM-Phone验证码场景处理?人工介入机制实战教程

AutoGLM-Phone验证码场景处理?人工介入机制实战教程

1. Open-AutoGLM:智谱开源的手机端AI Agent框架

你有没有想过,让AI帮你操作手机——不只是发个消息、点个赞,而是像真人一样理解屏幕内容、完成复杂任务?比如:“打开小红书搜美食探店,收藏前三条笔记”,或者“登录我的微博账号,转发那条抽奖微博”。听起来像科幻片?但今天,这一切已经可以实现。

这背后的核心就是Open-AutoGLM——由智谱AI开源的手机端AI Agent框架。它不是简单的自动化脚本,而是一个真正具备“看”和“动”能力的智能体。通过视觉语言模型(VLM)理解手机屏幕上的图文信息,再结合自然语言指令进行任务规划,最后调用ADB(Android Debug Bridge)完成点击、滑动、输入等操作,形成一个完整的“感知-决策-执行”闭环。

更关键的是,这套系统支持在敏感操作或验证码等AI无法直接处理的环节中,自动暂停并交由人工接管。这意味着你既能享受自动化带来的效率提升,又能确保账户安全与操作可控。本文将带你从零开始部署AutoGLM-Phone,并重点实战演示如何在验证码场景下实现无缝的人工介入。

2. AutoGLM-Phone工作原理与核心能力

2.1 多模态理解 + 自动化控制 = 真正的手机AI助手

传统的自动化工具如Tasker或Appium,依赖预设规则或UI控件识别,一旦界面稍有变化就容易失败。而AutoGLM-Phone完全不同:

  • 视觉语言模型(VLM):模型能“看到”整个手机屏幕截图,并理解上面的文字、按钮、布局结构。
  • 自然语言驱动:你只需要说“帮我查一下明天北京飞上海的航班”,AI就能拆解任务:打开航旅APP → 输入出发地/目的地 → 设置日期 → 查找结果。
  • 基于ADB的操作执行:所有动作都通过ADB发送指令完成,无需Root权限,兼容大多数安卓设备。

整个流程就像一个远程操控的“数字分身”,你看什么,它就看什么;你想做什么,它就替你动手。

2.2 敏感操作保护与人工介入机制

尽管AI越来越聪明,但在涉及隐私和安全的关键节点上,仍需人类把关。AutoGLM-Phone内置了人工介入机制(Human-in-the-loop),特别适用于以下场景:

  • 登录时需要短信验证码
  • 支付确认弹窗
  • 账号异常提示需手动验证
  • 涉及敏感权限申请

当系统检测到这类情况时,会自动暂停执行,向用户发出提醒:“检测到验证码输入框,请手动输入后按回车继续。” 只有收到确认信号后,AI才会继续后续步骤。这种设计既保证了自动化效率,又守住了安全底线。

此外,系统还支持远程WiFi调试,无需插线也能连接设备,极大提升了开发与使用的灵活性。

3. 本地环境搭建与真机连接全流程

要让AutoGLM-Phone跑起来,我们需要三部分协同工作:

  1. 云服务器:运行vLLM推理服务(本文假设已部署)
  2. 本地电脑:作为控制端,运行Open-AutoGLM代码,连接手机并调用云端模型
  3. 安卓手机:被控设备,开启ADB调试模式

下面我们聚焦于第2和第3部分——如何在本地配置控制端并与真实手机建立连接。

3.1 硬件与软件准备清单

项目要求
操作系统Windows 或 macOS
Python版本建议 3.10+
安卓设备Android 7.0以上(真机或模拟器均可)
ADB工具必须安装并配置环境变量

什么是ADB?
ADB(Android Debug Bridge)是Android官方提供的调试桥接工具,允许开发者通过电脑命令行对手机进行操作,如截图、点击、安装应用等。AutoGLM-Phone正是通过ADB实现对手机的完全控制。

ADB安装与环境配置

Windows 用户:

  1. 下载 Android SDK Platform Tools 并解压。
  2. Win + R输入sysdm.cpl打开系统属性。
  3. 进入“高级”→“环境变量”→在“系统变量”中找到Path→ 编辑 → 添加解压后的platform-tools路径(例如:C:\platform-tools)。
  4. 打开命令提示符,输入:
    adb version
    若显示版本号,则说明配置成功。

macOS 用户:

在终端中执行以下命令(假设文件解压在~/Downloads/platform-tools):

export PATH=${PATH}:~/Downloads/platform-tools

为永久生效,可将该行添加到~/.zshrc~/.bash_profile文件中。

3.2 手机端设置:开启调试与输入法

为了让电脑能控制手机,必须完成以下三步设置:

  1. 开启开发者模式
    进入「设置」→「关于手机」→ 连续点击“版本号”7次,直到提示“您已进入开发者模式”。

  2. 启用USB调试
    返回设置主菜单 →「开发者选项」→ 开启“USB调试”。

  3. 安装ADB Keyboard输入法

    • 下载 ADB Keyboard APK 并安装。
    • 进入「设置」→「语言与输入法」→「默认键盘」→ 切换为“ADB Keyboard”。

为什么需要ADB Keyboard?
因为ADB本身不能直接输入中文或特殊字符。ADB Keyboard是一个虚拟输入法,接收来自ADB的文本指令并“打字”出来,相当于给AI配了个“键盘手”。

3.3 部署Open-AutoGLM控制端

现在我们来部署本地控制程序。

# 1. 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装依赖 pip install -r requirements.txt pip install -e .

注意:某些依赖包可能因平台差异安装失败,建议使用虚拟环境(venv)隔离管理。

安装完成后,你就拥有了一个本地的AI代理控制器,接下来只需连接设备即可开始使用。

4. 设备连接方式详解:USB vs WiFi

4.1 USB连接(推荐初学者)

最稳定的方式是通过数据线连接手机与电脑。

  1. 使用USB线连接手机。
  2. 手机弹出“允许USB调试?”对话框时,点击“允许”。
  3. 在命令行运行:
    adb devices
    输出应类似:
    List of devices attached 123456789abc device

只要看到设备ID后跟device状态,说明连接成功。

4.2 WiFi无线连接(适合远程控制)

如果你希望摆脱数据线束缚,可以通过WiFi连接设备。

前提:首次必须用USB连接一次,用于开启TCP/IP模式。

# 第一步:通过USB启用ADB over TCP/IP adb tcpip 5555 # 第二步:断开USB,连接同一WiFi后,用IP连接 adb connect 192.168.x.x:5555

其中192.168.x.x是你的手机IP地址,可在「设置」→「WLAN」→ 当前网络详情中查看。

连接成功后,即使拔掉USB线,依然可以通过WiFi发送指令。这对长时间运行任务非常有用。

5. 启动AI代理并执行任务

一切准备就绪,现在让我们真正“唤醒”这个AI手机助手。

5.1 命令行方式启动任务

在Open-AutoGLM根目录下运行:

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

参数说明:

  • --device-id:通过adb devices获取的设备ID
  • --base-url:你的云服务器公网IP和端口(如8800),后面加上/v1
  • --model:指定使用的模型名称
  • 最后的字符串:你要下达的自然语言指令

执行后,你会看到AI逐步分析屏幕、做出决策、执行操作的日志输出。整个过程无需人工干预,直到遇到验证码或其他阻塞点。

5.2 Python API方式集成调用

如果你想将AutoGLM-Phone集成进自己的项目中,也可以使用其提供的Python API。

from phone_agent.adb import ADBConnection, list_devices # 创建连接管理器 conn = ADBConnection() # 连接远程设备 success, message = conn.connect("192.168.1.100:5555") print(f"连接状态: {message}") # 列出已连接设备 devices = list_devices() for device in devices: print(f"{device.device_id} - {device.connection_type.value}") # 在USB设备上启用TCP/IP(便于后续无线连接) success, message = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备IP: {ip}") else: print(f"启用TCP/IP失败: {message}") # 断开连接 conn.disconnect("192.168.1.100:5555")

这种方式更适合做批量设备管理或多任务调度。

6. 实战:验证码场景下的人工介入机制

这才是本文的重点——当AI碰上验证码,该怎么办?

6.1 场景还原:登录需要短信验证码

假设你要让AI帮你登录某个APP,流程如下:

  1. 打开APP
  2. 点击“登录”
  3. 输入手机号
  4. 点击“获取验证码”
  5. 等待短信到达
  6. 手动输入验证码
  7. 提交登录

前四步AI都可以自动完成,但第6步必须由你亲自输入。这时,人工介入机制就派上了用场。

6.2 AI如何识别验证码输入时机?

AutoGLM-Phone通过以下方式判断是否进入“等待人工输入”状态:

  • 屏幕中出现“验证码”、“请输入短信码”、“Verification Code”等关键词
  • 检测到输入框处于激活状态但无内容
  • 上一轮操作为“点击获取验证码”且时间超过10秒未继续

一旦满足条件,AI会自动暂停,并在控制台输出:

[INFO] 检测到验证码输入场景,请手动输入验证码后按回车键继续...

此时你可以拿起手机,查看短信,正常输入验证码。完成后回到电脑终端,按下回车键,AI将继续执行后续操作(如点击“登录”按钮)。

6.3 如何自定义人工介入触发条件?

你还可以根据具体需求修改源码中的判断逻辑。相关代码位于phone_agent/planner.py中的should_pause_for_human()函数:

def should_pause_for_human(ocr_result: str, last_action: str) -> bool: keywords = ["验证码", "verification", "code", "动态密码"] if any(kw in ocr_result for kw in keywords): return True if "send_code" in last_action and time.time() - last_action_time > 15: return True return False

你可以增加更多关键词,或调整超时时间,使其更贴合你的业务场景。

7. 常见问题排查指南

7.1 连接类问题

问题现象可能原因解决方案
adb devices显示 unauthorized未授权调试手机上确认“允许USB调试”对话框
adb connect失败IP错误或端口未开放检查手机IP、确保在同一WiFi、防火墙放行5555端口
连接后频繁断开WiFi不稳定改用USB连接,或重启ADB服务

7.2 模型与推理问题

问题现象可能原因解决方案
模型响应慢或超时云服务器显存不足检查vLLM启动参数,适当降低max-model-len
输出乱码或无效动作prompt工程不佳或模型微调不足尝试更换指令表述,如加入“请一步步思考”
无法识别按钮文字OCR精度问题确保屏幕亮度足够,避免反光或模糊截图

7.3 输入法失效问题

  • 如果发现无法输入中文,请检查:
    • ADB Keyboard是否设为默认输入法
    • 是否在其他输入法中误触切换回原生键盘
    • 可尝试重启ADB服务:
      adb kill-server adb start-server

获取更多AI镜像

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

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

Glyph游戏剧情设计:长脚本处理系统部署实战

Glyph游戏剧情设计:长脚本处理系统部署实战 1. 引言:当游戏剧情遇上超长文本处理 你有没有遇到过这样的情况?辛辛苦苦写了一万字的游戏剧情脚本,结果AI模型一读就卡住,要么直接截断,要么内存爆掉。传统语…

作者头像 李华
网站建设 2026/4/29 15:14:43

用YOLOv12镜像30分钟搞定COCO数据集训练

用YOLOv12镜像30分钟搞定COCO数据集训练 你有没有经历过这样的场景:满怀期待地准备开始训练一个目标检测模型,结果卡在第一步——下载预训练权重?进度条纹丝不动,日志里不断重试,显卡空转,时间一分一秒流逝…

作者头像 李华
网站建设 2026/4/27 23:31:17

Flutter for OpenHarmony入门实战:手把手教你打造一个交互式计数器应用

Flutter 入门实战:手把手教你打造一个交互式计数器应用 在 Flutter 开发中,状态管理是最核心的概念之一。为了帮助大家理解如何创建一个能够响应用户操作的界面,本文将通过一个经典的“计数器(Counter)”案例&#xf…

作者头像 李华
网站建设 2026/4/16 14:27:17

【性能测试】15_JMeter _JMeter插件安装使用

文章目录一、插件管理包工具安装和删除1.1 安装1.2 删除二、插件安装方法2.1 安装插件2.2 查看已安装的插件三、常用插件3.1 Concurrency Thread Group 线程组3.2 Transactions per Second 每秒事务数3.3 PerfMon Metrics Collector 性能指标收集器3.3.1 实现步骤3.3.2 windows…

作者头像 李华
网站建设 2026/4/29 16:48:50

StatsBomb开放数据终极指南:免费足球数据分析完全手册

StatsBomb开放数据终极指南:免费足球数据分析完全手册 【免费下载链接】open-data Free football data from StatsBomb 项目地址: https://gitcode.com/gh_mirrors/ope/open-data 想要深入了解足球战术却苦于没有专业数据?StatsBomb开放数据平台为…

作者头像 李华
网站建设 2026/4/23 12:18:00

高效语音转文字+情感事件识别|SenseVoice Small镜像快速上手指南

高效语音转文字情感事件识别|SenseVoice Small镜像快速上手指南 1. 快速入门:从零开始使用SenseVoice Small 你是否正在寻找一个既能精准识别语音内容,又能捕捉说话人情绪和背景声音的工具?如果你的答案是“是”,那这…

作者头像 李华