|
原来使用AutoGLM,稍微用用就要收费,想不到豆包手机出来后,AutoGLM居然开源了! 你有没有想过,有一天只需要对手机说一句话,它就能自动帮你完成复杂的操作?比如“打开美团,搜索附近的火锅店,找评分最高的那家,帮我订今晚7点的位子”,然后你就可以继续做别的事,等它搞定? 这不是科幻电影,而是现在就能实现的技术。今天要和你聊的Open-AutoGLM,就是这样一个能够理解屏幕、自主操作手机的AI助手。 一、这到底是个什么东西?简单来说,Open-AutoGLM是一个手机端的AI智能助理框架。它基于智谱AI的AutoGLM技术构建,核心能力是:能"看懂"手机屏幕上的内容,并像人一样去点击、滑动、输入,帮你完成各种任务。 想象一下,你的手机里住着一个看不见的小助手。你告诉它要做什么,它就会: 观察当前屏幕显示的是什么 思考下一步该做什么 执行具体的操作(点击按钮、输入文字等) 继续观察结果,直到任务完成
整个过程完全自动化,你只需要在开始时说明需求,最后确认支付这类敏感操作就行了。 二、它是怎么工作的?三个关键技术1. 视觉理解:AI的"眼睛"Open-AutoGLM使用的是AutoGLM-Phone-9B模型,这是一个多模态视觉语言模型。通俗地说,它不仅能理解文字,还能"看懂"图片。 每当需要执行操作时,系统会先给手机截个图,把这张图片发给AI模型。模型会分析图片内容: 这是哪个APP? 当前在什么页面? 屏幕上有哪些可以点击的按钮? 搜索框在哪里? 有没有出现错误提示?
这就像给AI装了一双眼睛,让它能像人一样"看"手机屏幕。 2. 智能规划:AI的"大脑"光能看还不够,还得会思考。Open-AutoGLM的规划能力体现在: 任务分解: 当你说"打开小红书搜索美食攻略"时,AI会把这个需求拆解成多个步骤: 1. 启动小红书APP 2. 找到搜索框并点击 3. 输入"美食攻略" 4. 点击搜索按钮 5. 等待结果加载 上下文理解: AI会记住之前的操作。比如你说"打开淘宝",然后说"搜索蓝牙耳机",它知道要在已经打开的淘宝里搜索,而不是重新打开APP。 错误处理: 如果遇到广告弹窗、网络加载慢等情况,AI会自动判断并处理,比如关闭弹窗、等待加载完成。 3. ADB控制:AI的"手"AI想好了要做什么,怎么真正去操作手机呢?答案是ADB(Android Debug Bridge)。 ADB是Android系统的调试工具,通过USB数据线(或WiFi)连接手机和电脑,可以让电脑发送指令控制手机。Open-AutoGLM就是通过ADB来执行具体操作: #点击屏幕某个位置adbshellinputtap5001000#输入文字adbshellinputtext"蓝牙耳机"#滑动屏幕adbshellinputswipe5001500500500#按返回键adbshellinputkeyevent4 为了输入中文,系统还使用了ADB Keyboard这个专门的输入法,因为普通的ADB命令对中文支持不太好。 三、核心原理:一个循环的智能决策过程整个系统的工作流程可以用一个循环来描述: 让我用一个实际例子说明。假设你的指令是:"打开美团,搜索附近的川菜馆" 第一轮循环: 截图: 系统发现当前在手机桌面 AI思考: "需要启动美团APP" 决策: 执行Launch操作,启动美团 执行: 通过ADB命令打开美团
第二轮循环: 第三轮循环: 截图: 搜索框已激活,弹出键盘 AI思考: "需要输入搜索关键词" 决策: Type操作,输入"川菜馆" 执行: 通过ADB Keyboard输入文字
第四轮循环: 截图: 文字已输入 AI思考: "需要点击搜索按钮" 决策: Tap操作,点击搜索按钮 执行: 点击搜索
第五轮循环: 截图: 搜索结果页面 AI思考: "任务完成,已显示附近的川菜馆列表" 决策: 返回成功状态 结束: 任务完成
每一步,AI都会根据当前屏幕的实际情况做出判断。如果中间出现了广告弹窗,它会先关闭弹窗再继续;如果网络慢了,它会等待页面加载。 四、动手实践:一步步部署你自己的手机AI助手说了这么多理论,咱们来实战一下。我会带你从零开始,一步步搭建一个能用的系统。 准备工作清单硬件要求: 一台电脑(Windows/Mac/Linux都可以) 一部Android 7.0以上的手机(或者Android模拟器) 一根能传输数据的USB线(很重要!有些线只能充电)
软件环境: Python 3.10 或更高版本 至少16GB内存(用于运行AI模型) 50GB以上硬盘空间(模型文件比较大)
第一步:配置ADB环境ADB是连接手机和电脑的桥梁,必须先装好。 下载ADB工具
访问 Android官网 下载适合你系统的版本,解压到一个好记的位置,比如D:\adb或/Users/你的用户名/adb 配置环境变量
Mac用户在终端执行: echo'exportPATH=$PATH:/Users/你的用户名/adb'>>~/.zshrcsource~/.zshrc Windows用户: 验证安装
打开命令行,输入: 如果看到版本信息,说明安装成功了。 4. 连接手机 手机设置里要开启两个东西: 用数据线连接手机和电脑,手机上会弹出"是否允许USB调试"的提示,点击"允许"。 然后在电脑上输入: 你应该能看到类似这样的输出: Listofdevicesattachedabcd1234device 如果显示"unauthorized",说明手机上还没允许,检查一下手机屏幕的提示。 第二步:安装ADB Keyboard这是一个特殊的输入法,让AI能够输入中文。 下载APK文件:ADBKeyboard.apk 安装到手机:
adbinstallADBKeyboard.apk 在手机上:设置 → 系统 → 语言和输入法 → 虚拟键盘 → 启用"ADB Keyboard"
第三步:部署AI模型这是最核心也是最复杂的部分。AI模型需要相当的计算资源。 下载模型文件
模型托管在Hugging Face上,大概18GB左右: #先安装git-lfsgitlfsinstall#下载模型(需要一段时间)gitclonehttps://huggingface.co/zai-org/AutoGLM-Phone-9B 如果国内下载慢,可以用ModelScope镜像: gitclonehttps://www.modelscope.cn/ZhipuAI/AutoGLM-Phone-9B.git 安装推理引擎
我推荐用vLLM,它对多模态模型支持比较好: 如果你的显卡是NVIDIA的,确保已经安装了CUDA。可以用这个命令检查: 启动模型服务
创建一个启动脚本start_model.sh: python3-mvllm.entrypoints.openai.api_server\--served-model-nameautoglm-phone-9b\--allowed-local-media-path/\--mm-encoder-tp-modedata\--mm_processor_cache_typeshm\--mm_processor_kwargs'{"max_pixels":5000000}'\--max-model-len25480\--chat-template-content-formatstring\--limit-mm-per-prompt'{"image":10}'\--model./AutoGLM-Phone-9B\--port8000运行脚本: 首次启动会加载模型到显存,需要等几分钟。看到类似这样的输出就说明成功了: INFO:Uvicornrunningonhttp://0.0.0.0:8000 性能建议: 第四步:安装Open-AutoGLM终于到主程序了! 下载代码
gitclonehttps://github.com/zai-org/Open-AutoGLM.gitcdOpen-AutoGLM 安装依赖
pipinstall-rrequirements.txtpipinstall-e. 测试一下
pythonmain.py--base-urlhttp://localhost:8000/v1--modelautoglm-phone-9b"打开设置" 如果一切正常,你会看到系统开始工作:截图、分析、执行操作。手机上的设置APP应该会自动打开。 第五步:实际使用示例现在我们来做几个实际任务,感受一下AI助手的能力。 示例1: 美团订餐 pythonmain.py--base-urlhttp://localhost:8000/v1\--modelautoglm-phone-9b\"打开美团,搜索附近评分最高的川菜馆" 系统会: 启动美团APP 点击搜索框 输入"川菜馆" 等待搜索结果 按评分排序
整个过程你会在终端看到详细的日志: ==================================================💭思考过程:--------------------------------------------------当前在桌面,需要启动美团应用--------------------------------------------------🎯执行动作:{"action":"Launch","app":"美团"}====================================================================================================💭思考过程:--------------------------------------------------美团已打开,看到顶部有搜索框,坐标大约在[540,150]--------------------------------------------------🎯执行动作:{"action":"Tap","element":[540,150]}==================================================...(继续执行其他步骤)示例2: 淘宝购物 #也可以用PythonAPIfromphone_AgentimportPhoneAgentfromphone_agent.modelimportModelConfig#配置模型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: 自定义敏感操作处理 对于支付、删除等敏感操作,系统会请求确认: defmy_confirmation(message):"""自定义确认函数"""print(f"\n⚠️需要确认:{message}")choice=input("是否继续?(y/n):")returnchoice.lower()=='y'defmy_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 | 人工接管 | 需要输入验证码 |
七、远程控制:通过WiFi使用除了USB连接,Open-AutoGLM还支持通过WiFi远程控制手机,这在很多场景下非常有用。 使用场景: 手机和电脑不在一起 想躺床上用电脑控制手机 多台手机同时控制 服务器上部署,远程访问
配置步骤: 手机开启无线调试
电脑连接手机 adbconnect192.168.1.100:5555 验证连接
adbdevices#应该显示:192.168.1.100:5555device 使用时指定设备
pythonmain.py\--device-id192.168.1.100:5555\--base-urlhttp://localhost:8000/v1\--modelautoglm-phone-9b\"打开抖音刷视频" ythonAPI方式:fromphone_agent.adbimportADBConnection#连接远程设备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究竟解决了什么实际问题呢? 1. 重复性任务自动化每天要做的很多事情都是重复的: 每天早上打开日历看今天的安排 定期在某个APP上查看订单状态 每周在几个平台上查找特定信息
这些任务完全可以交给AI完成,你只需要看结果就行。 2. 复杂流程简化有些任务需要跨多个APP操作: AI可以理解整个流程,自动完成所有步骤。 3. 无障碍辅助对于视力障碍或操作不便的用户,语音+AI控制可以极大提升手机使用体验。只需要说出需求,AI就能帮忙完成操作。 4. 开发和测试自动化如果你是开发者,可以用Open-AutoGLM来: 自动化APP测试 模拟用户行为收集数据 批量操作进行压力测试
九、实际应用案例让我分享几个真实的使用场景: 案例1: 出差助手 #一句话搞定所有行程安排agent.run("""帮我安排明天去上海的行程:1.在12306买明天早上8点到上海的高铁票2.在携程订明晚的酒店,靠近人民广场3.在高德地图标记酒店位置4.在日历里添加提醒""")案例2: 批量操作 #批量点赞朋友圈agent.run("打开微信,给最近3天的朋友圈前10条点赞")#批量下载agent.run("打开小红书,搜索'美食摄影',保存前20张图片")案例3:定时任务importscheduleimporttimedefdaily_news():agent.run("""打开今日头条,搜索'人工智能新闻',截图前5条,发送到微信'我的电脑'""")#每天早上8点执行schedule.every().day.at("08:00").do(daily_news)whileTrue:schedule.run_pending(time.sleep(60)十、实际使用中的注意事项在使用过程中,有几个需要注意的地方: 1. 隐私和安全敏感信息: 系统会看到屏幕上的所有内容,包括聊天记录、账号信息等 支付操作: 默认会在支付前请求人工确认,建议保持这个设置 云端模型: 如果用云端API,屏幕截图会上传,注意数据隐私
2. 稳定性问题3. 成本考虑计算资源: 本地部署需要较好的显卡 云端API: 如果用云端服务,会有调用费用 时间成本: 某些复杂任务可能比手动操作更慢
4. 法律合规自动化操作: 某些APP可能禁止自动化操作 批量操作: 注意不要违反APP的使用条款 商业使用: 商业用途需要注意版权和授权问题
十一、常见问题排查在使用中可能会遇到一些问题,这里提供解决方案: 问题1: 找不到设备 ❌error:nodevices/emulatorsfound 解决方法: #重启ADB服务adbkill-serveradbstart-serveradbdevices 问题2: 输入中文失败 问题3: 截图是黑屏 这通常是因为APP启用了屏幕保护(银行类、支付类APP常见)。 系统会自动检测并请求人工接管。 问题4: AI判断错误 问题5: 模型加载失败 OutOfMemoryError:CUDAoutofmemory 显存不足,可以: 减少--max-model-len参数 使用量化版本的模型 升级显卡或使用云端GPU
十二、进阶定制:二次开发如果你想深度定制Open-AutoGLM,这里是一些方向: 1. 自定义System Prompt修改phone_agent/config/prompts.py: SYSTEM_PROMPT="""你是一个专业的手机操作助手。特殊规则:-在购物时,优先选择官方旗舰店的商品-避免使用拼多多等平台-遇到广告自动关闭-每次操作前说明理由你特别擅长:{你要增强的领域}"""2. 添加新的APP支持编辑phone_agent/config/apps.py: APP_PACKAGE_MAPPING={"你的APP名称":"com.example.yourapp",#...其他APP}3. 扩展操作类型在phone_agent/actions/handler.py添加新操作: defexecute_custom_action(self,params):"""自定义操作"""#实现你的逻辑pass 4. 集成到自己的系统fromphone_agentimportPhoneAgentclassMyAssistant:def__init__(self):self.agent=PhoneAgent(...)defhandle_user_request(self,request):#预处理processed=self.preprocess(request)#执行result=self.agent.run(processed)#后处理returnself.postprocess(result) 十三、总结Open-AutoGLM不是完美的,但它展示了一种可能性:AI不只是聊天,还可以真正帮你做事。 它的价值不在于炫技,而在于解放你的时间。那些繁琐的、重复的、让你感到厌烦的手机操作,现在可以交给AI了。 当然,技术还在发展初期,有很多不完善的地方。但正因如此,才有更多的探索空间。如果你是开发者,这是一个很好的学习和贡献的机会;如果你是普通用户,可以期待它在不久的将来变得更加好用。
|