The project's README from github.com/zai-org/Open-AutoGLM. As one markdown file: README.md.
👋 加入我们的 微信 社区
👋 关注智谱 AI 输入法 X 账号
🎤 进一步在我们的产品 智谱 AI 输入法 体验“用嘴发指令”
AutoGLM 实战派 开发者激励活动火热进行中,跑通、二创即可瓜分数万元现金奖池!成果提交 👉 入口
你可以使用Claude Code,配置 GLM Coding Plan 后,输入以下提示词,快速部署本项目。
访问文档,为我安装 AutoGLM
https://raw.githubusercontent.com/zai-org/Open-AutoGLM/refs/heads/main/README.md
Phone Agent 是一个基于 AutoGLM 构建的手机端智能助理框架,它能够以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务。系统通过 ADB(Android Debug Bridge)来控制设备,以视觉语言模型进行屏幕感知,再结合智能规划能力生成并执行操作流程。用户只需用自然语言描述需求,如“打开小红书搜索美食”,Phone Agent 即可自动解析意图、理解当前界面、规划下一步动作并完成整个流程。系统还内置敏感操作确认机制,并支持在登录或验证码场景下进行人工接管。同时,它提供远程 ADB 调试能力,可通过 WiFi 或网络连接设备,实现灵活的远程控制与开发。
⚠️ 本项目仅供研究和学习使用。严禁用于非法获取信息、干扰系统或任何违法活动。请仔细审阅 使用条款。
Midscene.js 是一款由视觉模型驱动的开源 UI 自动化 SDK,支持通过 JavaScript 或 Yaml 格式的流程语法,实现多平台的自动化。
目前 Midscene.js 已完成对 AutoGLM 模型的适配,你可以通过 Midscene.js 接入指南 快速体验 AutoGLM 在 iOS 和 Android 设备上的自动化效果。
| Model | Download Links |
|---|---|
| AutoGLM-Phone-9B | 🤗 Hugging Face 🤖 ModelScope |
| AutoGLM-Phone-9B-Multilingual | 🤗 Hugging Face 🤖 ModelScope |
其中,AutoGLM-Phone-9B 是针对中文手机应用优化的模型,而 AutoGLM-Phone-9B-Multilingual 支持英语场景,适用于包含英文等其他语言内容的应用。
建议使用 Python 3.10 及以上版本。
根据你的设备类型选择相应的工具:
MacOS 配置方法:在 Terminal 或者任何命令行工具里
# 假设解压后的目录为 ~/Downloads/platform-tools。如果不是请自行调整命令。
export PATH=${PATH}:~/Downloads/platform-tools
Windows 配置方法:可参考 第三方教程 进行配置。
MacOS/Linux 配置方法:
# 假设解压后的目录为 ~/Downloads/harmonyos-sdk/toolchains。请根据实际路径调整。
export PATH=${PATH}:~/Downloads/harmonyos-sdk/toolchains
Windows 配置方法:将 HDC 工具所在目录添加到系统 PATH 环境变量
开发者模式 和 USB 调试设置-关于手机-版本号 然后连续快速点击 10
次左右,直到弹出弹窗显示“开发者模式已启用”。不同手机会有些许差别,如果找不到,可以上网搜索一下教程。设置-开发者选项-USB 调试,勾选启用adb devices
查看是否有设备信息, 如果没有说明连接失败.请务必仔细检查相关权限

