当前位置: 首页 > news >正文

Open-AutoGLM 上手:开源的手机操作智能体

今天在 GitHub Trending 上看到的一个项目,试了一下完成度还是比较高的。

这个项目通过接入一个 GLM 微调的大模型,能够借助 adb 完成手机的自动操作,可以实现一些比较复杂的逻辑。

项目主页:https://github.com/zai-org/Open-AutoGLM

要求

  • 一台电脑,安装 Python 3.10 或更新版本,以及 adb
  • 一台 Android 7.0 或更新版本的手机
  • 一条 USB 数据线,用于连接手机和电脑

我的环境:

  • Windows 11,Python 3.13.2
  • 红米 K30 Pro,安装 MIUI 14.0.4 系统,Android 12

部署模型

官方提供了一个中文特化模型和一个多语言模型。我这里下载了中文模型:https://huggingface.co/zai-org/AutoGLM-Phone-9B

此模型是在 GLM-4.1V-9B 的基础上微调来的,目前还没有人上传 AWQ 量化或 FP8 量化版本,暂时用不了量化,而由于 llama.cpp 尚未支持 GLM-4.1V 的视觉输入,GGUF 同样是不可用的。这里我只能下载 BF16 格式的原始模型,模型权重大约 20 GB,我使用了一张 RTX 5880 Ada 48G 来部署。可以使用 vllm 或 sglang,我使用 vllm,注意使用项目主页里提供的参数,否则可能影响效果。

等待 llama.cpp 添加支持后,模型部署的门槛应当可以显著降低。

如果没有本地部署的条件,也可以使用 ModelScope 平台提供的免费 API:https://modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B 本文撰写时,此模型的推理是热可用状态,但由于使用人数较多可能比较卡顿。

安装 adb 并开启 USB 调试

adb 是 Google 提供的 Android 官方调试工具,我们需要使用 adb 来与手机通信。根据文档,可以到 https://developer.android.com/tools/releases/platform-tools?hl=zh-cn 下载安装 adb。我先前已经完整安装了 Android Studio 和相应工具链,因此无需额外安装 adb。

然后需要到手机的开发者设置中开启 USB 调试,小米系手机还需要额外开启 USB 调试(安全设置),这个选项要求手机必须插入 SIM 卡才能开启,开启后可以移除 SIM 卡。

img

开启后,将手机连接到电脑,然后在电脑命令行中执行 adb devices,应当可以看到以下输出:

List of devices attached
d00b4f60        device

注意执行此命令时可能需要在手机上授权一下。只需要授权一次,后续调试不需要再次授权。

然后到 https://github.com/senzhk/ADBKeyBoard/blob/master/ADBKeyboard.apk 下载 ADBKeyboard 的安装包并安装。模型可以通过 ADBKeyboard 在手机上输入文字。

(可选)安装 scrcpy

https://github.com/Genymobile/scrcpy

这是一个在电脑上显示手机屏幕的工具。使用这个工具可以直接在电脑屏幕上监视手机屏幕,比较方便。

确保手机连接到电脑,从 Release 中下载最新包,解压后运行 scrcpy-console.bat 后应当可以看到手机的投屏。

img

配置项目环境

需要完整克隆这个仓库:

git clone git@github.com:zai-org/Open-AutoGLM.git

此项目目前仅依赖 Pillowopenai 两个包。我直接通过 uv init 建立了一个 uv 项目,然后通过 uv add Pillow openai 安装了这两个包。

配置好环境后,可以运行 scripts/check_deployment_cn.py 来确认模型是否正常工作。此文件接受两个必要的参数:base_urlmodel。假设我们在本机部署模型,那么 vllm 提供的 OpenAI 兼容端点应该是 http://localhost:8000/v1。我们使用以下参数即可启动脚本:

v run scripts\check_deployment_cn.py --base-url http://114.213.214.224:8000/v1 --model autoglm-phone-9b

此脚本的正常输出类似下面:

开始测试模型推理...
Base URL: http://localhost:8000/v1
Model: autoglm-phone-9b
Messages file: scripts/sample_messages.json
================================================================================模型推理结果:
================================================================================
用户想要比较这个洗发水在京东和淘宝上的价格,然后选择最便宜的平台下单。当前在小红书app上,显示的是一个关于LUMMI MOOD洗发水的帖子。我需要:
1. 先启动京东app,搜索这个洗发水
2. 查看京东的价格
3. 再启动淘宝app,搜索这个洗发水
4. 查看淘宝的价格
5. 比较价格后,选择最便宜的京东或淘宝下单首先,我需要从当前的小红书界面退出,然后启动京东app。
do(action="Launch", app="京东")
================================================================================统计信息:- Prompt tokens: 5127- Completion tokens: 130- Total tokens: 5257请根据上述推理结果判断模型部署是否符合预期。

