微信扫码
添加专属顾问
我要投稿
豆包手机开源AutoGLM技术,让你的手机拥有能看会思考的AI管家,彻底解放双手!核心内容: 1. AutoGLM如何通过"视觉理解+智能规划+ADB控制"实现自动化操作 2. 三大核心技术解析:AI的眼睛、大脑和手如何协同工作 3. 实际应用场景展示与未来潜力展望
原来使用AutoGLM,稍微用用就要收费,想不到豆包手机出来后,AutoGLM居然开源了!
你有没有想过,有一天只需要对手机说一句话,它就能自动帮你完成复杂的操作?比如“打开美团,搜索附近的火锅店,找评分最高的那家,帮我订今晚7点的位子”,然后你就可以继续做别的事,等它搞定?
这不是科幻电影,而是现在就能实现的技术。今天要和你聊的Open-AutoGLM,就是这样一个能够理解屏幕、自主操作手机的AI助手。
简单来说,Open-AutoGLM是一个手机端的AI智能助理框架。它基于智谱AI的AutoGLM技术构建,核心能力是:能"看懂"手机屏幕上的内容,并像人一样去点击、滑动、输入,帮你完成各种任务。
想象一下,你的手机里住着一个看不见的小助手。你告诉它要做什么,它就会:
观察当前屏幕显示的是什么
思考下一步该做什么
执行具体的操作(点击按钮、输入文字等)
继续观察结果,直到任务完成
整个过程完全自动化,你只需要在开始时说明需求,最后确认支付这类敏感操作就行了。
Open-AutoGLM使用的是AutoGLM-Phone-9B模型,这是一个多模态视觉语言模型。通俗地说,它不仅能理解文字,还能"看懂"图片。
每当需要执行操作时,系统会先给手机截个图,把这张图片发给AI模型。模型会分析图片内容:
这是哪个APP?
当前在什么页面?
屏幕上有哪些可以点击的按钮?
搜索框在哪里?
有没有出现错误提示?
这就像给AI装了一双眼睛,让它能像人一样"看"手机屏幕。
光能看还不够,还得会思考。Open-AutoGLM的规划能力体现在:
任务分解: 当你说"打开小红书搜索美食攻略"时,AI会把这个需求拆解成多个步骤:
1. 启动小红书APP
2. 找到搜索框并点击
3. 输入"美食攻略"
4. 点击搜索按钮
5. 等待结果加载
上下文理解: AI会记住之前的操作。比如你说"打开淘宝",然后说"搜索蓝牙耳机",它知道要在已经打开的淘宝里搜索,而不是重新打开APP。
错误处理: 如果遇到广告弹窗、网络加载慢等情况,AI会自动判断并处理,比如关闭弹窗、等待加载完成。
AI想好了要做什么,怎么真正去操作手机呢?答案是ADB(Android Debug Bridge)。
ADB是Android系统的调试工具,通过USB数据线(或WiFi)连接手机和电脑,可以让电脑发送指令控制手机。Open-AutoGLM就是通过ADB来执行具体操作:
# 点击屏幕某个位置adb shell input tap 500 1000# 输入文字adb shell input text "蓝牙耳机"# 滑动屏幕adb shell input swipe 500 1500 500 500# 按返回键adb shell input keyevent 4
为了输入中文,系统还使用了ADB Keyboard这个专门的输入法,因为普通的ADB命令对中文支持不太好。
整个系统的工作流程可以用一个循环来描述:
让我用一个实际例子说明。假设你的指令是:"打开美团,搜索附近的川菜馆"
第一轮循环:
截图: 系统发现当前在手机桌面
AI思考: "需要启动美团APP"
决策: 执行Launch操作,启动美团
执行: 通过ADB命令打开美团
第二轮循环:
截图: 美团首页已打开
AI思考: "看到了顶部的搜索框,需要点击它"
决策: Tap操作,点击搜索框坐标[500, 120]
执行: 模拟点击搜索框
第三轮循环:
截图: 搜索框已激活,弹出键盘
AI思考: "需要输入搜索关键词"
决策: Type操作,输入"川菜馆"
执行: 通过ADB Keyboard输入文字
第四轮循环:
截图: 文字已输入
AI思考: "需要点击搜索按钮"
决策: Tap操作,点击搜索按钮
执行: 点击搜索
第五轮循环:
截图: 搜索结果页面
AI思考: "任务完成,已显示附近的川菜馆列表"
决策: 返回成功状态
结束: 任务完成
每一步,AI都会根据当前屏幕的实际情况做出判断。如果中间出现了广告弹窗,它会先关闭弹窗再继续;如果网络慢了,它会等待页面加载。
说了这么多理论,咱们来实战一下。我会带你从零开始,一步步搭建一个能用的系统。
硬件要求:
一台电脑(Windows/Mac/Linux都可以)
一部Android 7.0以上的手机(或者Android模拟器)
一根能传输数据的USB线(很重要!有些线只能充电)
软件环境:
Python 3.10 或更高版本
至少16GB内存(用于运行AI模型)
50GB以上硬盘空间(模型文件比较大)
ADB是连接手机和电脑的桥梁,必须先装好。
下载ADB工具
访问 Android官网 下载适合你系统的版本,解压到一个好记的位置,比如 D:\adb 或 /Users/你的用户名/adb
配置环境变量
Mac用户在终端执行:
echo 'export PATH=$PATH:/Users/你的用户名/adb' >> ~/.zshrcsource ~/.zshrc
Windows用户:
右键"此电脑" → "属性" → "高级系统设置"
点击"环境变量"
在"系统变量"中找到"Path",点击"编辑"
新建一条,填入你的ADB目录路径
验证安装
打开命令行,输入:
adb version如果看到版本信息,说明安装成功了。
4. 连接手机
手机设置里要开启两个东西:
开发者模式:设置 → 关于手机 → 连续点击"版本号"7-10次,直到提示"您已处于开发者模式"
USB调试:设置 → 开发者选项 → 打开"USB调试"
用数据线连接手机和电脑,手机上会弹出"是否允许USB调试"的提示,点击"允许"。
然后在电脑上输入:
adb devices你应该能看到类似这样的输出:
List of devices attachedabcd1234 device
如果显示"unauthorized",说明手机上还没允许,检查一下手机屏幕的提示。
这是一个特殊的输入法,让AI能够输入中文。
下载APK文件:ADBKeyboard.apk
安装到手机:
adb install ADBKeyboard.apk在手机上:设置 → 系统 → 语言和输入法 → 虚拟键盘 → 启用"ADB Keyboard"
这是最核心也是最复杂的部分。AI模型需要相当的计算资源。
下载模型文件
模型托管在Hugging Face上,大概18GB左右:
# 先安装git-lfsgit lfs install# 下载模型(需要一段时间)git clone https://huggingface.co/zai-org/AutoGLM-Phone-9B
如果国内下载慢,可以用ModelScope镜像:
git clone https://www.modelscope.cn/ZhipuAI/AutoGLM-Phone-9B.git安装推理引擎
我推荐用vLLM,它对多模态模型支持比较好:
pip install vllm如果你的显卡是NVIDIA的,确保已经安装了CUDA。可以用这个命令检查:
nvidia-smi启动模型服务
创建一个启动脚本 start_model.sh:
python3 -m vllm.entrypoints.openai.api_server \--served-model-name autoglm-phone-9b \--allowed-local-media-path / \--mm-encoder-tp-mode data \--mm_processor_cache_type shm \--mm_processor_kwargs '{"max_pixels":5000000}' \--max-model-len 25480 \--chat-template-content-format string \--limit-mm-per-prompt '{"image":10}' \--model ./AutoGLM-Phone-9B \--port 8000
运行脚本:
bash start_model.sh首次启动会加载模型到显存,需要等几分钟。看到类似这样的输出就说明成功了:
INFO: Uvicorn running on http://0.0.0.0:8000性能建议:
显存至少需要12GB(推荐16GB以上)
如果显存不够,可以用--tensor-parallel-size 2开启多卡并行
CPU内存建议32GB以上
终于到主程序了!
下载代码
git clone https://github.com/zai-org/Open-AutoGLM.gitcd Open-AutoGLM
安装依赖
pip install -r requirements.txtpip install -e .
测试一下
python main.py --base-url http://localhost:8000/v1 --model autoglm-phone-9b "打开设置"如果一切正常,你会看到系统开始工作:截图、分析、执行操作。手机上的设置APP应该会自动打开。
现在我们来做几个实际任务,感受一下AI助手的能力。
示例1: 美团订餐
python main.py --base-url http://localhost:8000/v1 \--model autoglm-phone-9b \"打开美团,搜索附近评分最高的川菜馆"
系统会:
启动美团APP
点击搜索框
输入"川菜馆"
等待搜索结果
按评分排序
整个过程你会在终端看到详细的日志:
==================================================💭 思考过程:--------------------------------------------------当前在桌面,需要启动美团应用--------------------------------------------------🎯 执行动作:{"action": "Launch","app": "美团"}====================================================================================================💭 思考过程:--------------------------------------------------美团已打开,看到顶部有搜索框,坐标大约在[540, 150]--------------------------------------------------🎯 执行动作:{"action": "Tap","element": [540, 150]}==================================================... (继续执行其他步骤)
示例2: 淘宝购物
# 也可以用Python APIfrom phone_Agent import PhoneAgentfrom phone_agent.model import ModelConfig# 配置模型model_config = ModelConfig(base_url="http://localhost:8000/v1",model_name="autoglm-phone-9b",)# 创建Agentagent = PhoneAgent(model_config=model_config)# 执行任务result = agent.run("打开淘宝搜索蓝牙耳机,找销量最高的")print(f"任务结果: {result}")
示例3: 自定义敏感操作处理
对于支付、删除等敏感操作,系统会请求确认:
def my_confirmation(message):"""自定义确认函数"""print(f"\n⚠️ 需要确认: {message}")choice = input("是否继续? (y/n): ")return choice.lower() == 'y'def my_takeover(message):"""需要人工接管时的处理"""print(f"\n🤚 需要人工操作: {message}")input("完成后按回车继续...")agent = PhoneAgent(model_config=model_config,confirmation_callback=my_confirmation,takeover_callback=my_takeover)# 这个任务会在支付前请求确认agent.run("打开美团订一份外卖")
运行时如果遇到支付环节,会暂停并提示:
⚠️ 需要确认: 即将支付28.5元是否继续? (y/n): n❌ 用户取消了操作
Open-AutoGLM目前支持50多个主流中文APP,覆盖生活的方方面面:
生活服务类:
外卖点餐:美团、饿了么
打车出行:滴滴出行、高德地图
酒店预订:携程、去哪儿
购票:12306、猫眼电影
电商购物类:
淘宝、京东、拼多多
自动搜索商品
筛选价格、销量
加入购物车
社交娱乐类:
微信:发消息、朋友圈操作
抖音、快手:自动刷视频
小红书:搜索笔记
B站:搜索视频、一键三连
工具类:
备忘录记事
日历添加提醒
设置闹钟
批量文件操作
查看完整列表:
python main.py --list-apps
系统支持人类在手机上的所有基本操作:
操作 |
描述 |
示例场景 |
|---|---|---|
Launch |
启动APP |
打开淘宝 |
Tap |
点击 |
点击搜索按钮 |
Type |
输入文字 |
输入搜索关键词 |
Swipe |
滑动 |
向下滚动查看更多 |
Long Press |
长按 |
长按删除消息 |
Double Tap |
双击 |
双击点赞 |
Back |
返回 |
返回上一页 |
Home |
回桌面 |
退出当前APP |
Wait |
等待 |
等待页面加载 |
Take_over |
人工接管 |
需要输入验证码 |
除了USB连接,Open-AutoGLM还支持通过WiFi远程控制手机,这在很多场景下非常有用。
使用场景:
手机和电脑不在一起
想躺床上用电脑控制手机
多台手机同时控制
服务器上部署,远程访问
配置步骤:
手机开启无线调试
设置 → 开发者选项 → 无线调试 → 开启
记下显示的IP地址和端口,比如 192.168.1.100:5555
电脑连接手机
adb connect 192.168.1.100:5555验证连接
adb devices# 应该显示: 192.168.1.100:5555 device
使用时指定设备
python main.py \--device-id 192.168.1.100:5555 \--base-url http://localhost:8000/v1 \--model autoglm-phone-9b \"打开抖音刷视频"Python API方式:from phone_agent.adb import ADBConnection# 连接远程设备conn = ADBConnection()success, msg = conn.connect("192.168.1.100:5555")print(f"连接状态: {msg}")# 后续使用和USB连接一样agent = PhoneAgent(model_config=model_config,device_id="192.168.1.100:5555")
说了这么多技术细节,Open-AutoGLM究竟解决了什么实际问题呢?
每天要做的很多事情都是重复的:
每天早上打开日历看今天的安排
定期在某个APP上查看订单状态
每周在几个平台上查找特定信息
这些任务完全可以交给AI完成,你只需要看结果就行。
有些任务需要跨多个APP操作:
"查天气预报,如果明天下雨就在备忘录里提醒我带伞"
"在多个外卖平台比价,找最便宜的下单"
"把今天拍的所有照片上传到云盘"
AI可以理解整个流程,自动完成所有步骤。
对于视力障碍或操作不便的用户,语音+AI控制可以极大提升手机使用体验。只需要说出需求,AI就能帮忙完成操作。
如果你是开发者,可以用Open-AutoGLM来:
自动化APP测试
模拟用户行为收集数据
批量操作进行压力测试
让我分享几个真实的使用场景:
案例1: 出差助手
# 一句话搞定所有行程安排agent.run("""帮我安排明天去上海的行程:1. 在12306买明天早上8点到上海的高铁票2. 在携程订明晚的酒店,靠近人民广场3. 在高德地图标记酒店位置4. 在日历里添加提醒""")
案例2: 批量操作
# 批量点赞朋友圈agent.run("打开微信,给最近3天的朋友圈前10条点赞")# 批量下载agent.run("打开小红书,搜索'美食摄影',保存前20张图片")案例3: 定时任务import scheduleimport timedef daily_news():agent.run("""打开今日头条,搜索'人工智能新闻',截图前5条,发送到微信'我的电脑'""")# 每天早上8点执行schedule.every().day.at("08:00").do(daily_news)while True:schedule.run_pending(time.sleep(60)
在使用过程中,有几个需要注意的地方:
敏感信息: 系统会看到屏幕上的所有内容,包括聊天记录、账号信息等
支付操作: 默认会在支付前请求人工确认,建议保持这个设置
云端模型: 如果用云端API,屏幕截图会上传,注意数据隐私
APP版本: 不同版本的APP界面可能不同,AI的识别可能有偏差
网络延迟: 如果网络慢,等待时间可能较长
异常处理: 遇到意外弹窗(广告、更新提示等)可能会卡住
计算资源: 本地部署需要较好的显卡
云端API: 如果用云端服务,会有调用费用
时间成本: 某些复杂任务可能比手动操作更慢
自动化操作: 某些APP可能禁止自动化操作
批量操作: 注意不要违反APP的使用条款
商业使用: 商业用途需要注意版权和授权问题
在使用中可能会遇到一些问题,这里提供解决方案:
问题1: 找不到设备
❌ error: no devices/emulators found解决方法:
# 重启ADB服务adb kill-serveradb start-serveradb devices
问题2: 输入中文失败
检查ADB Keyboard是否安装并启用
在手机设置里把ADB Keyboard设为默认输入法
系统会在需要时自动切换
问题3: 截图是黑屏 这通常是因为APP启用了屏幕保护(银行类、支付类APP常见)。
系统会自动检测并请求人工接管。
问题4: AI判断错误
可能是屏幕太复杂,AI识别失败
可以在prompts.py里调整系统提示词,增加特定场景的说明
或者手动接管,完成关键步骤后再让AI继续
问题5: 模型加载失败
OutOfMemoryError: CUDA out of memory显存不足,可以:
减少--max-model-len参数
使用量化版本的模型
升级显卡或使用云端GPU
如果你想深度定制Open-AutoGLM,这里是一些方向:
修改 phone_agent/config/prompts.py:
SYSTEM_PROMPT = """你是一个专业的手机操作助手。特殊规则:- 在购物时,优先选择官方旗舰店的商品- 避免使用拼多多等平台- 遇到广告自动关闭- 每次操作前说明理由你特别擅长:{你要增强的领域}"""
编辑 phone_agent/config/apps.py:
APP_PACKAGE_MAPPING = {"你的APP名称": "com.example.yourapp",# ... 其他APP}
在 phone_agent/actions/handler.py 添加新操作:
def execute_custom_action(self, params):"""自定义操作"""# 实现你的逻辑pass
from phone_agent import PhoneAgentclass MyAssistant:def __init__(self):self.agent = PhoneAgent(...)def handle_user_request(self, request):# 预处理processed = self.preprocess(request)# 执行result = self.agent.run(processed)# 后处理return self.postprocess(result)
Open-AutoGLM不是完美的,但它展示了一种可能性:AI不只是聊天,还可以真正帮你做事。
它的价值不在于炫技,而在于解放你的时间。那些繁琐的、重复的、让你感到厌烦的手机操作,现在可以交给AI了。
当然,技术还在发展初期,有很多不完善的地方。但正因如此,才有更多的探索空间。如果你是开发者,这是一个很好的学习和贡献的机会;如果你是普通用户,可以期待它在不久的将来变得更加好用。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-09
豆包手机不用买了?能操作手机的AutoGLM开源
2025-12-09
今天,AutoGLM开源:让人人都可构建手机Agent
2025-12-09
多模态文档智能解析模型进展-英伟达开源NVIDIA-Nemotron-Parse-v1.1
2025-12-09
11K+ Star!NotebookLM 最强开源平替来了,支持私有化部署!
2025-12-08
Docker+vLLM内网离线部署Qwen3教程
2025-12-08
Claude Code的最强记忆外挂来了!
2025-12-08
微软开源轻量级实时TTS模型!VibeVoice-Realtime-0.5B:实现多角色自然对话!
2025-12-06
100万亿Token画出AI版图|Claude吃掉编程60%,DeepSeek吃掉开源一半
2025-10-20
2025-11-19
2025-10-27
2025-10-27
2025-10-03
2025-09-17
2025-09-29
2025-10-29
2025-09-29
2025-11-17
2025-11-12
2025-11-10
2025-11-03
2025-10-29
2025-10-28
2025-10-13
2025-09-29
2025-09-17