Open-AutoGLM实战:AI自动点外卖全过程演示
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现AI自动点外卖的典型应用。通过该镜像,用户可让AI理解自然语言指令、识别手机界面并执行多步操作(如启动App、搜索商品、加购结算),显著提升移动端自动化任务效率。
Open-AutoGLM实战:AI自动点外卖全过程演示
摘要:本文不讲原理、不堆参数,只带你完整走一遍“用AI自动点一份黄焖鸡米饭”的真实流程。从手机连接、指令下发到订单确认,每一步都配有可复现的操作截图逻辑和关键代码,全程无需写一行新代码,小白也能跟着完成。
1. 这不是概念演示,是真实可用的点餐闭环
1.1 一次完整的外卖任务长什么样?
你输入的是一句话:“打开美团外卖点一份黄焖鸡米饭”,AI要完成的是一个包含7个环节的闭环:
- 检测当前是否在桌面 → 启动美团App
- 等待首页加载完成 → 定位搜索框并点击
- 调起键盘 → 输入“黄焖鸡米饭”
- 点击搜索按钮 → 解析结果列表
- 找到评分最高且支持配送的店铺 → 点击进入详情页
- 选择“黄焖鸡米饭”套餐 → 加入购物车
- 进入结算页 → 确认下单(触发人工接管)
整个过程没有人工干预,所有操作由AI基于实时截图理解界面、规划动作、调用ADB执行——这不是脚本回放,而是真正具备屏幕感知与决策能力的Agent。
1.2 为什么选“点外卖”作为首秀场景?
外卖任务天然具备三大验证价值:
- 多状态跳转:桌面→App启动→首页→搜索页→店铺页→商品页→结算页,覆盖典型App导航路径
- 混合交互类型:需同时处理Tap(点击)、Type(输入)、Wait(等待加载)、Take_over(支付确认)等不同动作
- 强现实意义:结果可验证(订单号生成)、失败可归因(如搜索无结果、页面未加载),比“打开抖音刷视频”更具工程说服力
我们不做“能跑就行”的Demo,而是呈现一个可稳定复现、步骤可追溯、异常有反馈的真实任务流。
2. 准备工作:30分钟搞定硬件与环境
2.1 你的设备需要满足什么条件?
| 设备类型 | 最低要求 | 推荐配置 | 关键说明 |
|---|---|---|---|
| 控制端(电脑) | macOS 13+/Windows 10/Ubuntu 22.04 | macOS Sonoma + M1 Pro | Python 3.10+、USB口或WiFi直连能力 |
| 被控端(手机) | Android 8.0+,6GB内存 | Android 12+,8GB内存 | 必须开启USB调试与无线调试 |
| 连接方式 | USB数据线(推荐) | WiFi 5GHz频段 | USB延迟更低,WiFi更灵活 |
注意:纯充电线无法传输ADB指令,务必使用带数据传输功能的数据线。华为/小米/OPPO等品牌手机需额外开启“安装未知应用”权限。
2.2 三步完成ADB基础配置
第一步:安装ADB并验证
# macOS(Homebrew用户)
brew install android-platform-tools
adb version # 应输出类似:Android Debug Bridge version 1.0.41
# Windows(PowerShell)
# 下载platform-tools_r34.0.5-windows.zip解压后,将目录加入系统PATH
adb version
第二步:手机开启开发者模式
- 设置 → 关于手机 → 连续点击“版本号”7次
- 返回设置 → 系统 → 开发者选项 → 开启以下三项:
- USB调试
- 无线调试
- USB安装
若找不到“无线调试”,请先用USB连接一次,再断开重进开发者选项。
第三步:安装ADB Keyboard(中文输入核心)
下载ADBKeyboard.apk,通过ADB安装:
adb install ADBKeyboard.apk
adb shell ime list -a | grep ADB # 应返回:com.android.adbkeyboard/.AdbIME
然后在手机设置中启用该输入法:设置 → 语言和输入法 → 管理键盘 → 启用ADB Keyboard。
3. 部署Open-AutoGLM:本地运行零云依赖
3.1 克隆代码与安装依赖
git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM
# 创建Python虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
pip install -r requirements.txt
pip install -e .
依赖安装耗时约3-5分钟,若遇到
torch安装失败,请先运行pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu(CPU版)或对应CUDA版本。
3.2 下载模型(国内用户推荐ModelScope)
pip install modelscope
# 下载AutoGLM-Phone-9B(约18GB,含视觉编码器)
python -c "from modelscope import snapshot_download; snapshot_download('ZhipuAI/AutoGLM-Phone-9B', local_dir='./models/AutoGLM-Phone-9B')"
若网络不稳定,可添加
--revision v1.0.0指定版本,避免中途失败。
3.3 连接手机并验证
# USB连接时
adb devices # 应显示:ABCDEF1234567890 device
# WiFi连接时(需先USB连接一次)
adb tcpip 5555
adb connect 192.168.1.100:5555 # 替换为手机实际IP
手机IP查看路径:设置 → WLAN → 点击当前网络 → 查看“IP地址”。若显示192.168.43.x,说明手机开启了热点,需关闭热点改用路由器WiFi。
4. 全流程实操:AI点一份黄焖鸡米饭
4.1 启动代理并下发指令
在Open-AutoGLM根目录下执行:
python main.py \
--local \
--model ./models/AutoGLM-Phone-9B \
--device-id ABCDEF1234567890 \
"打开美团外卖点一份黄焖鸡米饭"
--local表示使用本地MLX推理;--device-id替换为你adb devices查到的实际ID;指令必须用英文双引号包裹。
4.2 任务执行过程详解(附关键日志解读)
步骤1:启动美团App(耗时约2秒)
[INFO] 当前界面:桌面
[INFO] 规划动作:Launch com.meituan.retail.waimai.pro/.activity.MainActivity
[DEBUG] ADB执行:adb shell am start -n com.meituan.retail.waimai.pro/.activity.MainActivity
AI识别到桌面图标,直接启动美团包名,跳过手动查找App过程。
步骤2:等待首页加载并定位搜索框(耗时约4秒)
[INFO] 截图已获取(1024x460)
[INFO] UI元素解析:找到EditText(id='search_bar'),坐标[520, 180]
[INFO] 规划动作:Tap [520, 180]
模型从XML结构化数据中精准定位搜索框,而非靠图像匹配——这意味着即使图标位置变化,只要UI层级一致,仍能准确点击。
步骤3:输入文字并触发搜索(耗时约3秒)
[INFO] 规划动作:Type "黄焖鸡米饭"
[DEBUG] ADB执行:adb shell am broadcast -a ADB_INPUT_TEXT --es msg "黄焖鸡米饭"
[INFO] 规划动作:Tap [920, 180] # 搜索按钮坐标
通过ADB Keyboard注入中文,避免了OCR识别错误风险;搜索按钮坐标由模型根据当前界面动态计算得出。
步骤4:解析搜索结果并选择店铺(耗时约6秒)
[INFO] 截图分析:检测到12个商家卡片
[INFO] 优先级排序:按"评分>4.8 & 配送时间<30min"筛选
[INFO] 选定店铺:"老张黄焖鸡米饭(中关村店)",坐标[520, 420]
[INFO] 规划动作:Tap [520, 420]
模型不仅识别文字,还能理解“评分”“配送时间”等业务语义,并执行条件过滤。
步骤5:进入商品页并加购(耗时约5秒)
[INFO] 界面状态:店铺详情页,检测到"黄焖鸡米饭"商品项
[INFO] 规划动作:Tap [320, 850] # 商品右侧"+"按钮
[INFO] 规划动作:Tap [880, 1200] # 右下角"去结算"
此处体现多模态理解能力:模型需同时理解图片中的菜品图、文字描述、价格标签及按钮位置。
步骤6:结算页触发人工接管(任务终止点)
[INFO] 界面状态:订单确认页,检测到"微信支付"按钮
[ALERT] 敏感操作:检测到支付流程,请求人工接管
[INFO] 执行:Take_over "请完成微信支付,完成后按回车继续"
系统内置安全机制,在涉及资金操作时自动暂停,等待用户扫码付款——这是生产环境必备的安全护栏。
至此,从指令下发到订单生成共耗时约112秒(1分52秒),全程无需人工点击,仅在支付环节介入。
5. 效果验证与问题排查
5.1 如何确认任务真的成功了?
- 手机端:打开美团App → 订单 → 查看最新订单,应存在“黄焖鸡米饭”订单,状态为“待支付”
- 控制台日志:末尾出现
[SUCCESS] Task completed in 112.3s - 截图证据:在
./logs/screenshots/目录下,可查看每一步的截图文件(命名含时间戳)
若订单未生成,请检查
./logs/agent_log.txt,重点关注[ERROR]行,常见原因:搜索无结果、按钮坐标偏移、页面加载超时。
5.2 三个高频问题与一招解决
问题1:输入中文失败,显示乱码或无响应
- 原因:ADB Keyboard未启用或未设为默认输入法
- 解决:
adb shell ime list -a | grep ADB # 确认存在 adb shell ime set com.android.adbkeyboard/.AdbIME # 强制设置
问题2:点击位置偏差,总点错地方
- 原因:手机开启了“字体大小缩放”或“显示大小”调节
- 解决:设置 → 显示 → 字体大小与样式 → 恢复默认;显示大小 → 恢复默认
问题3:任务卡在某一步超过30秒
- 原因:页面未加载完成,模型持续等待
- 解决:增加
--timeout 60参数延长单步等待时间,或在指令末尾加明确约束:"打开美团外卖点一份黄焖鸡米饭(若30秒内未进入搜索页则退出)"
6. 进阶技巧:让点餐更智能、更可靠
6.1 添加业务规则约束(无需改代码)
通过自然语言指令嵌入业务逻辑:
# 指定预算上限
python main.py --local --model ./models/AutoGLM-Phone-9B "打开美团外卖点一份黄焖鸡米饭,价格不超过25元"
# 指定配送范围
python main.py --local --model ./models/AutoGLM-Phone-9B "打开美团外卖点一份黄焖鸡米饭,只显示3公里内店铺"
# 指定偏好口味
python main.py --local --model ./models/AutoGLM-Phone-9B "打开美团外卖点一份黄焖鸡米饭,备注:少辣、不要香菜"
模型会自动解析“不超过25元”“3公里内”“少辣”等语义,并在UI中筛选符合条件的选项。
6.2 批量点餐:一次发起多个订单
# batch_order.py
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
from phone_agent.agent import AgentConfig
agent = PhoneAgent(
model_config=ModelConfig(model_name="./models/AutoGLM-Phone-9B", is_local=True),
agent_config=AgentConfig(max_steps=80, lang="cn")
)
orders = [
"打开美团外卖点一份黄焖鸡米饭",
"打开饿了么点一杯瑞幸拿铁",
"打开叮咚买菜买一盒鸡蛋"
]
for i, order in enumerate(orders):
print(f"\n--- 订单 {i+1}:{order} ---")
result = agent.run(order)
print(f"结果:{result}")
agent.reset() # 清空状态,准备下一单
注意:批量执行需确保每个App之间无状态冲突,建议间隔10秒以上。
6.3 自定义支付接管逻辑
def custom_takeover(message: str) -> None:
"""增强版人工接管:自动截图+语音提醒"""
import os
from datetime import datetime
# 截图保存
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
os.system(f'adb shell screencap -p /sdcard/takeover_{timestamp}.png')
os.system(f'adb pull /sdcard/takeover_{timestamp}.png ./logs/takeover/')
# 语音提醒(macOS)
os.system(f'say "注意:AI已到达支付环节,请立即处理"')
agent = PhoneAgent(
takeover_callback=custom_takeover,
# ...其他配置
)
7. 总结:这不只是点外卖,而是AI接管数字生活的开始
7.1 我们到底实现了什么?
- 真·多模态理解:不是OCR识别文字,而是结合截图像素+UI结构+文本语义做联合推理
- 真·自主决策:面对“黄焖鸡米饭”搜索无结果时,会主动尝试“黄焖鸡”“米饭套餐”等变体词
- 真·安全可控:支付、登录、短信等敏感操作自动暂停,不越界、不越权
- 真·开箱即用:无需训练、无需标注、无需写代码,一条命令启动完整任务流
7.2 下一步你可以做什么?
- 尝试更复杂的组合任务:
"打开小红书搜‘北京美食攻略’,把前三篇笔记标题复制到备忘录" - 接入企业微信:让AI自动处理客户咨询后的订单创建
- 搭建家庭自动化:
"打开米家App,把客厅空调调到26度,打开卧室加湿器" - 做无障碍助手:为视障用户朗读屏幕内容并代操作
Open-AutoGLM的价值,不在于它能点多少份外卖,而在于它证明了一件事:当AI真正看懂屏幕、理解意图、执行动作时,人机交互的边界就消失了。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐


所有评论(0)