总之能看到模型的输出应该就说明模型没有问题了。

接下来运行 main.py 来启动一个交互式界面,同样需要上面的两个参数,因此我们使用命令:

uv run main.py --base-url http://114.213.214.224:8000/v1 --model "autoglm-phone-9b"

如果一切正常,启动时的输出如下:

🔍 Checking system requirements...
--------------------------------------------------
1. Checking ADB installation... ✅ OK (Android Debug Bridge version 1.0.41)
2. Checking connected devices... ✅ OK (1 device(s): d00b4f60)
3. Checking ADB Keyboard... ✅ OK
--------------------------------------------------
✅ All system checks passed!🔍 Checking model API...
--------------------------------------------------
1. Checking API connectivity (http://localhost:8000/v1)... ✅ OK
--------------------------------------------------
✅ Model API checks passed!==================================================
Phone Agent - AI-powered phone automation
==================================================
Model: autoglm-phone-9b
Base URL: http://localhost:8000/v1
Max Steps: 100
Language: cn
Device: d00b4f60 (auto-detected)
==================================================Entering interactive mode. Type 'quit' to exit.Enter your task:

然后,我们就可以在终端中输入手机操作指令了。

在 B 站挂了一个运行效果视频:https://www.bilibili.com/video/BV1TUmEBJEwu/

http://www.jsqmd.com/news/77985/

相关文章:

  • Visual C++运行库缺失问题全面解决方案
  • SAP-MM采购申请批导程序-BAPI_PR_CREATE
  • 2025年湖南口碑好的金刚砂材料正规公司排行榜,值得推荐的金 - myqiye
  • 2025陕西优质短视频拍摄公司TOP5权威推荐:本地企业获客 - 工业品牌热点
  • 办公室下午茶小包装零食推荐:我工位抽屉里那套“更轻负担”的 Fixbody 清单 - AIEO
  • 2025比较好的手表OEM生产厂家TOP5测评:甄选优质伙伴 - 工业推荐榜
  • 汽车测试技术解析:小型高低温试验箱在多场景下的应用与优势
  • 筑牢工业信息安全防线:全栈国产化如何为关键行业构建“免疫系统”
  • 15分钟构建JRE版本兼容性测试工具
  • 2025不容错过!山东十大阿胶生产厂家实力解析,膏方类产品/阿胶类/阿胶/阿胶产品/阿胶类产品/阿胶糕/非遗膏方/膏方阿胶采购有哪些 - 品牌推荐师
  • CodeQwen1.5微服务开发实战:从架构设计到部署上线的完整指南
  • 如何用AI快速定位和解决Spring启动异常
  • 一站式网络安全学习路线:零基础入门到精通全程详解
  • 2025表格AI突破:MachineLearningLM实现多示例学习跃升,表格分类准确率提升15%
  • 企业IT管理实战:如何安全解除应用拦截
  • 30亿参数改写AI格局:ERNIE 4.5-VL-28B-A3B如何重塑企业智能应用
  • 从零玩转RT-Thread(19):
  • 双重遗忘机制对比实验传统Sigmoid激活与ReLU变体的优劣分析
  • 万亿参数大模型成本直降80%:Kimi K2如何用MoE架构重塑企业AI应用
  • 用du命令数据构建实时磁盘监控仪表盘
  • 告别重复劳动:useEffect最佳实践提升开发效率
  • 对比实验:LangChain-ChatChat vs 传统对话开发效率
  • 政务工作的救星ChatPPT:演讲稿生成PPT 真的超棒!
  • 用Spyder快速验证你的数据科学想法
  • PHPCompatibility:轻松解决PHP版本兼容性问题的终极工具
  • 终极指南:5分钟掌握NewGAN-Manager,打造真实足球经理球员面部效果
  • Mac性能调优终极指南:告别过热与续航焦虑
  • ChatBox与Ollama连接故障快速诊断手册
  • 想入门网络安全?这份超详细知识图谱与学习路线图,看这篇就够了!
  • 【bug】bug记录学习,Win系统下爆栈的表现, chkstk.asm 实际是栈溢出