Phone Agent 是一个基于 AutoGLM 构建的手机端智能助理框架,它能够以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务。系统通过 ADB(Android Debug Bridge)来控制设备,以视觉语言模型进行屏幕感知,再结合智能规划能力生成并执行操作流程。用户只需用自然语言描述需求,如“打开小红书搜索美食”,Phone Agent 即可自动解析意图、理解当前界面、规划下一步动作并完成整个流程。系统还内置敏感操作确认机制,并支持在登录或验证码场景下进行人工接管。同时,它提供远程 ADB 调试能力,可通过 WiFi 或网络连接设备,实现灵活的远程控制与开发。
抖音刷到这个项目的。我从去年就关注到它了,今天既然开源了,那就在本地部署一下吧。
Github 地址是 https://github.com/zai-org/Open-AutoGLM。
环境安装
首先我们要安装 Python,官方推荐安装 3.10 以上的版本。
> python --version
Python 3.13.7接下来安装 adb 工具,下载后将它所在的目录添加到环境变量中。
> adb --version
Android Debug Bridge version 1.0.41
Version 36.0.0-13206524
Installed as A:\platform-tools\adb.exe
Running on Windows 10.0.22000然后安装 ADBKeyboard,进入后下载原始文件。安装在手机后,在设置中打开此键盘。

打开键盘
运行项目
首先将项目保存到本地,可以用 Git Clone 命令。
> cd .\Open-AutoGLM-main\
> ls
目录: A:\Open-AutoGLM-main
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/12/24 9:38 .github
d----- 2025/12/24 9:38 docs
d----- 2025/12/24 9:38 examples
d----- 2025/12/24 9:38 phone_agent
d----- 2025/12/24 9:38 resources
d----- 2025/12/24 9:38 scripts
-a---- 2025/12/22 13:01 538 .gitignore
-a---- 2025/12/22 13:01 534 .pre-commit-config.yaml
-a---- 2025/12/22 13:01 17404 ios.py
-a---- 2025/12/22 13:01 11342 LICENSE
-a---- 2025/12/22 13:01 28769 main.py
-a---- 2025/12/22 13:01 32421 README.md
-a---- 2025/12/22 13:01 9545 README_coding_agent.md
-a---- 2025/12/22 13:01 33945 README_en.md
-a---- 2025/12/22 13:01 421 requirements.txt
-a---- 2025/12/22 13:01 1460 setup.py安装依赖:
pip install -r requirements.txt
pip install -e .打开手机的 USB 调试模式,连接电脑,运行命令查看是否连接成功。

