一天一个开源项目(第29篇):Open-AutoGLM - 用自然语言操控手机的 Phone Agent 框架

0 阅读10分钟

引言

"打开美团搜索附近的火锅店」「给文件传输助手发一条:部署成功」——说完,手机自己动。"

这是"一天一个开源项目"系列的第29篇文章。今天带你了解的项目是 Open-AutoGLMGitHub),由 zai-org(智谱生态)开源。

你希望用自然语言控制手机:打开 App、搜索、点击、输入文字,而不必自己一步步操作。Open-AutoGLM 提供两件事:一是 Phone Agent 框架(运行在电脑上的 Python 代码),通过 ADB(Android)或 HDC(鸿蒙)控制设备,循环执行「截图 → 视觉模型理解界面 → 输出动作(启动 App、点击坐标、输入等)→ 执行」;二是 AutoGLM-Phone 系列视觉语言模型(9B 参数),针对手机界面做了优化,可直接用智谱 BigModel、ModelScope 的 API,或自建 vLLM/SGLang 服务。用户只需说一句如「打开小红书搜索美食」,Agent 即可自动完成整条流程,并支持敏感操作确认与登录/验证码时的人工接管。项目支持 Android 7.0+HarmonyOS NEXT,覆盖 50+ 安卓应用与 60+ 鸿蒙应用,并可与 Midscene.js 等 UI 自动化工具集成。

你将学到什么

  • Open-AutoGLM 的定位:Phone Agent 框架 + AutoGLM-Phone 模型,实现「自然语言 → 手机操作」
  • 工作链路:截图、视觉模型、动作解析、ADB/HDC 执行、远程调试与人工接管
  • 环境准备:Python、ADB/HDC、开发者选项、ADB Keyboard(Android)
  • 模型获取与部署:智谱/ModelScope API 与自建 vLLM/SGLang
  • 支持的应用、可用操作与二次开发结构

前置知识

  • 会使用 Python 3.10+、pip 与虚拟环境
  • 了解 ADB 或 HDC 的基本概念(连接设备、执行命令)
  • 若自建模型服务,需具备 GPU 与 vLLM/SGLang 的粗浅使用经验;使用云端 API 则只需申请 Key

项目背景

项目简介

Open-AutoGLM 包含开源 Phone Agent 框架AutoGLM-Phone 视觉语言模型,目标是「用自然语言操控手机」:用户在电脑端输入指令,Agent 通过 ADB(Android)或 HDC(鸿蒙)控制手机,结合多模态屏幕理解规划能力,自动完成打开应用、点击、输入、滑动等操作。框架内置敏感操作确认与人工接管(如登录、验证码),支持 WiFi/网络远程调试,无需全程插线。模型提供 AutoGLM-Phone-9B(中文优化)与 AutoGLM-Phone-9B-Multilingual(多语言),可从 Hugging Face、ModelScope 下载,或直接调用智谱 BigModel、ModelScope 等已部署 API。项目注明仅供研究与学习,严禁非法用途,使用前需审阅仓库内使用条款。

项目解决的核心问题

  • 希望用「说人话」的方式操作手机,而不是记步骤或写脚本
  • 需要一套可运行的 Agent 代码 + 针对手机界面优化的视觉模型,便于复现与二次开发
  • 需要同时支持 Android 与鸿蒙、本地与远程设备、中文与英文指令

面向的用户群体

  • 研究或实践「手机 Agent」「GUI Agent」的开发者与团队
  • 需要自动化操作 Android/鸿蒙设备做测试、演示或辅助任务的用户
  • 希望将「自然语言控手机」能力接入自家产品(如与 Midscene.js 集成)的集成方

作者/团队介绍

  • 组织zai-orgGitHub),与智谱 AI 生态相关;README 提到智谱 AI 输入法、GLM Coding Plan、AutoGLM 实战派活动等
  • 论文:AutoGLM(arXiv:2411.00820)、MobileRL(arXiv:2509.18119);模型结构与 GLM-4.1V-9B-Thinking 相同,可参考 GLM-V 的部署说明
  • 博客与产品autoglm.z.ai/blog

