Open-AutoGLM天气播报代理:每日预报推送执行部署
你是否想过,让手机自己每天早上7点准时打开天气App、截图当前预报、生成一段口语化播报文案,再发到你的微信家庭群?这不是科幻场景——Open-AutoGLM 正在把这类“自然语言驱动的自动化任务”变成现实。它不是传统意义上的App或脚本,而是一个真正理解屏幕、能“看见”界面、会“思考”步骤、还能“动手”操作的AI代理框架。
本文不讲抽象概念,不堆技术参数,而是带你从零完成一个真实可用的每日天气播报代理:用一句中文指令启动,它就能自动唤醒手机、打开天气应用、识别当前城市与温度、生成带温度和穿衣建议的语音文案,并完成截图与分享动作。整个过程无需人工干预,连验证码和登录页都支持安全接管。下面,我们就以这个具体任务为线索,完整走通部署、连接、调试到稳定运行的每一步。
1. 理解核心角色:Open-AutoGLM 不是模型,而是“AI手脚”
Open-AutoGLM 是智谱开源的一套面向移动端的 AI Agent 框架,它的特别之处在于——它不只负责“想”,更负责“做”。
你可能熟悉大语言模型(LLM)能写诗、能答题,但让它控制手机?传统方案需要写大量ADB命令、解析UI树、处理弹窗逻辑,开发成本极高。而 Open-AutoGLM 把这一整套能力封装成了可复用的“代理层”:它内置视觉语言模型(VLM)实时理解手机屏幕画面,结合任务规划模块生成可执行动作序列(如“点击坐标(320,650)”、“滑动屏幕”、“长按3秒”),再通过 ADB 精准下发指令。用户只需说:“打开墨迹天气,查北京今天最高温和穿衣建议,截图发到‘家人’微信群”,系统就能自主完成全部操作。
它有两个关键身份:
- Phone Agent:运行在本地控制端的调度中枢,负责接收指令、调用云端模型、解析视觉反馈、生成动作、下发ADB命令;
- AutoGLM-Phone 模型:部署在云服务器上的9B级多模态模型,专为手机界面理解与操作规划优化,支持高精度OCR、控件识别、意图拆解与容错重试。
二者分离设计,既保障了模型推理所需的算力,又确保了设备控制的低延迟与安全性。你不需要在手机上装任何APK,也不用越狱/root,只要一部普通安卓机+一台能联网的电脑,就能跑起来。
2. 环境准备:三步搞定硬件与基础工具链
部署前,请确认以下四类资源已就位。我们不追求一步到位,而是聚焦“最小可行路径”——先让手机亮屏、被识别、能响应一条指令,再逐步叠加天气任务逻辑。
2.1 硬件与系统要求
| 类别 | 明确要求 | 说明 |
|---|---|---|
| 控制端(你的电脑) | Windows 10+/macOS 12+,Python 3.10+ | 推荐使用虚拟环境隔离依赖,避免冲突 |
| 执行端(安卓设备) | Android 7.0+,已开启开发者选项 | 建议使用真机(模拟器对ADB键盘和截图支持不稳定) |
| 网络连接 | USB线 或 同一局域网WiFi | WiFi方式更灵活,但首次需USB初始化 |
| ADB工具 | platform-tools 最新版 | 官方下载地址:https://developer.android.com/tools/releases/platform-tools |
小贴士:为什么必须用ADB Keyboard?
默认安卓输入法无法通过ADB直接触发文字输入。ADB Keyboard是一个轻量级APK,它将ADB的input text命令映射为系统级输入事件。安装后,在“设置→语言与输入法”中设为默认,才能让AI代理准确输入城市名、搜索关键词等文本内容。
2.2 ADB环境快速验证(5分钟)
请跳过冗长教程,用最简方式验证ADB是否就绪:
Windows用户:
下载platform-tools后,解压到C:\adb,右键“此电脑”→属性→高级系统设置→环境变量→系统变量→Path→新建→填入C:\adb。打开CMD,输入:adb version若显示类似
Android Debug Bridge version 1.0.41,即成功。macOS用户:
终端执行:brew install android-platform-tools # 推荐用Homebrew # 或手动配置 echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc adb version
验证通过后,你会获得两个关键能力:adb devices查设备、adb shell screencap截图。
3. 手机端设置:三步开通“远程操控权限”
这三步看似简单,却是后续所有自动化操作的前提。漏掉任一环节,AI代理都会卡在“找不到按钮”或“无法输入文字”。
3.1 开启开发者模式
进入手机设置 → 关于手机 → 软件信息,连续点击“版本号”7次,直到弹出提示“您现在处于开发者模式”。
3.2 启用USB调试
返回设置主菜单,进入系统 → 开发者选项(部分机型在“更多设置”下),找到并开启:
- USB调试
- USB调试(安全设置)(部分新机型需额外开启)
- 停用MIUI优化 / 关闭华为/OPPO的“USB调试安全警告”(若连接时提示授权失败)
3.3 安装并启用ADB Keyboard
- 下载最新版 ADB Keyboard APK(推荐v1.1以上)
- 通过文件管理器安装(需允许“未知来源应用”)
- 进入设置 → 语言与输入法 → 当前输入法 → 选择 ADB Keyboard
- 返回桌面,长按任意输入框,确认弹出软键盘即生效
注意:部分品牌手机(如小米)需在“开发者选项”中额外开启“USB安装”和“USB调试(安全设置)”,否则ADB无法向应用发送输入事件。
4. 控制端部署:从克隆代码到首次运行
现在,你的电脑已具备“看见”和“指挥”手机的能力。接下来,我们要装上AI大脑——Open-AutoGLM控制端。
4.1 克隆与安装
打开终端(Windows用CMD/PowerShell,macOS用Terminal),执行:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .该仓库结构清晰:
phone_agent/:核心代理逻辑,含ADB封装、视觉反馈处理、动作规划器examples/:包含天气播报、社交App操作等开箱即用示例main.py:命令行入口,支持自然语言指令直传
4.2 连接你的手机
确保手机已通过USB接入电脑,并在手机上点击“允许USB调试”弹窗(勾选“始终允许”)。
在终端运行:
adb devices正常输出应类似:
List of devices attached 8A2Y0XXXXXXX device其中8A2Y0XXXXXXX即你的device-id,后续命令中需替换此处。
🔁 WiFi连接备选方案(适合长期运行):
先用USB执行adb tcpip 5555,拔掉USB线,再执行adb connect 192.168.1.100:5555(将IP替换为你手机实际局域网IP)。成功后,adb devices会显示192.168.1.100:5555 device。
4.3 启动天气播报代理(第一行有效指令)
假设你已在云服务器部署好 AutoGLM-Phone 模型服务(监听在http://192.168.3.10:8800/v1),现在执行:
python main.py \ --device-id 8A2Y0XXXXXXX \ --base-url http://192.168.3.10:8800/v1 \ --model "autoglm-phone-9b" \ "打开墨迹天气App,查看北京今日天气,截图并保存到相册"你会看到终端逐行打印:
[INFO] 已连接设备:8A2Y0XXXXXXX [INFO] 正在截取当前屏幕... [INFO] 已上传截图至云端模型... [INFO] 模型返回动作:点击坐标(240,180) → 等待2s → 输入"北京" → 点击搜索图标... [INFO] 动作执行成功,截图已保存至 ./screenshots/weather_20240520_0823.png成功标志:手机自动亮屏、打开墨迹天气、定位北京、显示今日预报,同时本地生成一张截图。
5. 构建完整天气播报流:从截图到微信推送
上面只是单步操作。真正的“每日播报代理”,需要串联多个动作并加入逻辑判断。我们以examples/weather_agent.py为基础,构建一个鲁棒的流程:
5.1 核心任务拆解(人话版)
| 步骤 | AI需完成的动作 | 关键难点 |
|---|---|---|
| 1. 唤醒与启动 | 解锁手机(若锁屏)、打开墨迹天气 | 需识别锁屏界面与App图标位置 |
| 2. 定位城市 | 点击城市栏 → 输入“北京” → 确认 | 输入法切换、键盘收起时机 |
| 3. 提取数据 | 截图 → 识别“今日最高温”、“体感温度”、“紫外线等级” | OCR精度、数字单位识别 |
| 4. 生成文案 | 将数值转为口语化播报:“北京今天最高温28℃,紫外线强,建议戴帽防晒” | 需模型理解温度与健康建议的关联 |
| 5. 分享到微信 | 切换到微信 → 进入“家人”群 → 粘贴文案 + 发送截图 | 群聊名称匹配、图片选择控件识别 |
5.2 关键代码片段(精简可运行版)
在Open-AutoGLM/examples/下新建daily_weather.py,填入:
# -*- coding: utf-8 -*- from phone_agent.agent import PhoneAgent from phone_agent.adb import ADBConnection def run_daily_weather(): # 初始化代理(复用已有连接) agent = PhoneAgent( device_id="8A2Y0XXXXXXX", base_url="http://192.168.3.10:8800/v1", model_name="autoglm-phone-9b" ) # 1. 启动天气App(自动处理锁屏) agent.execute("打开墨迹天气") # 2. 确保定位北京(若城市非北京,则重设) agent.execute("将城市切换为北京") # 3. 截图并提取关键字段(模型自动OCR+结构化) result = agent.execute("截图并提取今日最高温、体感温度、穿衣建议") # result 示例:{"最高温": "28℃", "体感温度": "31℃", "建议": "短袖+遮阳帽"} # 4. 生成播报文案 script = f"【早安天气】{result['最高温']},{result['体感温度']},{result['建议']}。祝您一天愉快!" # 5. 发送到微信家庭群 agent.execute(f"在微信中找到‘家人’群,发送文字:{script},并附上刚才的截图") if __name__ == "__main__": run_daily_weather()运行它:
python examples/daily_weather.py5.3 加入定时与容错(生产就绪)
- 定时触发:Linux/macOS用
crontab -e添加0 7 * * * cd /path/to/Open-AutoGLM && python examples/daily_weather.py;Windows用任务计划程序。 - 失败重试:在
agent.execute()外层加try/except,捕获ActionFailedError后自动重启App或截图重试。 - 人工接管开关:当检测到验证码弹窗或登录页时,代理会暂停并打印
[PAUSE] 请手动完成登录,完成后输入 'continue',输入后继续执行。
6. 故障排查:90%的问题都出在这三个地方
部署过程中,你大概率会遇到以下典型问题。我们按发生频率排序,并给出一句话解决方案:
6.1 ADB设备不显示(adb devices为空)
- 原因:USB驱动未安装或调试未授权
- 解决:Windows用户安装 Universal ADB Driver,手机重新插拔并点击授权弹窗;macOS检查USB线是否支持数据传输(部分充电线仅供电)。
6.2 模型返回乱码或无动作([]空列表)
- 原因:云服务端vLLM启动参数与客户端不匹配,尤其是
--max-model-len 8192未设置 - 解决:检查服务端启动命令是否包含
--max-model-len 8192 --tensor-parallel-size 1,显存不足时降低--gpu-memory-utilization 0.8。
6.3 截图后AI无法识别文字(返回“未找到温度”)
- 原因:墨迹天气界面存在广告或动态Banner,干扰OCR区域
- 解决:在
agent.execute()中添加前置动作:"向上滑动屏幕1次,清除顶部广告";或改用“彩云天气”等界面更简洁的App。
进阶提示:所有动作均可通过
agent.debug_screenshot=True开启截图日志,每次操作后自动保存debug_*.png,方便你对照视觉反馈调整指令表述。
7. 总结:你刚刚部署的不是一个脚本,而是一个数字分身
回顾整个过程,你没有写一行ADB命令,没有解析一个XML UI树,也没有训练任何模型——你只是:
- 配置了ADB让电脑“认识”手机;
- 克隆了一个开源框架让电脑“理解”屏幕;
- 下达了一句自然语言指令让AI“思考”并“动手”。
这就是Open-AutoGLM的价值:它把复杂的移动自动化,降维成“说人话”。天气播报只是起点,你可以轻松扩展为:
- 每日基金净值截图+语音播报
- 新闻App自动朗读头条
- 外卖订单状态监控+超时提醒
- 游戏自动签到与资源收取
所有这些,都不再需要编程基础,只需要清晰描述你要什么。
下一步,建议你:
- 尝试修改
daily_weather.py中的城市名,测试跨地域适配性; - 在
examples/中运行social_agent.py,体验小红书/抖音的自动化操作; - 查看
phone_agent/agent.py源码,了解execute()方法如何将自然语言编译为动作序列——你会发现,AI Agent的“智能”,就藏在那几行简洁的API调用里。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。