news 2026/2/7 4:48:25

Open-AutoGLM天气播报代理:每日预报推送执行部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Open-AutoGLM天气播报代理:每日预报推送执行部署

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线 或 同一局域网WiFiWiFi方式更灵活,但首次需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.py

5.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自动朗读头条
  • 外卖订单状态监控+超时提醒
  • 游戏自动签到与资源收取

所有这些,都不再需要编程基础,只需要清晰描述你要什么。

下一步,建议你:

  1. 尝试修改daily_weather.py中的城市名,测试跨地域适配性;
  2. examples/中运行social_agent.py,体验小红书/抖音的自动化操作;
  3. 查看phone_agent/agent.py源码,了解execute()方法如何将自然语言编译为动作序列——你会发现,AI Agent的“智能”,就藏在那几行简洁的API调用里。

获取更多AI镜像

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

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

项目应用:UDS 19服务在ECU诊断开发中的实践

以下是对您提供的博文内容进行 深度润色与结构重构后的技术文章 。整体风格已全面转向 真实工程师视角下的经验分享体 ,摒弃模板化表达、学术腔与空泛总结,代之以 问题驱动、场景切入、逻辑递进、细节扎实、语言鲜活 的嵌入式诊断开发实战笔记。全文无AI痕迹,无“本文…

作者头像 李华
网站建设 2026/2/7 2:00:43

BERT中文NLP教学应用:自动试题生成系统实战案例

BERT中文NLP教学应用:自动试题生成系统实战案例 1. 为什么教师需要一个“会出题”的BERT模型? 你有没有遇到过这样的场景: 批改完一叠作文,想趁热打铁设计几道语境填空题巩固知识点,结果卡在“这个空该填‘的’还是‘…

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

零基础掌握OpenArk:安全分析利器从入门到实战的全面指南

零基础掌握OpenArk:安全分析利器从入门到实战的全面指南 【免费下载链接】OpenArk The Next Generation of Anti-Rookit(ARK) tool for Windows. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenArk 在Windows安全分析领域,面对日益复杂的…

作者头像 李华
网站建设 2026/2/5 14:02:19

AI SQL生成新纪元:自然语言转SQL的颠覆性工具解析

AI SQL生成新纪元:自然语言转SQL的颠覆性工具解析 【免费下载链接】sqlcoder SoTA LLM for converting natural language questions to SQL queries 项目地址: https://gitcode.com/gh_mirrors/sq/sqlcoder 在数据驱动决策的时代,将自然语言问题高…

作者头像 李华
网站建设 2026/2/5 8:23:19

3个步骤掌握FREE!ship Plus:零门槛船舶设计工具完全指南

3个步骤掌握FREE!ship Plus:零门槛船舶设计工具完全指南 【免费下载链接】freeship-plus-in-lazarus FreeShip Plus in Lazarus 项目地址: https://gitcode.com/gh_mirrors/fr/freeship-plus-in-lazarus 船舶设计长期被视为高门槛的专业领域,需要…

作者头像 李华