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
第二步:手机开启开发者模式
  1. 设置 → 关于手机 → 连续点击“版本号”7次
  2. 返回设置 → 系统 → 开发者选项 → 开启以下三项:
    • 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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