AI Agents 7 min read
Open-AutoGLM:基于 AutoGLM 的开源手机智能助手框架
Open-AutoGLM 是基于 AutoGLM 构建的手机智能助手框架,支持多模态屏幕理解和自动化操作,用自然语言控制手机完成各种任务。
本文发布于 283 天前,内容可能已过时,请注意甄别。
这是什么?
简单来说,Open-AutoGLM 就是一个能帮你自动操作手机的 AI 助手。你只需要告诉它”打开小红书搜索美食”,它就会自己看屏幕、点按钮、滑页面,帮你把事情办了。
它能做什么?
- 看懂手机屏幕上的内容(用的是视觉语言模型)
- 自动点击、滑动、输入文字
- 理解你的意图,自己规划操作步骤
- 遇到需要登录或验证码的地方,会提醒你手动处理
放心用:遇到敏感操作会先问你,不会乱来。还支持 WiFi 远程调试,不用一直插着数据线。
⚠️ 这个项目是用来学习研究的,别拿去干坏事哦。
先把模型下载下来
| 模型 | 下载链接 |
|---|---|
| AutoGLM-Phone-9B | 🤗 Hugging Face / 🤖 ModelScope |
目前只支持中文,多语言版本在路上了。
环境准备
1. Python
用 Python 3.10 或更高版本就行。
2. 装个 ADB
ADB 是用来连接和控制手机的工具,必须装。
- 去官网下载,解压到你喜欢的地方
- 把路径加到环境变量里
Mac 用户:
# 比如你解压到了 ~/Downloads/platform-tools
export PATH=${PATH}:~/Downloads/platform-tools
Windows 用户:可以搜一下”Windows 配置 ADB 环境变量”,教程很多。
3. 手机设置
你需要一台 Android 7.0 以上的手机(或者模拟器也行),然后:
- 开开发者模式:去
设置 > 关于手机,疯狂点击”版本号”大概 10 次,直到提示”开发者模式已开启” - 开 USB 调试:去
设置 > 开发者选项,打开”USB 调试” - 用数据线连上电脑,跑一下
adb devices,能看到设备就说明成功了
4. 装个特殊键盘
为了让 AI 能输入文字,需要装一个 ADB Keyboard。
装好后记得去设置 > 输入法里把它启用。
开始部署
1. 装依赖
pip install -r requirements.txt
pip install -e .
2. 检查手机连接
注意:数据线要能传数据,有些线只能充电是不行的。
# 看看手机连上没
adb devices
# 能看到类似这样的输出就对了:
# List of devices attached
# emulator-5554 device
3. 启动 AI 模型
用 vLLM 把模型跑起来:
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
跑起来之后,模型服务就在 http://localhost:8000/v1 了。
怎么用?
命令行玩法
# 进入交互模式,可以一直聊
python main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"
# 直接给个任务
python main.py --base-url http://localhost:8000/v1 "找附近评分最高的电影院,帮我导航过去"
# 看看支持哪些 App
python main.py --list-apps
用代码调用
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)
不想插线?用 WiFi 连
不想一直插着数据线?可以用 WiFi 远程控制手机。
怎么设置
- 手机和电脑连同一个 WiFi
- 手机上开启”无线调试”(在开发者选项里)
# 连接手机(IP 和端口换成你手机上显示的)
adb connect 192.168.1.100:5555
# 看看连上没
adb devices
# 能看到 192.168.1.100:5555 device 就成功了
常用命令
# 看看连了哪些设备
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" "打开抖音刷视频"
支持哪些 App?
目前支持 50 多个主流应用:
| 类别 | 应用 |
|---|---|
| 社交聊天 | 微信、QQ、微博 |
| 电商购物 | 淘宝、京东、拼多多 |
| 外卖美食 | 美团、饿了么、肯德基 |
| 出行旅游 | 携程、12306、滴滴 |
| 视频娱乐 | B站、抖音、爱奇艺 |
| 音乐音频 | 网易云音乐、QQ音乐、喜马拉雅 |
| 生活服务 | 大众点评、高德地图、百度地图 |
| 内容社区 | 小红书、知乎、豆瓣 |
想看完整列表?跑一下 python main.py --list-apps。
能做哪些操作?
| 操作 | 描述 |
|---|---|
Launch | 启动应用 |
Tap | 点击指定坐标 |
Type | 输入文本 |
Swipe | 滑动屏幕 |
Back | 返回上一页 |
Home | 返回主屏幕 |
Long Press | 长按 |
Double Tap | 双击 |
Wait | 等待页面加载 |
Take_over | 请求手动接管(登录/验证码) |
高级配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PHONE_AGENT_BASE_URL | 模型 API 地址 | http://localhost:8000/v1 |
PHONE_AGENT_MODEL | 模型名称 | autoglm-phone-9b |
PHONE_AGENT_MAX_STEPS | 每个任务最大步数 | 100 |
PHONE_AGENT_DEVICE_ID | ADB 设备 ID | (自动检测) |
模型参数
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, # 回复最长多少
temperature=0.1, # 越低越稳定
frequency_penalty=0.2,
)
Agent 参数
from phone_agent.agent import AgentConfig
config = AgentConfig(
max_steps=100, # 一个任务最多执行多少步
device_id=None, # 不填就自动找设备
verbose=True, # 想看 AI 在想什么就开这个
)
自定义交互
想自己控制确认流程?可以这样:
def my_confirmation(message: str) -> bool:
"""遇到敏感操作时会调用这个"""
return input(f"要执行 {message} 吗?(y/n): ").lower() == "y"
def my_takeover(message: str) -> None:
"""需要你手动操作时会调用这个"""
print(f"需要你手动处理: {message}")
input("搞定了按 Enter...")
agent = PhoneAgent(
confirmation_callback=my_confirmation,
takeover_callback=my_takeover,
)
遇到问题?
找不到设备
重启一下 ADB 试试:
adb kill-server
adb start-server
adb devices
打不了字
- 检查 ADB Keyboard 装了没
- 去设置里看看有没有启用
- AI 会自动切换键盘,你不用管
截图是黑的
这说明 App 在显示敏感内容(比如支付页面、银行 App)。这时候 AI 会让你手动操作,正常的。
相关链接
更多文章
ZCode 说只是做索引,可它翻开的不止当前代码
OpenClaw 2.0 发布:Agent 终于能把没做完的事接着做
“牛来”揭面:智谱 GLM-5.3-Flash 匿名期跑出 44 万亿 Token
GLM-5.3 发布:基座没换,智谱把后训练推到数十倍任务环境
DeepSeek Harness 开源:把 Agent 的整套运行底座拆开了
FFmpeg 9.0 “Lei” 发布:这个版本号,纪念一位中国音视频开发者
DeepSeek-V4-Flash 正式上线:性能超过 GLM,逼近 Opus 4.8,价格更狠
GPT-5.6 Luna 直接降价 80%:百万 Token 输出只要 1.2 美元
Kimi K3 真开源了:2.8T 模型如何只激活 104B 参数?