news 2026/2/27 22:24:32

旅行订票全自动!Open-AutoGLM操作携程App实录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
旅行订票全自动!Open-AutoGLM操作携程App实录

旅行订票全自动!Open-AutoGLM操作携程App实录

1. 背景与核心价值

随着大模型技术的演进,AI 正从“对话助手”向“任务执行者”转变。传统的语言模型只能回答问题,而 AI Agent 则能理解环境、规划路径并执行动作。Open-AutoGLM 是由智谱 AI 开源的手机端 AI Agent 框架,基于视觉语言模型(VLM)和 ADB 控制能力,实现了对安卓设备的全自动化操作。

用户只需输入自然语言指令,如“帮我订一张明天北京到上海的高铁票”,系统即可自动完成打开携程 App、搜索车次、选择班次、填写乘客信息、提交订单等全流程操作。这一能力在高频、重复性任务中展现出巨大潜力,尤其适用于出行、购物、社交等场景。

本文将聚焦于使用 Open-AutoGLM 实现携程 App 高铁票自动预订的完整实践过程,涵盖环境搭建、设备连接、指令执行及常见问题处理,帮助开发者快速掌握该框架的核心用法。

2. 技术架构解析

2.1 系统组成与工作流程

Open-AutoGLM 的核心技术栈由三部分构成:视觉理解模块、任务规划引擎、设备控制层

  • 视觉理解模块:通过多模态大模型(如 autoglm-phone-9b)分析手机屏幕截图,识别 UI 元素及其语义(如“出发地输入框”、“查询按钮”)。
  • 任务规划引擎:接收用户指令后,结合当前界面状态,生成可执行的动作序列(Action Plan),例如“点击 + 输入文本 + 滑动”。
  • 设备控制层:通过 ADB(Android Debug Bridge)发送底层命令,实现点击、滑动、输入等操作,并实时获取屏幕反馈。

整个流程形成闭环:

自然语言指令 → 意图解析 → 屏幕感知 → 动作规划 → ADB 执行 → 新界面截图 → 循环直至任务完成

2.2 多模态感知的关键机制

传统自动化脚本依赖固定坐标或控件 ID,难以应对界面变化。而 Open-AutoGLM 使用 VLM 进行动态感知:

  • 每次执行前截取当前屏幕图像;
  • 将图像与历史上下文一起送入 VLM,模型输出当前界面描述;
  • 结合用户目标,推理出下一步最优动作(如“点击‘立即预订’按钮”);
  • 转换为 ADB 命令执行。

这种方式具备良好的泛化能力,即使 App 版本更新导致布局微调,也能自适应调整操作路径。

2.3 安全与人工接管机制

为防止误操作敏感功能(如支付、删除账号),系统内置了双重保护:

  1. 敏感操作确认机制:当检测到涉及资金、隐私的操作时,自动暂停并提示用户确认;
  2. 人工接管接口:支持在验证码输入、登录授权等环节暂停自动化流程,交由用户手动处理后再继续。

此外,所有操作日志均可追溯,便于调试与审计。

3. 实践部署:从零配置到自动订票

3.1 环境准备

硬件与软件要求
项目要求
操作系统Windows / macOS / Linux
Python 版本3.10+(推荐 3.10 或 3.11)
安卓设备Android 7.0+ 真机或模拟器
ADB 工具platform-tools 最新版
网络环境可访问公网 API 服务

注意:若使用本地部署模型,需配备至少 24GB 显存的 GPU。

安装 Python 与依赖

确保已安装 Python 并添加至 PATH:

python --version pip --version

克隆项目并安装依赖:

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

3.2 手机端设置

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

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

  3. 安装 ADB Keyboard
    下载 ADB Keyboard APK 并安装;
    进入「设置 → 语言与输入法 → 虚拟键盘」,启用“ADB Keyboard”作为默认输入法。

启用 ADB Keyboard 后,AI Agent 可通过 ADB 发送文本输入指令,无需依赖系统软键盘。

3.3 设备连接方式

USB 连接(推荐用于调试)

使用数据线连接手机与电脑,在终端运行:

adb devices

正常输出应类似:

List of devices attached ABCDEF1234567890 device

若显示unauthorized,请在手机上确认授权弹窗。

WiFi 远程连接(适合长期运行)

首次需通过 USB 连接启用 TCP/IP 模式:

adb tcpip 5555 adb disconnect adb connect 192.168.x.x:5555

其中192.168.x.x为手机在同一局域网下的 IP 地址(可在「设置 → WLAN → 当前网络详情」中查看)。

验证连接成功:

adb shell echo "connected"

3.4 启动 AI 代理执行订票任务

使用智谱 BigModel 云端服务

注册 BigModel 开放平台 获取 API Key。

执行以下命令启动自动化流程:

python main.py \ --device-id YOUR_DEVICE_ID_OR_IP \ --base-url https://open.bigmodel.cn/api/paas/v4 \ --model "autoglm-phone" \ --apikey "your-bigmodel-api-key" \ "打开携程App,查询明天上午从北京南站到上海虹桥的高铁二等座,选择最早一班并进入购票页面"

参数说明:

  • --device-id:通过adb devices获取的设备标识;
  • --base-url:BigModel 的 API 接入地址;
  • --model:指定使用的模型名称;
  • --apikey:你的私有 API 密钥,请勿泄露;
  • 最后字符串为自然语言指令。
