宿州市网站建设_网站建设公司_跨域_seo优化
2026/1/20 4:55:56 网站建设 项目流程

Open-AutoGLM任务执行流程拆解,AI是如何思考的

@TOC


1. 引言:当AI开始“看”和“操作”手机

在传统的人机交互模式中,用户需要手动点击、滑动、输入来完成手机上的任务。而随着大模型与多模态技术的发展,一种全新的交互范式正在兴起——用自然语言指挥AI代理自动完成手机操作

Open-AutoGLM 是由智谱AI开源的手机端AI Agent框架,其核心项目 AutoGLM-Phone 能够通过视觉语言模型理解屏幕内容,并借助 ADB(Android Debug Bridge)实现对安卓设备的自动化控制。用户只需说一句:“打开小红书搜索美食”,系统就能自动解析意图、识别界面元素、规划操作路径并执行点击、滑动、输入等动作,全程无需人工干预。

本文将深入拆解 Open-AutoGLM 的任务执行全流程,揭示 AI 是如何“思考”的——从接收指令到完成任务,每一步背后的技术逻辑与工程实现。


2. 系统架构概览

2.1 整体架构组成

Open-AutoGLM 的运行依赖于三个关键组件的协同工作:

  • 客户端(Control Client):部署在本地电脑或服务器上,负责连接设备、捕获屏幕、发送指令。
  • AI 模型服务(Model Server):提供视觉语言推理能力,接收屏幕截图和用户指令,输出下一步操作建议。
  • 安卓设备(Target Device):被控手机,通过 ADB 接收操作命令并反馈状态。

三者之间的数据流如下:

用户指令 → 客户端 → 屏幕截图 + 指令 → 模型服务 → 操作决策 → ADB 命令 → 手机执行

整个过程形成一个闭环控制系统,在每次迭代中不断感知、决策、执行,直到任务完成。

2.2 核心技术栈

组件技术
视觉理解多模态大模型(AutoGLM-Phone-9B)
设备控制ADB 协议(USB/WiFi)
输入模拟ADB Keyboard
模型推理vLLM / SGLang / ModelScope API
通信协议OpenAI 兼容 RESTful API

3. 任务执行生命周期详解

Open-AutoGLM 的任务执行遵循一个标准的“感知-规划-行动”循环。我们以一条典型指令为例进行拆解:

“打开抖音,搜索抖音号为 dycwo11nt61d 的博主并关注他!”

该任务涉及多个应用跳转、UI识别、文本输入和按钮点击,完整流程可分为以下几个阶段。

3.1 阶段一:初始化与环境准备

在任务启动前,系统需完成以下准备工作:

  1. 设备连接

    • 使用adb devicesadb connect <IP>:5555确认设备在线。
    • 获取设备分辨率、Android 版本等基本信息,用于后续坐标映射。
  2. ADB Keyboard 启用

    • 将默认输入法切换为 ADB Keyboard,确保可通过 ADB 发送文本输入命令:
      adb shell ime set com.android.adbkeyboard/.AdbIME
  3. 启动主程序

    • 运行main.py,传入设备ID、模型服务地址和用户指令。
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://localhost:8000/v1 \ --model "autoglm-phone-9b" \ "打开抖音..."

此时系统进入任务执行主循环。


3.2 阶段二:屏幕感知与多模态输入构建