注意:鸿蒙设备使用原生输入方法,无需安装 ADB Keyboard。
如果你使用的是 Android 设备:
下载 安装包 并在对应的安卓设备中进行安装。
注意,安装完成后还需要到 设置-输入法 或者 设置-键盘列表 中启用 ADB Keyboard 才能生效(或使用命令adb shell ime enable com.android.adbkeyboard/.AdbIMEHow-to-use)
如果你使用的是 iPhone 设备,请参考专门的 iOS 配置文档:
该文档详细介绍了如何配置 WebDriverAgent 和 iPhone 设备,以便在 iOS 上使用 AutoGLM。
pip install -r requirements.txt
pip install -e .
确认 USB数据线具有数据传输功能, 而不是仅有充电功能
确保已安装 ADB 并使用 USB数据线 连接设备:
# 检查已连接的设备
adb devices
# 输出结果应显示你的设备,如:
# List of devices attached
# emulator-5554 device
确认 USB数据线具有数据传输功能, 而不是仅有充电功能
确保已安装 HDC 并使用 USB数据线 连接设备:
# 检查已连接的设备
hdc list targets
# 输出结果应显示你的设备,如:
# 7001005458323933328a01bce01c2500
你可以选择自行部署模型服务,或使用第三方模型服务商。
如果你不想自行部署模型,可以使用以下已部署我们模型的第三方服务:
1. 智谱 BigModel
--base-url: https://open.bigmodel.cn/api/paas/v4--model: autoglm-phone--apikey: 在智谱平台申请你的 API Key2. ModelScope(魔搭社区)
--base-url: https://api-inference.modelscope.cn/v1--model: ZhipuAI/AutoGLM-Phone-9B--apikey: 在 ModelScope 平台申请你的 API Key使用第三方服务的示例:
# 使用智谱 BigModel
python main.py --base-url https://open.bigmodel.cn/api/paas/v4 --model "autoglm-phone" --apikey "your-bigmodel-api-key" "打开美团搜索附近的火锅店"
# 使用 ModelScope
python main.py --base-url https://api-inference.modelscope.cn/v1 --model "ZhipuAI/AutoGLM-Phone-9B" --apikey "your-modelscope-api-key" "打开美团搜索附近的火锅店"
如果你希望在本地或自己的服务器上部署模型:
requirements.txt 中 For Model Deployment 章节自行安装推理引擎框架。对于SGLang, 除了使用pip安装,你也可以使用官方docker:
docker pull lmsysorg/sglang:v0.5.6.post1进入容器,执行
pip install nvidia-cudnn-cu12==9.16.0.29
对于 vLLM,除了使用pip 安装,你也可以使用官方docker:
docker pull vllm/vllm-openai:v0.12.0进入容器,执行
pip install -U transformers --pre
注意: 上述步骤出现的关于 transformers 的依赖冲突可以忽略。
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 zai-org/AutoGLM-Phone-9B \
--port 8000
python3 -m sglang.launch_server --model-path zai-org/AutoGLM-Phone-9B \
--served-model-name autoglm-phone-9b \
--context-length 25480 \
--mm-enable-dp-encoder \
--mm-process-config '{"image":{"max_pixels":5000000}}' \
--port 8000
该模型结构与 GLM-4.1V-9B-Thinking 相同, 关于模型部署的详细内容,你也以查看 GLM-V
获取模型部署和使用指南。
运行成功后,将可以通过 http://localhost:8000/v1 访问模型服务。 如果您在远程服务器部署模型, 使用该服务器的IP访问模型.
模型服务启动后,可以使用检查脚本验证部署是否成功:
python scripts/check_deployment_cn.py --base-url http://你的IP:你的端口/v1 --model 模型名称
脚本将发送测试请求并展示模型的推理结果,你可以根据输出判断模型部署是否正常工作。
基于给定的任务, 预期输出如下。如果思维链长度很短, 或者出现了乱码, 很可能是模型部署失败, 请仔细检查文档要求的配置和依赖。
<think>用户想要比较这个洗发水在京东和淘宝上的价格,然后选择最便宜的平台下单。当前在小红书app上,显示的是一个关于LUMMI MOOD洗发水的帖子。
我需要:
1. 先启动京东app,搜索这个洗发水
2. 查看京东的价格
3. 再启动淘宝app,搜索这个洗发水
4. 查看淘宝的价格
5. 比较价格后,选择最便宜的京东或淘宝下单
首先,我需要从当前的小红书界面退出,然后启动京东app。</think>
<answer>do(action="Launch", app="京东")
参数说明:
--base-url: 模型服务地址(根据实际部署地址修改)--model: 模型名称--messages-file: 可选,指定自定义测试消息文件(默认使用 scripts/sample_messages.json)根据你部署的模型, 设置 --base-url 和 --model 参数, 设置 --device-type 指定是安卓设备或鸿蒙设备 (默认值 adb 表示安卓设备, hdc 表示鸿蒙设备). 例如:
# Android 设备 - 交互模式
python main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"
# Android 设备 - 指定任务
python main.py --base-url http://localhost:8000/v1 "打开美团搜索附近的火锅店"
# 鸿蒙设备 - 交互模式
python main.py --device-type hdc --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"
# 鸿蒙设备 - 指定任务
python main.py --device-type hdc --base-url http://localhost:8000/v1 "打开美团搜索附近的火锅店"
# 使用 API Key 进行认证
python main.py --apikey sk-xxxxx
# 使用英文 system prompt
python main.py --lang en --base-url http://localhost:8000/v1 "Open Chrome browser"
# 列出支持的应用(Android)
python main.py --list-apps
# 列出支持的应用(鸿蒙)
python main.py --device-type hdc --list-apps
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
# Configure model
model_config = ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b",
)
# 创建 Agent
agent = PhoneAgent(model_config=model_config)
# 执行任务
result = agent.run("打开淘宝搜索无线耳机")
print(result)
Phone Agent 支持通过 WiFi/网络进行远程 ADB/HDC 调试,无需 USB 连接即可控制设备。
确保手机和电脑在同一个WiFi中,如图所示