打开调试模式
> adb devices
List of devices attached
3B6F6AE8GCL0LCZL device然后还需要一个运行的模型,我自己是在智谱AI平台上申请的ApiKey,申请地址在 https://docs.bigmodel.cn/cn/api/introduction。
如果是这样的话,那么运行指令的命令就是:
python main.py --base-url https://open.bigmodel.cn/api/paas/v4 --model "autoglm-phone" --apikey "your-bigmodel-api-key" "打开美团搜索附近的火锅店"运行以后,控制台会先检测 adb 连接状态,然后每次读取屏幕内容,然后尝试执行分步点击,到最后会给出运行结果,效果还是很不错的。
🔍 Checking system requirements...
--------------------------------------------------
1. Checking ADB installation... ✅ OK (Android Debug Bridge version 1.0.41)
2. Checking connected devices... ✅ OK (1 device(s): 3B6F6AE8GCL0LCZL)
3. Checking ADB Keyboard... ✅ OK
--------------------------------------------------
✅ All system checks passed!
🔍 Checking model API...
--------------------------------------------------
1. Checking API connectivity (https://open.bigmodel.cn/api/paas/v4)... ✅ OK
--------------------------------------------------
✅ Model API checks passed!
==================================================
Phone Agent - AI-powered phone automation
==================================================
Model: autoglm-phone
Base URL: https://open.bigmodel.cn/api/paas/v4
Max Steps: 100
Language: cn
Device Type: ADB
Device: 3B6F6AE8GCL0LCZL (auto-detected)
==================================================
Task: 打开美团搜索附近的火锅店
==================================================
💭 思考过程:
--------------------------------------------------
用户想要打开美团并搜索附近的火锅店。当前屏幕显示的是微信聊天界面。
我需要:
1. 启动美团应用
2. 在美团中搜索附近的火锅店
首先,我应该使用Launch功能打开美团应用。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 3.485s
思考完成延迟: 4.313s
总推理时间: 4.493s
==================================================
Parsing action: do(action="Launch", app="美团")
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Launch",
"app": "美团"
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
好的,美团应用已经打开了。我可以看到美团的主界面,顶部有一个搜索框,显示着"土豆泥芝士火鸡面"。我需要点击这个搜索框,然后输入"火锅"来搜索附近的火锅店。
搜索框的位置大约在屏幕顶部,坐标大约在(389, 116)左右。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 4.451s
思考完成延迟: 5.066s
总推理时间: 5.264s
==================================================
Parsing action: do(action="Tap", element=[389,116])
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [
389,
116
]
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
看起来我点击了搜索框后,页面跳转到了一个小说阅读页面。这可能是美团的某个功能页面。我需要返回到主界面,然后重新点击搜索框来搜索火锅店。让我先点击返回按钮。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 3.270s
思考完成延迟: 5.001s
总推理时间: 5.221s
==================================================
Parsing action: do(action="Tap", element=[75,77])
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [
75,
77
]
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
出现了一个弹窗,显示"小说桌卡活动首次开启,直接赠送大额现金",金额为¥11.01,有一个"去桌卡访问立即提现"的按钮。我需要关闭这个弹窗,然后继续搜索火锅店。我可以点击弹窗上的关闭按钮(X按钮),位置大约在(499, 752)。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 2.563s
思考完成延迟: 3.203s
总推理时间: 3.536s
==================================================
Parsing action: do(action="Tap", element=[499,752])
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [
499,
752
]
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
好的,弹窗已经关闭了。现在我看到的是小说阅读页面,顶部有一个搜索框,显示"吃喝玩乐上美团"。我需要点击这个搜索框,然后输入"火锅"来搜索附近的火锅店。搜索框的位置大约在(389, 139)左右。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 3.770s
思考完成延迟: 4.304s
总推理时间: 4.528s
==================================================
Parsing action: do(action="Tap", element=[389,139])
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [
389,
139
]
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
很好!搜索页面已经打开了。我可以看到:顶部有一个搜索框,显示"搜索外卖、商家或商品",下面有历史搜索记录,包括"面条"、"电脑房"、"电脑"、"火鸡面"、"楠火锅"、"湘菜"、"火鸡面芝士烤冷面"、"药店"、"三七"等。我 还可以看到"发现"部分有一些推荐的搜索词,以及"附近"部分有一些分类图标,包括"小吃快餐"、"健身房"、"自习室"、"网吧"、"理发"等。
我需要在搜索框中输入"火锅"来搜索附近的火锅店。搜索框的位置大约在(389, 84)左右。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 2.413s
思考完成延迟: 3.486s
总推理时间: 3.689s
==================================================
Parsing action: do(action="Type", text="火锅")
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Type",
"text": "火锅"
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
很好!我已经输入了"火锅",现在搜索框中显示"火锅",并且下面出现了一些搜索建议,包括:火锅、火锅食材、火锅自助、火锅外卖、火锅鸡、火锅团购套餐、火锅鸡、许府牛火锅双人餐49.9抢、火锅底料等。我需要点击"搜索" 按钮或者点击第一个搜索建议"火锅"来搜索附近的火锅店。搜索按钮的位置在右上角,大约在(863, 134)左右。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 3.476s
思考完成延迟: 4.387s
总推理时间: 4.608s
==================================================
Parsing action: do(action="Tap", element=[863,134])
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Tap",
"element": [
863,
134
]
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
很好!搜索结果页面已经加载了。我可以看到:顶部显示"火锅",下面有筛选选项,包括"瑞家坚果"、"综合排序"、"距离最近"等。还有分类标签,包括"神券商家"、"双旦大促"、"快递"、"人气热销"、"美妙火锅"等。但是页面内 容区域目前是空白的,可能正在加载搜索结果。我需要等待一下,让搜索结果加载完成。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 2.602s
思考完成延迟: 3.546s
总推理时间: 3.709s
==================================================
Parsing action: do(action="Wait", duration="1 seconds")
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "do",
"action": "Wait",
"duration": "1 seconds"
}
==================================================
==================================================
💭 思考过程:
--------------------------------------------------
太好了!搜索结果已经加载完成了。我可以看到附近的火锅店列表,包括:\n1. 塔拉牧羊人涮肉馆 - 5.0分,99条评价,人均¥69,黎明广场,3.5km,有团购优惠,有多个菜品选项(100%好评度)\n2. 老胡同铜火锅(沈阳陶瓷大世界店) - 5.0分,192条评价,人均¥54,大东区,682m,有团购优惠,有多个菜品选项(100%好评度)\n3. 狼头山火锅KTV欢唱·烤串(陶瓷...) - 4.7分,147条评价,人均¥68,大东区,725m,有团购优惠,有多个菜品选项(100%好评度)\n4. 还有更多火锅店...
用户要求搜索附近的火锅店,现在已经成功搜索到了附近的火锅店列表,任务已经完成。
==================================================
⏱️ 性能指标:
--------------------------------------------------
首 Token 延迟 (TTFT): 4.712s
思考完成延迟: 7.063s
总推理时间: 10.867s
==================================================
Parsing action: finish(message="任务完成!我已经成功打开美团并搜索到了附近的火锅店。搜索结果显示了多家附近的火锅店,包括:
1. **塔拉牧羊人涮肉馆** - 5.0分,人均¥69,距离3.5km
2. **老胡同铜火锅(沈阳陶瓷大世界店)** - 5.0分,人均¥54,距离682m
3. **狼头山火锅KTV欢唱·烤串** - 4.7分,人均¥68,距离725m
每家店都有详细的评分、评价数、人均消费和距离信息,还有团购优惠和菜品选项。您可以点击任意一家查看更多详情或选择菜品。")
--------------------------------------------------
🎯 执行动作:
{
"_metadata": "finish",
"message": "任务完成!我已经成功打开美团并搜索到了附近的火锅店。搜索结果显示了多家附近的火锅店,包括:\n\n1. **塔拉牧羊人涮肉馆** - 5.0分,人均¥69,距离3.5km\n2. **老胡同铜火锅(沈阳陶瓷大世界店)** - 5.0分,人均¥54,距离682m\n3. **狼头山火锅KTV欢唱·烤串** - 4.7分,人均¥68,距离725m\n\n每家店都有详细的评分、评价数、人均消费和距离信息,还有团购优惠和菜品选项。您可以点击任意一家查看更多详情或选择菜品。"
}
==================================================
🎉 ================================================
✅ 任务完成: 任务完成!我已经成功打开美团并搜索到了附近的火锅店。搜索结果显示了多家附近的火锅店,包括:
1. **塔拉牧羊人涮肉馆** - 5.0分,人均¥69,距离3.5km
2. **老胡同铜火锅(沈阳陶瓷大世界店)** - 5.0分,人均¥54,距离682m
3. **狼头山火锅KTV欢唱·烤串** - 4.7分,人均¥68,距离725m
每家店都有详细的评分、评价数、人均消费和距离信息,还有团购优惠和菜品选项。您可以点击任意一家查看更多详情或选择菜品。
==================================================
Result: 任务完成!我已经成功打开美团并搜索到了附近的火锅店。搜索结果显示了多家附近的火锅店,包括:
1. **塔拉牧羊人涮肉馆** - 5.0分,人均¥69,距离3.5km
2. **老胡同铜火锅(沈阳陶瓷大世界店)** - 5.0分,人均¥54,距离682m
3. **狼头山火锅KTV欢唱·烤串** - 4.7分,人均¥68,距离725m
每家店都有详细的评分、评价数、人均消费和距离信息,还有团购优惠和菜品选项。您可以点击任意一家查看更多详情或选择菜品。有意思的是,进入美团以后,它跳到了广告页面,在运行结果能看出来。退出广告后,它成功找到了附近的火锅店。
2025年的AI发展真的太迅猛了,先是面向开发者,出现了很多AI IDE,很快也将面向更多普通用户,成为个人的手机智能助理,期待2026年各大手机厂商和大模型巨头的表现:[cat-blobcatalt]
这个功能不错,前端时间发布的豆包手机应该也是差不多的功能,不过豆包是全移动端了。