项目概述
Phone Agent 让 AI 成为你的手机操作助手,理解屏幕、规划任务、自动执行
多模态屏幕理解
基于 9B 参数视觉语言模型,智能识别屏幕上的文字、图标、按钮等所有 UI 元素,准确理解当前界面状态和可操作区域。
智能任务规划
内置 18 条智能决策规则,自动分解复杂任务为原子操作步骤,处理异常情况(网络问题、页面未加载、操作失败)并智能重试。
ADB 自动化控制
通过标准 ADB 协议实现设备控制,支持点击、滑动、输入、启动应用等 14 种操作,无需 ROOT 权限,安全可靠。
工作原理
从自然语言输入到自动执行的完整闭环
14 种操作指令
覆盖手机操作的方方面面
Launch
启动应用程序
Tap
点击指定坐标
Type
输入文本内容
Swipe
滑动屏幕
Back
返回上一页
Home
返回桌面
Long Press
长按操作 (3秒)
Double Tap
双击操作
Wait
等待页面加载
Take_over
请求人工接管
Note
记录页面内容
Call_API
总结/评论内容
Interact
询问用户选择
finish
任务完成
核心特性
强大功能让手机操作更智能、更安全
相对坐标系统
使用 0-999 的相对坐标系统,自动转换为实际像素位置,适配任意分辨率屏幕
敏感操作保护
涉及支付、隐私的操作会触发确认回调,用户可自定义确认逻辑,防止误操作
WiFi 远程调试
支持通过 TCP/IP 远程连接设备,无需 USB 数据线即可控制,方便远程开发测试
ADB Keyboard 输入
使用 ADB Keyboard 实现文本输入,自动切换输入法、清除旧文本,支持中英文输入
思考过程可视化
Verbose 模式下展示 AI 的推理过程,输出 <think> 标签中的决策逻辑,便于调试
智能重试机制
点击/滑动不生效时自动调整位置重试,页面未加载最多等待 3 次,网络问题自动重新加载
中英双语支持
提供两个模型版本:中文优化版和多语言版,配套中英文 System Prompt,适应不同场景
OpenAI 兼容 API
模型服务遵循 OpenAI API 格式,可使用 vLLM/SGlang 部署,易于集成现有系统
18 条智能决策规则
内置场景处理逻辑,让 Agent 更加智能可靠
应用检查优先
执行任何操作前,先检查当前 app 是否是目标 app,否则先执行 Launch
无关页面处理
进入无关页面先执行 Back,不生效则点击左上角返回键或右上角 X 号
加载等待策略
页面未加载时最多连续 Wait 三次,否则执行 Back 重新进入
网络问题重试
遇到网络问题提示时,自动点击重新加载按钮
智能滑动查找
找不到目标信息时,尝试 Swipe 滑动页面查找
条件放宽策略
筛选条件无完全匹配时,可适当放宽要求继续任务
小红书图文筛选
做小红书总结类任务时,优先筛选图文笔记类型
购物车状态处理
购物车有已选商品时,先全选再取消全选,再操作指定商品
外卖购物车清空
做外卖任务时,如店铺购物车已有商品,先清空再购买
多商品同店购买
点多个外卖时尽量在同一店铺购买,找不到的商品单独说明
智能多次搜索
支持关键词变体搜索,如"咸咖啡"→"海盐咖啡","XX群"→"XX"
日期选择方向
选择日期时,如滑动方向与目标日期相反,自动调整滑动方向
项目栏遍历
多个项目栏时逐个查找,避免在同一项目栏重复查找陷入死循环
操作生效检测
执行下一步前检查上一步是否生效,不生效则等待/调整位置/跳过
滑动失败处理
滑动不生效时调整起点、增大距离,可能已到顶/底则反向滑动
游戏自动战斗
游戏战斗页面自动开启自动战斗,多轮状态相似时检查是否已开启
搜索页面回退
无合适搜索结果时返回上一级重新搜索,最多尝试 3 次
任务完成检查
结束前仔细检查任务是否完整准确完成,有错选/漏选则纠正
安装指南
按步骤配置环境,快速开始使用
1. 安装 ADB 工具
# macOS 使用 Homebrew
brew install android-platform-tools
# Linux (Ubuntu/Debian)
sudo apt install android-tools-adb
# 或手动下载官方 Platform Tools
# https://developer.android.com/tools/releases/platform-tools
export PATH=${PATH}:~/Downloads/platform-tools
2. 配置 Android 设备
# 1. 启用开发者模式
设置 → 关于手机 → 版本号 → 连续点击 10 次
# 2. 启用 USB 调试
设置 → 开发者选项 → USB 调试 → 启用
# 3. 安装 ADB Keyboard (必须)
# 下载地址: github.com/senzhk/ADBKeyBoard
adb install ADBKeyboard.apk
# 然后在 设置 → 输入法 中启用 ADB Keyboard
1. 克隆项目
git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM
2. 安装 Python 依赖
# 推荐 Python 3.10+
pip install -r requirements.txt
pip install -e .
# 开发者额外安装
pip install -e ".[dev]"
3. 验证 ADB 连接
# 查看已连接设备
adb devices
# 预期输出:
# List of devices attached
# XXXXXXXX device
1. 下载模型
# 中文优化模型
🤗 huggingface.co/zai-org/AutoGLM-Phone-9B
🤖 modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B
# 多语言模型 (支持英文)
🤗 huggingface.co/zai-org/AutoGLM-Phone-9B-Multilingual
🤖 modelscope.cn/models/ZhipuAI/AutoGLM-Phone-9B-Multilingual
2. 启动 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
命令行参数
# 交互模式
python main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"
# 直接执行任务
python main.py --base-url http://localhost:8000/v1 "打开美团搜索附近的火锅店"
# 英文模式
python main.py --lang en --base-url http://localhost:8000/v1 "Open Chrome browser"
# 指定设备
python main.py --device-id emulator-5554 "打开微信"
# 查看支持的应用
python main.py --list-apps
# 静默模式 (不显示思考过程)
python main.py --quiet "打开支付宝"
环境变量配置
export PHONE_AGENT_BASE_URL="http://localhost:8000/v1"
export PHONE_AGENT_MODEL="autoglm-phone-9b"
export PHONE_AGENT_MAX_STEPS="100"
export PHONE_AGENT_LANG="cn" # 或 "en"
WiFi 远程连接
# 1. 先通过 USB 启用 TCP/IP 模式
python main.py --enable-tcpip 5555
# 2. 断开 USB,通过 WiFi 连接
python main.py --connect 192.168.1.100:5555
# 3. 执行任务
python main.py --device-id 192.168.1.100:5555 "打开抖音刷视频"
# 断开连接
python main.py --disconnect 192.168.1.100:5555
# 或断开所有
python main.py --disconnect all
# 查看已连接设备
python main.py --list-devices
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",
temperature=0.1,
)
# 创建 Agent 并执行任务
agent = PhoneAgent(model_config=model_config)
result = agent.run("打开淘宝搜索无线耳机")
print(result)
自定义回调
处理敏感操作和人工接管
def my_confirmation(message: str) -> bool:
"""敏感操作确认"""
response = input(f"确认: {message}? (y/n): ")
return response.lower() == "y"
def my_takeover(message: str) -> None:
"""人工接管处理"""
print(f"请手动完成: {message}")
input("完成后按回车...")
agent = PhoneAgent(
confirmation_callback=my_confirmation,
takeover_callback=my_takeover,
)
result = agent.run("打开支付宝转账")
单步调试模式
逐步执行,便于调试分析
from phone_agent.agent import AgentConfig
agent_config = AgentConfig(
max_steps=50,
verbose=True,
lang="cn",
)
agent = PhoneAgent(agent_config=agent_config)
# 第一步初始化任务
result = agent.step("打开美团搜索火锅")
print(f"思考: {result.thinking}")
print(f"动作: {result.action}")
# 继续执行后续步骤
while not result.finished:
result = agent.step()
print(f"步骤 {agent.step_count}")
批量任务执行
连续执行多个任务
agent = PhoneAgent()
tasks = [
"打开高德地图查看实时路况",
"打开大众点评搜索咖啡店",
"打开bilibili搜索Python教程",
]
for task in tasks:
print(f"执行: {task}")
result = agent.run(task)
print(f"结果: {result}\n")
# 重置 Agent 状态
agent.reset()
支持 80+ 应用
覆盖社交、购物、出行、娱乐等主流场景
社交通讯
电商购物
美食外卖
出行旅游
视频娱乐
音乐音频
内容社区
工具效率
可用模型
选择适合你场景的模型版本
AutoGLM-Phone-9B
中文优化版
针对中文手机应用优化的视觉语言模型,在微信、淘宝、美团等国内主流 APP 的界面识别和任务规划方面表现优秀。
AutoGLM-Phone-9B-Multilingual
多语言版
支持英语等多语言场景,适用于 Chrome、Gmail、Google 系列等英文应用,以及跨语言混合界面的操作。
系统要求
开始使用前需要准备什么
Python 环境
Python 3.10 及以上版本,推荐使用虚拟环境
必需Android 设备
Android 7.0+ 系统,开启开发者模式和 USB 调试
必需ADB Keyboard
安装并启用 ADB Keyboard 应用,用于文本输入
必需GPU 服务器
运行 9B 模型需要约 20GB 显存 (vLLM 部署)
推荐USB 数据线
支持数据传输的 USB 线,或使用 WiFi 远程调试
可选ROOT 权限
完全不需要!所有功能通过标准 ADB 实现
无需常见问题
快速解决使用中遇到的问题