项目数据

  • GitHub Stars: 23.5k+
  • 🍴 Forks: 3.7k+
  • 📦 版本: 以 main 为主干,模型见 Hugging Face / ModelScope
  • 📄 License: Apache-2.0
  • 🌐 文档与博客: autoglm.z.ai/blog、仓库 README 与 README_en.mdiOS 配置指南
  • 💬 社区: 微信社区、智谱 AI 输入法 X 账号、GitHub Issues

主要功能

核心作用

Open-AutoGLM 的核心作用是把自然语言指令变成手机上的实际操作

  1. 接收指令:用户输入如「打开美团搜索附近的火锅店」「打开微信给文件传输助手发:部署成功」
  2. 截图与理解:Agent 通过 ADB/HDC 获取当前屏幕截图,调用 AutoGLM-Phone 视觉模型理解界面内容与用户目标
  3. 规划与输出动作:模型输出结构化动作(如 LaunchTapTypeSwipe 等),Agent 解析后发给设备执行
  4. 循环直到完成:执行后再次截图、理解、规划,直到任务完成或达到最大步数、或触发人工接管
  5. 安全与接管:敏感操作可配置确认回调;登录、验证码等场景可触发人工接管回调,完成后继续

使用场景

  1. 自动化测试与演示

    • 用自然语言驱动 App 流程,减少手写 UI 自动化脚本
  2. 个人助理式操作

    • 「打开淘宝搜索无线耳机」「打开小红书搜索美食攻略」等,由 Agent 自动完成多步操作
  3. 远程控机与调试

    • 通过 WiFi ADB/HDC 连接设备,在无 USB 环境下控制手机,便于远程演示或开发
  4. 与 Midscene.js 等工具集成

    • Midscene.js 已适配 AutoGLM,可在 iOS/Android 上通过 YAML 或 JavaScript 流程配合 AutoGLM 做自动化
  5. 研究与二次开发

    • 基于 phone_agent 包扩展新应用、新操作或新 Prompt,或接入自建模型服务

快速开始

环境:Python 3.10+;Android 设备需 ADB + 开发者模式 + USB 调试(部分机型需「USB 调试(安全设置)」)+ ADB Keyboard 安装并启用;鸿蒙设备需 HDC + 开发者选项;iOS 见 docs/ios_setup

安装 Agent(本仓库)

git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM
pip install -r requirements.txt
pip install -e .

连接设备:USB 连接手机后执行 adb devices(Android)或 hdc list targets(鸿蒙),确认设备已列出。

使用第三方模型服务(免本地 GPU)

# 智谱 BigModel(需在智谱平台申请 API Key)
python main.py --base-url https://open.bigmodel.cn/api/paas/v4 --model "autoglm-phone" --apikey "your-key" "打开美团搜索附近的火锅店"

# ModelScope(需在魔搭申请 API Key)
python main.py --base-url https://api-inference.modelscope.cn/v1 --model "ZhipuAI/AutoGLM-Phone-9B" --apikey "your-key" "打开美团搜索附近的火锅店"

