logo
0
0
WeChat Login
docs: 添加项目README文档并更新运行脚本

AutoGLM Phone Agent 部署项目

基于 AutoGLM-Phone-9B 的手机端智能助理部署项目,支持通过自然语言指令自动操作 Android 设备完成各种任务。

项目简介

本项目集成了 Open-AutoGLM 框架和 AutoGLM-Phone-9B 模型,提供了一键部署和管理工具。Phone Agent 能够:

  • 以多模态方式理解手机屏幕内容
  • 通过自动化操作帮助用户完成任务
  • 支持自然语言指令(如"打开美团搜索美食")
  • 内置敏感操作确认机制
  • 支持远程 ADB 调试

项目结构

/workspace/ ├── models/ │ ├── AutoGLM-Phone-9B/ # AutoGLM-Phone-9B 模型目录(下载后生成) │ └── Open-GLM/ # Open-AutoGLM Agent 代码(下载后生成) ├── run.sh # 部署和管理脚本 ├── README.md # 本文档 └── .cnb.yml # Cloud Native Build 配置

快速开始

前置要求

  • Python 3.10+
  • Docker(用于模型服务)
  • Android 7.0+ 或 HarmonyOS 设备
  • USB 数据线(需支持数据传输)

一键部署

使用 run.sh 命令

# 下载模型初始环境 ./run.sh setup # 启动模型服务(如因GPU资源分配问题启动失败需显存24GB+,可重新启动或关闭环境后重新打开) ./run.sh start # 安装并配置 Agent 虚拟环境 ./run.sh venv

手动部署

1. 下载模型

mkdir -p /workspace/models cd /workspace/models git clone https://cnb.cool/ai-models/zai-org/AutoGLM-Phone-9B

2. 启动模型服务

使用 Docker vLLM 部署模型:

docker run --gpus all --rm \ -v /workspace/models:/workspace/models \ -p 8000:8000 vllm/vllm-openai:v0.12.0 \ --gpu-memory-utilization 0.56 \ --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 /workspace/models/AutoGLM-Phone-9B \ --port 8000

3. 安装 Agent

# 克隆 Open-GLM 代码仓库 cd /workspace/models git clone https://cnb.cool/jacknic-lab/zai-org/Open-AutoGLM /workspace/models/Open-GLM # 创建虚拟环境 cd /workspace/models/Open-GLM python3 -m venv venv # 激活虚拟环境并安装依赖 source venv/bin/activate pip install -r requirements.txt

4. 手机端配置

Android 设备
  1. 开启开发者模式

    • 进入 设置 → 关于手机 → 版本号
    • 连续点击 7 次
  2. 启用 USB 调试

    • 进入 设置 → 开发者选项 → USB 调试
    • 开启该选项
    • 部分机型需要同时开启 USB 调试(安全设置)
  3. 安装 ADB Keyboard

    wget https://github.com/senzhk/ADBKeyBoard/raw/refs/heads/master/ADBKeyboard.apk adb install ADBKeyboard.apk
    • 安装后在 设置 → 语言和输入法 中启用
  4. 连接设备

    # 使用 USB 数据线连接手机 adb devices # 应显示设备列表,如: # List of devices attached # XXXXXXXX device
鸿蒙设备(HarmonyOS NEXT)
  1. 开启开发者模式(类似 Android)
  2. 启用 USB 调试设置 → 系统和更新 → 开发者选项
  3. 使用 HDC 替代 ADB:
    hdc list targets

使用方法

交互模式(需在venv中运行, 执行source run.sh venv 可直接执行测试方法)

source /workspace/models/Open-GLM/venv/bin/activate python /workspace/models/Open-GLM/main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b"

指定任务

source /workspace/models/Open-GLM/venv/bin/activate python /workspace/models/Open-GLM/main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b" "打开美团搜索附近的火锅店"

查看完整列表:

# Android python /workspace/models/Open-GLM/main.py --list-apps # 鸿蒙 python /workspace/models/Open-GLM/main.py --device-type hdc --list-apps

可用操作

Agent 可执行以下操作:

操作描述
Launch启动应用
Tap点击指定坐标
Type输入文本
Swipe滑动屏幕
Back返回上一页
Home返回桌面
Long Press长按
Double Tap双击
Wait等待页面加载
Take_over请求人工接管(登录/验证码等)

远程调试

开启无线调试(Android)

  1. 确保手机开启adb并连接电脑
  2. adb 通过 IDEA/WebStorm 转发端口
  3. 使用以下命令连接:

个人PC端:连接手机后启动TCP转发, 此时本机的 5555 端就是手机的adb连接端口

adb tcpip 5555 adb forward tcp:5555 tcp:5555

个人PC端:安装好 WebStorm ,将本地端口转发到云端

  1. SSH 连接

ssh连接

  1. 安装IDE

安装IDE

  1. 打开项目文件配置转发端口,验证连接状态

连接状态

指定设备执行任务

python /workspace/models/Open-GLM/main.py --base-url http://localhost:8000/v1 --model "autoglm-phone-9b" "打开抖音刷视频"

常见问题

设备未找到

adb kill-server adb start-server adb devices

检查:

  • USB 调试是否已开启
  • 数据线是否支持数据传输
  • 手机授权框是否已点击「允许」

能打开应用但无法点击

确保同时开启:

  • USB 调试
  • USB 调试(安全设置)

文本输入不工作

  1. 确认设备已安装 ADB Keyboard
  2. 在系统设置中启用 ADB Keyboard
  3. Agent 会自动切换到 ADB Keyboard