示例输出日志片段
[INFO] 当前界面:桌面 [PLAN] 找到“携程旅行”图标并点击 [ACTION] tap at (x=320, y=480) [SCREENSHOT] 获取新画面... [INFO] 当前界面:携程首页 [PLAN] 点击“火车票”入口 [ACTION] tap at (x=180, y=220) ... [SUCCESS] 已进入车次选择页面,找到G1次列车,余票充足

任务完成后,AI 会停留在支付前一页,等待人工确认,避免误购。

3.5 核心代码结构解析

main.py是入口文件,其主要逻辑如下:

from phone_agent.agent import AutoAgent agent = AutoAgent( device_id="YOUR_DEVICE_ID", base_url="https://open.bigmodel.cn/api/paas/v4", model="autoglm-phone", api_key="your-api-key" ) result = agent.run("打开携程订高铁票") print(result)

AutoAgent.run()方法内部实现了一个循环决策机制:

  1. 截图 → 编码为 base64 图像;
  2. 构造包含图像、历史动作、当前指令的 prompt;
  3. 调用 VLM 推理下一步动作;
  4. 解析动作类型(tap/swipe/type/back/home)并执行;
  5. 更新状态,重复直到任务完成或超时。

关键抽象类位于phone_agent/action.pyphone_agent/llm_client.py,支持扩展自定义动作和对接其他 LLM 服务。

4. 常见问题与优化建议

4.1 典型问题排查

问题现象可能原因解决方案
adb devices无设备未开启 USB 调试检查开发者选项
显示 unauthorized未授权调试在手机上点击“允许”
输入中文失败默认输入法非 ADB Keyboard切换输入法
模型响应慢或乱码API 请求异常检查网络、API Key 是否正确
AI 找不到 App 图标桌面图标位置偏移手动打开一次 App 再试

4.2 性能优化建议

  1. 减少无效尝试:默认最大步数为 100,可在agent.py中设置max_steps=30防止无限循环;
  2. 增加超时控制:引入timeout=180(秒)限制总执行时间;
  3. 缓存常用路径:对于高频任务(如订票),可记录典型操作序列,提升响应速度;
  4. 本地模型部署:使用 vLLM 部署autoglm-phone-9b模型,降低延迟与成本。

示例:添加超时机制

import time start_time = time.time() while not task_done and (time.time() - start_time) < 180: action = llm_predict(current_screenshot, history, instruction) execute_action(action) if is_final_state(): break else: print("任务超时,终止执行")

4.3 安全使用建议

  • 不要将 API Key 提交至代码仓库;
  • 敏感操作(如支付)务必保留人工确认环节;
  • 定期清理操作日志,防止信息泄露;
  • 若用于生产环境,建议部署在内网隔离环境中。

5. 总结

Open-AutoGLM 代表了新一代 AI Agent 的发展方向——以自然语言驱动、具备视觉感知与行动能力的智能体。本文通过实际案例展示了其在旅行订票场景中的应用全流程,验证了其在复杂 GUI 任务中的可行性与实用性。

该框架的价值不仅在于“自动化”,更在于“通用性”。无论是打开小红书搜索美食、跨 App 查询比价,还是定时抢票,只要能用语言描述清楚的任务,理论上都可由 AI 自主完成。

未来,随着多模态模型精度提升与推理成本下降,这类手机端 AI Agent 有望成为每个人的“数字分身”,真正实现“动口不动手”的智能生活体验。


获取更多AI镜像

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

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

高效工作流:如何用云端GPU加速情感语音合成项目迭代

高效工作流&#xff1a;如何用云端GPU加速情感语音合成项目迭代 你有没有遇到过这样的情况&#xff1f;产品团队想测试一段“惊喜”语气的欢迎语&#xff0c;或者一段“温柔”语调的提示音&#xff0c;结果光是搭建语音合成环境就花了两天时间——装依赖、配CUDA、调试模型………

作者头像 李华
网站建设 2026/2/19 7:54:28

AntiMicroX终极指南:轻松掌握游戏手柄映射技巧

AntiMicroX终极指南&#xff1a;轻松掌握游戏手柄映射技巧 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/2/27 2:58:53

模型服务治理:bge-large-zh-v1.5的运维最佳实践

模型服务治理&#xff1a;bge-large-zh-v1.5的运维最佳实践 1. 引言 随着大模型在语义理解、信息检索和智能问答等场景中的广泛应用&#xff0c;嵌入&#xff08;Embedding&#xff09;模型作为底层核心组件之一&#xff0c;承担着将文本转化为高维向量表示的关键任务。其中&…

作者头像 李华
网站建设 2026/2/26 16:16:59

HsMod炉石插件:解锁32倍速加速与55项实用功能的终极游戏体验

HsMod炉石插件&#xff1a;解锁32倍速加速与55项实用功能的终极游戏体验 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 想要彻底改变你的炉石传说游戏体验吗&#xff1f;HsMod插件基于BepInEx框…

作者头像 李华
网站建设 2026/2/24 5:26:53

同或门在算术电路中的项目应用示例

同或门&#xff1a;被低估的“等价侦探”如何悄悄优化你的算术电路&#xff1f;你有没有遇到过这样的情况——在设计一个高速加法器时&#xff0c;明明逻辑写得没错&#xff0c;但综合工具总抱怨关键路径延迟超标&#xff1f;或者在实现缓存Tag比较时&#xff0c;发现异或非门组…

作者头像 李华
网站建设 2026/2/25 22:15:14

OpenCode:重新定义终端AI编程体验的开源利器

OpenCode&#xff1a;重新定义终端AI编程体验的开源利器 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手&#xff0c;模型灵活可选&#xff0c;可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 在当今快节奏的开发环境中&…

作者头像 李华