每一轮决策前,系统首先执行“感知”步骤:

  1. 截取当前屏幕

    adb exec-out screencap -p > screen.png

    输出为一张 PNG 图像,作为视觉输入。

  2. 获取辅助信息

    • 当前包名(adb shell dumpsys window windows \| grep mCurrentFocus
    • 界面层次结构(可选,通过 UI Automator 获取)
  3. 构建多模态 Prompt将以下信息打包成模型输入:

    • 用户原始指令
    • 上下文历史(已执行的操作)
    • 当前屏幕图像(Base64 编码)
    • 可选的元数据(如应用名称、时间戳)

示例 prompt 结构:

{ "messages": [ { "role": "user", "content": [ {"type": "text", "text": "请根据当前界面继续执行:打开抖音搜索指定博主并关注"}, {"type": "image_url", "image_url": "data:image/png;base64,..."} ] } ], "model": "autoglm-phone-9b" }

3.3 阶段三:模型推理与操作决策生成

模型服务接收到请求后,执行以下处理:

3.3.1 视觉-语言联合理解

AutoGLM-Phone-9B 是一个专为移动端GUI操作优化的多模态模型,具备以下能力:

  • UI元素识别:识别按钮、输入框、图标、标题栏等常见组件。
  • 语义理解:结合上下文理解“搜索”、“关注”等动词的操作含义。
  • 空间定位:输出目标区域的归一化坐标(x, y),便于映射到实际像素。
3.3.2 操作类型分类

模型输出格式为结构化 JSON,包含操作类型和参数:

{ "action": "tap", "coordinates": [0.78, 0.23], "description": "点击首页底部的‘发现’标签" }

支持的操作类型包括:

操作参数说明
tap归一化坐标 (x, y)
swipe起点(x1,y1),终点(x2,y2),持续时间(ms)
type要输入的文本字符串
press_back无参数,返回上一页
wait等待若干秒再继续
finish任务已完成
3.3.3 决策合理性校验

系统会对模型输出进行安全过滤:

  • 若操作位于敏感区域(如支付按钮、隐私设置),触发确认机制。
  • 对重复操作、无效路径进行去重和中断判断。
  • 设置最大步数限制(默认 20 步),防止无限循环。

3.4 阶段四:ADB指令执行与反馈

客户端收到模型输出后,将其转换为具体的 ADB 命令并执行:

示例 1:点击操作
# 将归一化坐标转为像素(假设分辨率为 1080x2340) x = int(0.78 * 1080) = 842 y = int(0.23 * 2340) = 538 adb shell input tap 842 538
示例 2:文本输入
# 使用 ADB Keyboard 输入 adb shell am broadcast -a ADB_INPUT_TEXT --es msg "dycwo11nt61d"
示例 3:滑动操作
adb shell input swipe 540 2000 540 500 300 # 快速上滑

执行完成后,系统等待 1–2 秒让界面刷新,然后重新截屏,进入下一轮循环。


3.5 阶段五:任务终止条件判断

系统在以下任一条件下结束任务:

  1. 模型返回finish操作

    • 表示任务已成功完成,例如:“已成功关注目标用户”。
  2. 达到最大尝试次数

    • 默认最多执行 20 步,避免陷入死循环。
  3. 检测到错误状态

    • 如应用崩溃、页面加载失败、长时间无变化。
  4. 用户主动中断

    • Ctrl+C 终止进程。

任务结束后,系统输出执行日志,记录每一步的操作、耗时和结果。


4. 关键技术细节剖析

4.1 多模态输入的空间对齐机制

由于模型输出的是归一化坐标(0~1范围),而 ADB 需要绝对像素值,因此必须进行精确的坐标映射。

公式如下:

$$ x_{pixel} = x_{norm} \times width \ y_{pixel} = y_{norm} \times height $$

此外,还需考虑不同设备的状态栏高度导航栏遮挡问题。系统通过dumpsys display获取有效显示区域,避免误触系统UI。

4.2 模型提示工程设计

为了让模型更准确地理解任务,系统采用分层提示策略:

你是一个手机智能助手,请根据用户的自然语言指令和当前屏幕截图, 决定下一步最合适的操作。可选操作包括:tap, swipe, type, press_back, wait, finish。 注意事项: 1. 所有坐标均为归一化(0~1),原点在左上角。 2. 输入文本使用 type 操作。 3. 如果无法继续,请返回 wait 并描述原因。 4. 成功完成任务后返回 finish。 当前任务:打开抖音搜索指定博主并关注 历史操作:[{"action":"launch","app":"com.ss.android.ugc.aweme"}]

这种结构化提示显著提升了模型的决策一致性。

4.3 敏感操作防护机制

为保障用户隐私与安全,系统内置双重保护:

  1. 关键词拦截

    • 检测“付款”、“转账”、“删除账号”等高风险词汇,暂停执行并提示用户确认。
  2. 人工接管模式

    • 在登录、验证码输入等场景,自动退出自动化流程,交由用户手动操作。

可通过配置文件开启/关闭此功能:

security: enable_confirmation: true sensitive_keywords: - 支付 - 验证码 - 登录 - 删除

5. 实际运行案例分析

我们以一条复杂指令为例,观察完整的执行轨迹:

“打开京东,搜索‘iPhone 15’,加入购物车,并跳过登录。”

步骤模型输出ADB 执行状态
1launch com.jingdong.app.malladb shell monkey -p com.jingdong.app.mall -c android.intent.category.LAUNCHER 1
2tap [0.5, 0.1](顶部搜索框)input tap 540 234
3type "iPhone 15"am broadcast -a ADB_INPUT_TEXT --es msg "iPhone 15"
4tap [0.9, 0.1](搜索按钮)input tap 972 234
5tap [0.3, 0.4](第一个商品)input tap 324 936
6tap [0.5, 0.8](加入购物车)input tap 540 1872⚠️ 跳转至登录页
7press_backinput keyevent BACK
8finish——🎉 任务完成

可以看到,当遇到登录拦截时,AI选择退回而非强行操作,体现了良好的容错能力。


6. 总结

Open-AutoGLM 展示了现代AI Agent在移动端的强大潜力。通过对“感知→决策→执行”闭环的精细化设计,它实现了从自然语言到自动化操作的无缝转化。

6.1 技术价值总结

  • 多模态融合:结合视觉与语言理解,真正实现“看得懂、做得对”。
  • 工程落地性强:基于成熟的 ADB 协议,兼容绝大多数安卓设备。
  • 安全性设计周全:敏感操作确认、人工接管机制保障用户隐私。
  • 远程可控性好:支持 WiFi 连接,适用于远程调试与无人值守场景。

6.2 应用前景展望

未来,此类技术可广泛应用于:

  • 无障碍辅助:帮助视障人士操作手机。
  • 自动化测试:替代传统脚本,实现智能化UI测试。
  • 数字员工:在电商、客服等领域执行标准化任务。
  • 智能家居中枢:统一控制多个App实现场景联动。

随着模型轻量化和边缘计算的发展,这类AI Agent有望直接部署在手机端,实现完全离线运行。


获取更多AI镜像

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询