确保手机和电脑在同一个WiFi中:
设置 > 系统和更新 > 开发者选项USB 调试 和 无线调试# Android 设备 - 通过 WiFi 连接, 改成手机显示的 IP 地址和端口
adb connect 192.168.1.100:5555
# 验证连接
adb devices
# 应显示:192.168.1.100:5555 device
# 鸿蒙设备 - 通过 WiFi 连接
hdc tconn 192.168.1.100:5555
# 验证连接
hdc list targets
# 应显示:192.168.1.100:5555
# 列出所有已连接设备
adb devices
# 连接远程设备
adb connect 192.168.1.100:5555
# 断开指定设备
adb disconnect 192.168.1.100:5555
# 指定设备执行任务
python main.py --device-id 192.168.1.100:5555 --base-url http://localhost:8000/v1 --model "autoglm-phone-9b" "打开抖音刷视频"
# 列出所有已连接设备
hdc list targets
# 连接远程设备
hdc tconn 192.168.1.100:5555
# 断开指定设备
hdc tdisconn 192.168.1.100:5555
# 指定设备执行任务
python main.py --device-type hdc --device-id 192.168.1.100:5555 --base-url http://localhost:8000/v1 --model "autoglm-phone-9b" "打开抖音刷视频"
from phone_agent.adb import ADBConnection, list_devices
# 创建连接管理器
conn = ADBConnection()
# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")
# 列出已连接设备
devices = list_devices()
for device in devices:
print(f"{device.device_id} - {device.connection_type.value}")
# 在 USB 设备上启用 TCP/IP
success, message = conn.enable_tcpip(5555)
ip = conn.get_device_ip()
print(f"设备 IP: {ip}")
# 断开连接
conn.disconnect("192.168.1.100:5555")
from phone_agent.hdc import HDCConnection, list_devices
# 创建连接管理器
conn = HDCConnection()
# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")
# 列出已连接设备
devices = list_devices()
for device in devices:
print(f"{device.device_id} - {device.connection_type.value}")
# 断开连接
conn.disconnect("192.168.1.100:5555")
连接被拒绝:
adb tcpip 5555连接断开:
--connect 重新连接多设备:
--device-id 指定要使用的设备--list-devices 查看所有已连接设备系统提供中英文两套 prompt,通过 --lang 参数切换:
--lang cn - 中文 prompt(默认),配置文件:phone_agent/config/prompts_zh.py--lang en - 英文 prompt,配置文件:phone_agent/config/prompts_en.py可以直接修改对应的配置文件来增强模型在特定领域的能力,或通过注入 app 名称禁用某些 app。
| 变量 | 描述 | 默认值 |
|---|---|---|
PHONE_AGENT_BASE_URL |
模型 API 地址 | http://localhost:8000/v1 |
PHONE_AGENT_MODEL |
模型名称 | autoglm-phone-9b |
PHONE_AGENT_API_KEY |
模型认证 API Key | EMPTY |
PHONE_AGENT_MAX_STEPS |
每个任务最大步数 | 100 |
PHONE_AGENT_DEVICE_ID |
ADB/HDC 设备 ID | (自动检测) |
PHONE_AGENT_DEVICE_TYPE |
设备类型 (adb 或 hdc) |
adb |
PHONE_AGENT_LANG |
语言 (cn 或 en) |
cn |
from phone_agent.model import ModelConfig
config = ModelConfig(
base_url="http://localhost:8000/v1",
api_key="EMPTY", # API 密钥(如需要)
model_name="autoglm-phone-9b", # 模型名称
max_tokens=3000, # 最大输出 token 数
temperature=0.1, # 采样温度
frequency_penalty=0.2, # 频率惩罚
)
from phone_agent.agent import AgentConfig
config = AgentConfig(
max_steps=100, # 每个任务最大步数
device_id=None, # ADB 设备 ID(None 为自动检测)
lang="cn", # 语言选择:cn(中文)或 en(英文)
verbose=True, # 打印调试信息(包括思考过程和执行动作)
)
当 verbose=True 时,Agent 会在每一步输出详细信息:
==================================================
💭 思考过程:
--------------------------------------------------
当前在系统桌面,需要先启动小红书应用
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Launch",
"app": "小红书"
}
==================================================
... (执行动作后继续下一步)
==================================================
💭 思考过程:
--------------------------------------------------
小红书已打开,现在需要点击搜索框
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [500, 100]
}
==================================================
🎉 ================================================
✅ 任务完成: 已成功搜索美食攻略
==================================================
这样可以清楚地看到 AI 的推理过程和每一步的具体操作。
Phone Agent 支持 50+ 款主流中文应用:
| 分类 | 应用 |
|---|---|
| 社交通讯 | 微信、QQ、微博 |
| 电商购物 | 淘宝、京东、拼多多 |
| 美食外卖 | 美团、饿了么、肯德基 |
| 出行旅游 | 携程、12306、滴滴出行 |
| 视频娱乐 | bilibili、抖音、爱奇艺 |
| 音乐音频 | 网易云音乐、QQ音乐、喜马拉雅 |
| 生活服务 | 大众点评、高德地图、百度地图 |
| 内容社区 | 小红书、� |