文章目录
Open-AutoGLM:手机端智能助理框架详解
项目简介
若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力!有问题请私信或联系邮箱:funian.gm@gmail.com
Open-AutoGLM 是一个基于 AutoGLM 构建的手机端智能助理框架,核心组件为 Phone Agent。它通过多模态方式理解手机屏幕内容,结合 ADB(Android Debug Bridge)实现自动化操作,支持用户通过自然语言指令完成各类手机任务(如"打开小红书搜索美食""打开淘宝搜索无线耳机"等)。

项目特点:
- 多模态交互:通过视觉语言模型解析屏幕内容
- 自动化操作:模拟点击、滑动、输入等人类操作
- 灵活部署:支持本地/云端模型部署,数据隐私可控
- 安全机制:内置敏感操作确认及人工接管功能(如登录、验证码场景)
- 远程控制:支持 WiFi 或网络连接设备,实现远程调试
核心模型
Open-AutoGLM 提供两个预训练模型,适配不同场景:
| 模型名称 | 特点 | 下载地址 |
|---|---|---|
| AutoGLM-Phone-9B | 针对中文手机应用优化 | Hugging Face、ModelScope |
| AutoGLM-Phone-9B-Multilingual | 支持英语及多语言场景 | Hugging Face、ModelScope |
环境准备与部署
1. 基础环境
-
Python 3.10+
-
安装依赖:
bashpip install -r requirements.txt pip install -e .
2. 模型部署
需通过 SGlang 或 vLLM 启动 OpenAI 格式的模型服务(以 vLLM 为例):
bash
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 访问。
快速使用
1. 命令行模式
bash
# 交互模式
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"
2. Python API
python
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)
项目结构
核心模块组织清晰,便于二次开发:
phone_agent/
├── agent.py # PhoneAgent 主类
├── adb/ # ADB 工具(连接、截图、输入、设备控制)
├── actions/ # 操作处理器(执行点击、滑动等动作)
├── config/ # 配置文件(应用映射、多语言提示词)
└── model/ # AI 模型客户端(兼容 OpenAI 接口)
二次开发
-
安装开发依赖:
bashpip install -e ".[dev]" -
运行测试:
bashpytest tests/ -
示例参考:
examples/目录提供基础使用、单步调试、批量任务等示例代码。