基于 Open-AutoGLM 深度重构,补齐工程化的最后一公里
Open-AutoGLM 是优秀的手机 Agent 开源项目,但仅提供命令行工具。PhoneAgent 补充了 Web 交互界面、多设备支持、实时预览等能力,让它真正开箱即用。
| 对比 | Open-AutoGLM | PhoneAgent |
|---|---|---|
| 界面 | ❌ 命令行 | ✅ 现代化 Web UI |
| 使用 | ❌ 需要写代码 | ✅ 自然语言 + 语音输入 |
| 设备 | ❌ 单设备 | ✅ 多设备池管理 |
| 模型 | ❌ 单一模型 | ✅ GLM-4.6v系列+多平台 |
| 部署 | ❌ 手动配置 | ✅ 一键部署脚本 |
| 预览 | ❌ 无 | ✅ Scrcpy 实时画面 |
| 防护 | ❌ 无 | ✅ 完整防风控系统 |
PhoneAgent 采用先进的视觉理解技术,支持两种执行模式:
┌─────────────────────────────────────────────────────┐
│ PhoneAgent 智能执行引擎 │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ 逐步执行模式(推荐) │ │
│ │ │ │
│ │ • 稳定可靠 - AI每步思考决策 │ │
│ │ • 视觉理解 - 基于最新GLM-4.6v系列 │ │
│ │ • 完整日志 - JSONL格式,可追溯 │ │
│ │ • 实时反馈 - WebSocket推送每步进度 │ │
│ └────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ 智能规划模式(⚠️ Beta - 不稳定) │ │
│ │ │ │
│ │ • 预先规划 - AI先生成完整执行计划 │ │
│ │ • 批量执行 - 速度快70%,成本降低70% │ │
│ │ ⚠️ 成功率低 - 不建议生产环境使用 │ │
│ │ ⚠️ 仅适合简单任务测试 │ │
│ └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
执行模式:
- 逐步执行(✅ 推荐): AI每步思考决策,适合所有任务,稳定性高
- 智能规划(
⚠️ Beta,不稳定): 预先规划完整步骤,速度快,但成功率低,仅适合简单测试
- 集成 Scrcpy,实时查看设备屏幕,延迟 <150ms
- H.264 视频流,高效压缩,支持远程操作
- 任务执行过程可视化,出错时支持人工接管
- 支持同时管理多台设备
- FRP 端口扫描,自动发现在线设备
- WebSocket 实时同步设备状态
- 时间随机化 - 模拟真人操作节奏
- 坐标随机化 - 点击位置随机偏移
- 贝塞尔曲线滑动 - 自然的滑动轨迹
- App 白名单 - 限制可操作的应用范围
PhoneAgent 采用双 WebSocket 服务架构:
┌─────────────────────────────────────────────────────────────┐
│ Web 前端(Vue 3) │
│ https://your-domain.com 或 http://SERVER_IP:5173 │
└────────────┬────────────────────────────────────────────────┘
│
├─────────────────┬──────────────────┬───────────┐
↓ ↓ ↓ ↓
┌────────────────┐ ┌─────────────────┐ ┌──────────┐ ┌──────────┐
│ API 服务器 │ │ WebSocket 服务器│ │FRP 服务器│ │ 设备端 │
│ (8000端口) │ │ (9999端口) │ │(7000端口)│ │ (Termux) │
│ │ │ │ │ │ │ │
│ • REST API │ │ • 设备连接管理 │ │ • ADB转发│ │ • ADB执行│
│ • 前端WS │ │ • 任务下发 │ │ • 端口穿透│ │ • 状态上报│
│ /api/v1/ws │ │ • 设备状态同步 │ │ │ │ • Scrcpy │
│ • Scrcpy WS │ │ /ws/device/* │ │ │ │ │
└────────────────┘ └─────────────────┘ └──────────┘ └──────────┘
三个关键 WebSocket:
- 前端 WebSocket (
8000端口/api/v1/ws) - 前端实时状态推送 - 设备 WebSocket (
9999端口/ws/device/{frp_port}) - 设备连接管理 - Scrcpy WebSocket (
8000端口/api/v1/scrcpy/stream/{device_id}) - 视频流传输
🚧 开发中 - 基于科大讯飞语音唤醒 + 智谱AI对话
定位:可选的语音交互入口,配合 Termux 使用
功能:
- 🎙️ 语音唤醒 - "你好BT"唤醒系统
- 💬 流式识别 - 实时语音转文字
- 🤖 AI 对话 - 智谱AI大模型对话
- 🔊 TTS 播报 - 语音反馈
- 📱 任务执行 - 自动执行手机操作
设计灵感:泰坦陨落2 BT-7274 机甲驾驶舱
- 🚗 开车时 - 语音发消息、导航、播放音乐
- 🏃 运动时 - 控制音乐、查看消息
- 💼 工作时 - 设置提醒、快速回复
- App 自动化测试 - 100 台设备并行,10 分钟完成 2 天工作量
- 内容批量运营 - 多账号自动发布,防风控机制
- 数据采集 - 自动化信息收集和整理
- ✅ 自然语言任务 - 用中文描述任务,AI 自动执行
- ✅ 语音输入 - Web 端语音录制 + STT 识别(需 HTTPS)
- ✅ 快捷指令 - 预设常用操作,一键执行
- ✅ 任务中断 - 支持人工干预和接管
- ✅ 智能规划 - 预先规划步骤,批量执行(Beta)
- ✅ 多设备池管理 - 支持同时管理 100+ 台设备
- ✅ 设备自动发现 - FRP 端口扫描,自动识别在线设备
- ✅ 状态实时监控 - WebSocket 实时同步设备状态
- ✅ Scrcpy 集成 - 实时查看设备屏幕,延迟 <150ms
- ✅ H.264 视频流 - 高效压缩,节省带宽
- ✅ 手动控制 - 支持直接点击操作设备
- ✅ 时间随机化 - 模拟真人操作节奏
- ✅ 坐标随机化 - 点击位置随机偏移
- ✅ 贝塞尔曲线滑动 - 自然的滑动轨迹
- ✅ App 白名单 - 限制可操作的应用范围
服务器:
- Ubuntu 20.04+ / Debian 11+,2核4GB+
- 公网 IP(必需,用于 FRP 穿透)
- 开放端口:
7000- FRP 服务器8000- API 服务器(含前端 WS 和 Scrcpy WS)9999- 设备 WebSocket 服务器6100-6199- FRP 客户端端口范围(每台设备占用1个)
Android 设备:
- Android 7.0+,已开启 USB 调试
- 已安装 Termux(从 F-Droid 下载)
git clone https://github.com/tmwgsicp/PhoneAgent.git
cd PhoneAgent
# 配置 API 密钥
cp env.example .env
nano .env # 填写 ZHIPU_API_KEY
# 一键安装(安装过程会提示输入 FRP_TOKEN)
sudo bash scripts/install/install_server.shbash <(curl -s https://cdn.jsdelivr.net/gh/tmwgsicp/PhoneAgent@main/client/install_termux.sh)安装过程需要输入 4 个参数:
- 后端服务器IP
- FRP Token(与服务端一致)
- 连接方式(1=直连IP / 2=域名代理)
- 前端访问地址(IP或域名)
部署脚本完成后,需要在电脑上执行以下命令让手机的ADB守护进程监听TCP端口:
前置要求:电脑需要先安装 ADB 工具
📦 电脑端 ADB 安装(点击展开)
Windows:
# 方法1:使用 Chocolatey(推荐)
choco install adb
# 方法2:手动下载
# 访问 https://developer.android.com/tools/releases/platform-tools
# 下载 platform-tools,解压后将路径添加到系统环境变量macOS:
# 使用 Homebrew
brew install android-platform-toolsLinux (Ubuntu/Debian):
sudo apt update
sudo apt install adb验证安装:
adb version执行 ADB TCP 配置:
# 方法1:通过USB连接电脑执行(推荐)
# 1. 手机通过USB连接到电脑
# 2. 在电脑终端执行:
adb tcpip 5555
# 方法2:如果手机已开启无线调试(Android 11+)
# 在手机设置 → 开发者选项 → 无线调试中获取配对码
# 然后在电脑终端执行 adb pair <IP>:<端口>说明:
- 这个配置会在手机重启后失效,需要重新执行
- 如果不执行此步骤,服务端会显示设备
offline
简单模式(IP 直连,2分钟):
cd web
npm install && npm run dev -- --host 0.0.0.0
# 访问:http://SERVER_IP:5173完整模式(域名+SSL,支持语音):见 部署文档
访问 智谱AI开放平台 → 注册 → 创建API密钥 → 填入 .env
📘 部署指南 - 完整的部署步骤和配置说明
两种部署模式:
- 简单模式:IP 直连,10分钟完成,适合快速体验和测试
- 完整模式:域名+SSL+反向代理,30分钟完成,支持语音输入和完整功能
| 模型 | 类型 | 特点 | 推荐场景 |
|---|---|---|---|
autoglm-phone |
🆓 免费 | 官方Phone模型,针对手机优化 | 默认推荐 ⭐ |
glm-4.6v-flash |
🆓 免费 | 最新视觉模型,高性价比 | 通用视觉任务 |
glm-4.6v |
💰 付费 | 旗舰视觉模型,最强理解 | 复杂任务、高精度 |
glm-4.6v-flashx |
💰 付费 | 极速响应版本 | 实时交互 |
开箱即用:默认使用 autoglm-phone(免费,针对手机优化),无需配置。
切换到其他模型:
# .env 文件
CUSTOM_MODEL_NAME=glm-4.6v-flash # 最新免费模型
CUSTOM_MODEL_NAME=glm-4.6v # 付费旗舰模型
CUSTOM_MODEL_NAME=glm-4.6v-flashx # 付费极速模型PhoneAgent 支持任何 OpenAI 兼容的视觉模型:
# 切换到 OpenAI GPT-4o
MODEL_PROVIDER=openai
CUSTOM_API_KEY=sk-proj-xxxxx
CUSTOM_MODEL_NAME=gpt-4o
# 切换到 Google Gemini
MODEL_PROVIDER=gemini
CUSTOM_API_KEY=AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXX
CUSTOM_MODEL_NAME=gemini-2.0-flash
# 切换到通义千问
MODEL_PROVIDER=qwen
CUSTOM_API_KEY=sk-xxxxx
CUSTOM_MODEL_NAME=qwen-vl-plus详见配置指南(环境变量配置章节)
| 层级 | 技术 |
|---|---|
| 前端 | Vue 3 + Vite + Element Plus + Pinia |
| 后端 | FastAPI + SQLite + WebSocket + FRP |
| AI | AutoGLM-Phone / GLM-4.6v系列 / OpenAI-Compatible |
| 终端 | Termux + ADB + Scrcpy |
| 执行引擎 | 逐步执行 + 智能规划(Beta) |
本项目基于 Open-AutoGLM(Apache 2.0)深度重构,采用 AGPL 3.0 协议开源。
| 使用场景 | 是否允许 |
|---|---|
| ✅ 个人学习和研究 | 免费使用 |
| ✅ 企业内部使用 | 免费使用 |
| ✅ 修改代码内部使用 | 免费使用 |
| 需开源或商业授权 | |
| 需开源或商业授权 |
AGPL 3.0 核心:修改代码并通过网络提供服务时,必须公开源代码。
商业授权:如需闭源使用,请联系洽谈商业授权。详见 LICENSE 文件。
第三方许可证:本项目使用了多个开源项目的代码,详见 LICENSES_THIRD_PARTY.md
请务必阅读:隐私与安全政策
PhoneAgent 可以控制你的 Android 设备执行自动化操作,使用前请理解以下内容:
允许的使用场景:
- ✅ 个人设备的自动化任务
- ✅ 测试和开发环境
- ✅ 学习和研究目的
- ✅ 合法的业务流程自动化
严格禁止:
- ❌ 批量刷单、刷量、刷评论等虚假数据操作
- ❌ 批量注册账号、群控设备
- ❌ 违反第三方应用服务条款的操作
- ❌ 侵犯他人隐私、盗用账号
- ❌ 任何违法违规行为
高风险操作警告:
⚠️ 涉及支付、转账的操作请人工复核⚠️ 账号密码等敏感信息请妥善保护⚠️ 重要操作建议手动监控执行过程
免责声明:
- 本软件按"原样"提供,不提供任何担保
- 使用者对自己的操作承担全部责任
- 因使用本软件导致的任何损失,开发者不承担责任
- 请遵守所在地区的法律法规和第三方服务条款
详细说明请查阅:privacy_policy.txt
由于个人精力有限,目前暂不接受 PR,但非常欢迎:
- 🐛 提交 Issue - 报告 Bug、提出功能建议
- 💡 Fork 项目 - 自由修改和定制
- 📖 改进建议 - 通过 Issue 提出文档和功能改进
- ⭐ Star 支持 - 给项目点 Star,让更多人看到
|
个人微信 技术交流 · 商务合作 |
赞赏支持 开源不易 · 感谢支持 |
- GitHub Issues: 提交问题
本项目基于以下开源项目开发,在此表示诚挚的感谢。
Open-AutoGLM(Apache 2.0)
本项目的核心执行引擎来自这个优秀的手机 Agent 研究项目。我在其基础上进行了工程化改造,补充了 Web 界面、多设备管理、智能规划等功能。
感谢提供免费的 autoglm-phone 视觉模型和语音识别服务。
以下开源项目为本项目提供了技术支持:
- Scrcpy - Android 屏幕镜像
- FRP - 内网穿透
- YADB - ADB 增强(中文输入、强制截图)
- Vue.js - 前端框架
- FastAPI - 后端框架
- Element Plus - UI 组件库
- Termux - Android 终端
感谢所有开源贡献者!🙏