使用自建模型服务:用 vLLM 或 SGLang 部署 AutoGLM-Phone-9B(参见 README 的启动参数),得到 OpenAI 兼容 API(如 http://localhost:8000/v1),再将 --base-url--model 指向该服务。

Python API 示例

from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig

model_config = ModelConfig(
    base_url="http://localhost:8000/v1",
    model_name="autoglm-phone-9b",
)
agent = PhoneAgent(model_config=model_config)
result = agent.run("打开淘宝搜索无线耳机")
print(result)

核心特性

  1. 多模态屏幕理解:AutoGLM-Phone 针对手机界面优化,根据截图理解当前页面并输出下一步动作
  2. Android + 鸿蒙:Android 用 ADB,鸿蒙用 HDC,同一套 Agent 通过 --device-type adb/hdc 切换
  3. 50+ 安卓应用 / 60+ 鸿蒙应用:社交通讯、电商、外卖、出行、视频、音乐、生活、内容社区等,支持应用列表见 python main.py --list-apps--device-type hdc --list-apps
  4. 丰富操作:Launch、Tap、Type、Swipe、Back、Home、Long Press、Double Tap、Wait、Take_over(人工接管)
  5. 远程调试:支持 adb connect IP:5555 / hdc tconn IP:5555,通过 WiFi 控制设备
  6. 敏感操作与人工接管:可配置 confirmation_callbacktakeover_callback,在支付、登录、验证码等场景介入
  7. 中英文 Prompt--lang cn(默认)与 --lang en,对应 phone_agent/config/prompts_zh.pyprompts_en.py,可自定义
  8. OpenAI 兼容 API:模型服务暴露 OpenAI 格式接口即可,便于对接智谱、ModelScope、自建 vLLM/SGLang

项目优势

维度Open-AutoGLM纯手写 UI 自动化脚本仅云端「手机助手」产品
输入方式自然语言坐标/选择器、代码自然语言但闭源/不可控
设备与系统Android + 鸿蒙,本地/远程取决于脚本与工具取决于产品
模型与部署开源模型 + 自建或第三方 API无模型通常仅云端
可扩展性改 Prompt、加应用、接自建服务高但需写代码
研究与复现论文 + 代码 + 模型可下载视脚本是否开源难以复现

为什么选择 Open-AutoGLM?

  • 端到端开源:从 Agent 逻辑到模型(含中文/多语言版)均可获取,便于学习与二次开发
  • 即用与自建兼顾:可用智谱/ModelScope 快速体验,也可自建 vLLM/SGLang 做私有化或定制
  • 双平台:同时支持 Android 与鸿蒙,且与 Midscene.js 等生态对接,扩展场景多

项目详细剖析

架构简述

  • 本仓库(Agent 端):运行在电脑上,负责拉取模型 API、解析模型输出的动作、通过 ADB/HDC 下发截图与操作指令。
  • 模型服务:独立进程或远程 API,接收「截图 + 对话/任务」等输入,返回结构化动作(如 do(action="Launch", app="美团"))。可与本机 vLLM/SGLang 或智谱、ModelScope 等对接。
  • 设备端:手机/平板开启开发者模式与 USB 调试(及 ADB Keyboard 等),通过 USB 或 WiFi 与电脑上的 ADB/HDC 通信。

项目结构(phone_agent)

  • agent.py:PhoneAgent 主类,协调截图、调用模型、解析动作、执行操作与回调
  • adb/:ADB 连接、截图、文本输入(ADB Keyboard)、设备控制(点击、滑动等)
  • actions/handler.py:将模型输出的动作转为 ADB/HDC 命令并执行
  • config/:支持的应用映射(apps.py)、中文/英文系统提示词(prompts_zh.py、prompts_en.py)
  • model/client.py:OpenAI 兼容的模型客户端,用于请求视觉模型 API

鸿蒙则在仓库内通过 phone_agent 的 HDC 相关模块(如 hdc/)实现,命令行用 --device-type hdc 指定。

模型与部署

  • AutoGLM-Phone-9B:中文手机应用场景优化,Hugging FaceModelScope
  • AutoGLM-Phone-9B-Multilingual:多语言,适合中英混合或英文界面
  • 部署:推荐使用 Structured Output 能力强的推理服务(如 OpenAI、Gemini);自建时需按 README 的 vLLM/SGLang 参数启动(如 --max-model-len 25480--limit-mm-per-prompt 等),否则可能出现输出格式错误或乱码。模型约 20GB,需 GPU(建议 24GB+ 显存)若本地部署。

注意事项

  • 合规与用途:项目声明仅供研究与学习,严禁非法获取信息、干扰系统或违法使用;使用前请阅读仓库内使用条款与隐私政策
  • 权限与安全:需在设备上开启开发者模式与 USB 调试,敏感操作建议通过回调确认,支付/银行等页面可能截图为黑屏并触发接管
  • 中文输入:Android 依赖 ADB Keyboard,未安装或未启用会导致输入异常;鸿蒙使用系统输入法

项目地址与资源

官方资源

相关资源

适用人群

  • 手机 Agent / GUI Agent 研究者:需要可复现的框架与模型
  • 自动化测试与演示:用自然语言驱动 Android/鸿蒙设备流程
  • 产品集成方:希望接入「自然语言控手机」能力(如与 Midscene.js 结合)
  • 智谱/多模态生态使用者:已在用智谱 API 或 GLM 系列,希望扩展到手机操控场景

欢迎来我中的个人主页找到更多有用的知识和有趣的产品