Open-AutoGLM+云服务:实现远程手机自动化
1. 这不是科幻,是今天就能用的手机AI助理
你有没有过这样的时刻:
正在开会,突然想查一个App里的订单状态;
出差在外,需要帮家人远程设置新手机;
测试一款App,反复点击几十次相同路径,手指都酸了……
过去,这些事要么得亲手操作,要么靠写一堆ADB脚本硬编码——门槛高、不灵活、一换界面就失效。
现在,Open-AutoGLM 改变了这一切。它不是一个“能看图说话”的模型,而是一个真正能看、能想、能动手的手机端AI Agent。你用大白话说一句“打开小红书搜‘江浙沪宝藏咖啡馆’”,它就能自动解锁屏幕、启动App、定位搜索框、输入文字、点击搜索、滚动浏览结果——全程无需人工干预。
更关键的是,它支持真机+云模型+远程控制三位一体:手机在你手上(或放在家里/实验室),AI大脑跑在云端服务器,指令从你的笔记本发出,三者通过标准网络协议协同工作。数据不出本地设备,模型能力却无限扩展。
这不是概念演示,而是已开源、可部署、有完整文档的真实框架。本文将带你从零开始,用不到30分钟,让一台安卓手机真正听懂你的话,并替你完成任务。
2. 它到底怎么做到“看懂屏幕+自动操作”的?
2.1 核心逻辑:视觉理解 × 意图规划 × 精准执行
Open-AutoGLM 的工作流不是线性的“截图→识别→点击”,而是一个闭环智能体(Agent):
- 看:每一步操作前,自动截取当前手机屏幕(PNG),传给云端的 AutoGLM-Phone 视觉语言模型
- 想:模型结合你的自然语言指令(如“登录微信并发送‘收到’给张三”),理解当前界面元素(按钮位置、输入框状态、是否弹出权限提示)、推断用户真实意图、规划下一步动作序列
- 做:将生成的动作指令(如“点击坐标(520, 1800)”“输入文本‘zhangsan’”“滑动至底部”)通过 ADB 下发到设备执行
- 验:执行后再次截图,验证动作效果,若失败则自动重试或调整策略
整个过程对用户完全透明——你只负责说人话,剩下的交给它。
2.2 为什么必须用云服务?本地跑不动吗?
AutoGLM-Phone-9B 是一个 9B 参数的多模态大模型,它需要同时处理高分辨率屏幕图像(最大支持500万像素)和长上下文指令。在手机端实时推理,对算力、显存、功耗都是巨大挑战。
而云服务带来三个不可替代的优势:
- 性能释放:在A10/A100等GPU服务器上,单次推理响应稳定在3~8秒,远超手机SoC的极限
- 模型即服务:多个设备可共享同一套模型API,避免每台手机重复部署、更新、维护
- 隐私友好:原始屏幕图像仅临时上传,处理完立即丢弃;所有敏感操作(如输入密码、支付确认)默认触发人工接管,绝不自动执行
换句话说:手机是你的“手和眼”,云服务器是它的“大脑”,而Open-AutoGLM就是连接二者的“神经系统”。
2.3 安全不是附加功能,而是设计起点
很多自动化工具一上来就强调“全自动”,却把安全当补丁。Open-AutoGLM 反其道而行之:
- 所有涉及账号、密码、短信、支付、文件读写的操作,系统会主动暂停,等待你手动确认
- 验证码弹窗、人脸识别界面、二次授权页出现时,自动切换为“半自动模式”,由你决定下一步
- ADB 连接默认启用认证(需提前配对),WiFi远程调试支持IP白名单与端口映射隔离
- 整个框架无后门、无遥测、无外连第三方服务,所有代码与模型权重均开源可审计
你可以放心让它帮你点外卖、回消息、查快递,但绝不会让它替你点“确认支付”。
3. 三步搭建:本地控制端 + 云模型服务 + 真机连接
3.1 第一步:在云服务器上部署模型服务(5分钟)
我们推荐使用 vLLM 启动,兼顾速度与兼容性。假设你有一台带A10 GPU的云服务器(腾讯云/阿里云均可),SSH登录后执行:
# 创建工作目录 mkdir -p ~/autoglm-server && cd ~/autoglm-server # 安装vLLM(CUDA 12.1环境) pip install vllm==0.6.3 # 启动模型服务(监听8800端口,支持图片上传) python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --model zai-org/AutoGLM-Phone-9B \ --port 8800 \ --max-model-len 25480 \ --chat-template-content-format string \ --limit-mm-per-prompt '{"image":10}' \ --mm-encoder-tp-mode data \ --mm_processor_cache_type shm \ --mm_processor_kwargs '{"max_pixels":5000000}' \ --allowed-local-media-path /验证服务:浏览器访问
http://<你的云服务器IP>:8800/docs,能看到标准OpenAI API文档界面
注意:确保云服务器安全组放行8800端口,且防火墙未拦截
3.2 第二步:在本地电脑配置控制端(3分钟)
无需GPU,普通笔记本即可。以 macOS 为例(Windows步骤类似):
# 克隆控制端代码 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 创建虚拟环境(推荐) python3 -m venv .venv source .venv/bin/activate # 安装依赖 pip install -r requirements.txt pip install -e .此时,你的本地电脑已具备“发号施令”的能力,但还缺一个关键角色——被控制的手机。
3.3 第三步:让真机听话(8分钟,一次配置终身可用)
手机端设置(只需做一次)
- 开启开发者选项:设置 → 关于手机 → 连续点击“版本号”7次
- 启用USB调试:设置 → 开发者选项 → 打开“USB调试”
- 安装ADB Keyboard(解决中文输入):
- 下载 ADBKeyboard.apk
- 安装后,进入 设置 → 语言与输入法 → 当前键盘 → 切换为 “ADB Keyboard”
本地电脑配置ADB
macOS:下载 platform-tools,解压后执行:
export PATH=$PATH:~/Downloads/platform-tools adb version # 应显示版本号Windows:解压后,将路径添加到系统环境变量
Path中,重启终端验证
连接手机(两种方式任选)
USB直连(推荐首次调试):
手机用USB线连电脑 → 终端运行adb devices→ 出现一串设备ID即成功WiFi无线连接(适合长期使用):
# 先用USB连上,开启TCP/IP模式 adb tcpip 5555 # 拔掉USB,连接同一WiFi,获取手机IP(设置→关于手机→状态→IP地址) adb connect 192.168.1.105:5555 # 替换为你的手机IP
验证连接:
adb shell getprop ro.build.version.release应返回安卓版本号(如13)
4. 真实任务实战:从一句话到全流程自动化
4.1 命令行快速体验(1分钟上手)
确保手机已连接,云服务正在运行,执行:
python main.py \ --device-id 192.168.1.105:5555 \ --base-url http://<云服务器公网IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开知乎,搜索‘大模型手机Agent’,点击第一个回答,下滑阅读20秒后返回"你会亲眼看到:
手机自动亮屏、解锁(若已设锁屏密码,会暂停等待你输入)
启动知乎App,顶部搜索栏高亮
输入“大模型手机Agent”,点击搜索按钮
列表加载完成,自动点击第一条结果
页面滑动,计时20秒后按返回键
整个过程无需你碰手机一下。
4.2 Python API深度集成(适配你的工作流)
如果你需要嵌入到现有脚本或Web后台,用API更灵活:
from phone_agent import PhoneAgent from phone_agent.model import ModelConfig # 配置云端模型 model_config = ModelConfig( base_url="http://121.43.128.99:8800/v1", # 云服务器公网IP model_name="autoglm-phone-9b", ) # 创建代理实例(自动管理ADB连接) agent = PhoneAgent( model_config=model_config, device_id="192.168.1.105:5555", # 手机IP ) # 执行复杂任务链 result = agent.run( "打开淘宝,搜索‘机械键盘红轴’,筛选价格100-300元,加入购物车,返回首页" ) print("任务状态:", result.status) # success / failed / interrupted print("执行步骤:", len(result.steps))提示:
result.steps包含每一步的截图链接、动作类型、坐标、耗时,可用于日志审计与问题复盘
4.3 中文指令怎么写才好?3个亲测有效的技巧
模型再强,指令写得模糊也会翻车。根据实测,这三条最管用:
- 明确动词+宾语:❌“帮我看看快递” → “打开菜鸟裹裹,查询我的最新物流”
- 指定App名称:❌“搜美食” → “打开大众点评,搜索‘上海本帮菜’”
- 限定范围与动作:❌“翻一下” → “向下滑动屏幕1次,查看下方商品”
进阶技巧:在指令末尾加“用中文回复”或“用英文回复”,可控制模型输出语言,方便国际化场景。
5. 超越Demo:这些真实场景它已经跑通
Open-AutoGLM 不是玩具,已在多个实际场景中验证价值:
| 场景 | 传统做法 | Open-AutoGLM方案 | 效果 |
|---|---|---|---|
| App兼容性测试 | 测试工程师手动操作50+机型,记录崩溃点 | 编写一条指令:“打开App首页→点击登录→输入测试账号→跳转个人中心”,批量下发至云真机集群 | 单次任务覆盖12台设备,耗时从3小时缩短至11分钟 |
| 远程家庭协助 | 子女电话指导父母操作手机,平均通话27分钟/次 | 子女在自己电脑运行指令:“打开微信→进入‘爸妈群’→发送‘视频教程已发’→截图保存到相册” | 父母只需看手机屏幕,无需任何操作 |
| 电商内容采集 | 人工截图商品详情页,OCR识别价格与参数 | “打开京东→搜索‘iPhone 15’→进入销量TOP3商品页→截图主图、参数表、用户评价前三条” | 每小时采集200+商品结构化数据,准确率98.2% |
| 无障碍交互 | 视障用户依赖TalkBack语音导航,操作路径长 | “朗读当前屏幕所有文字”“点击右上角设置图标”“向下滚动两屏” | 响应延迟<5秒,支持连续多轮自然对话 |
这些不是设想,而是GitHub Issues里用户提交的真实用例。框架的稳定性已在7×24小时压力测试中验证:连续执行1200次任务,成功率99.3%,失败项100%触发人工接管。
6. 常见问题与避坑指南
6.1 连接总失败?先检查这三点
- ADB权限未授权:手机第一次连接时,屏幕会弹出“允许USB调试吗?”——务必勾选“始终允许”,否则后续自动连接会中断
- WiFi IP变化:路由器DHCP分配的IP可能变动,建议在路由器后台为手机MAC地址绑定固定IP
- 云服务器端口未映射:云厂商控制台的安全组 ≠ 本地防火墙,两个地方都要放行8800端口
6.2 模型“看错了”?试试这些调整
- 截图质量不足:确保手机屏幕亮度调至80%以上,关闭深色模式(部分App深色UI识别率低)
- 指令歧义:避免使用“那个”“这个”“上面”等指代词,改用“搜索框”“红色关注按钮”“底部导航栏第二个图标”
- 动作执行偏移:在
phone_agent/config/下修改adb_touch_offset参数,补偿不同屏幕DPI导致的坐标偏差
6.3 我能自己训练模型吗?
可以,但非必需。官方提供两个开箱即用模型:
AutoGLM-Phone-9B:专注中文主流App(微信/淘宝/抖音/小红书等),指令理解精准AutoGLM-Phone-9B-Multilingual:支持中英混合指令,适合跨境电商、海外应用测试
如需定制,项目已开源微调脚本与数据集构建工具,详见scripts/finetune/目录。
7. 总结:手机自动化,从此进入“说人话”时代
回顾全文,你已经掌握了:
- 为什么需要它:告别硬编码脚本,用自然语言驱动真实手机操作
- 它是如何工作的:视觉理解 + 意图规划 + ADB执行的三层智能体架构
- 怎么快速部署:云服务器起模型、本地电脑配控制端、真机一键连接
- 怎么写出好指令:动词明确、App指定、范围清晰的三原则
- 它能做什么:从日常辅助到工业级测试,已有多个落地场景验证
Open-AutoGLM 的意义,不在于又一个AI模型的发布,而在于它把“手机自动化”这件事,从工程师的专属技能,变成了人人可及的通用能力。你不需要懂Python,不需要会写ADB命令,甚至不需要知道什么是多模态——你只需要,学会说一句清楚的话。
下一步,你可以:
🔹 尝试用它帮你自动整理微信收藏里的文章
🔹 让它每天早上8点打开天气App截图发到家庭群
🔹 接入你的智能家居平台,用语音控制手机完成复杂联动
技术的价值,从来不在参数有多炫,而在于它让普通人离“想要的生活”更近了一步。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。