news 2026/4/15 21:29:30

保姆级指南:Mac上一键部署智谱AI手机助手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级指南:Mac上一键部署智谱AI手机助手

保姆级指南:Mac上一键部署智谱AI手机助手

摘要:本教程教你在 Mac (Apple Silicon) 上部署智谱 AutoGLM-Phone-9B 多模态大模型,实现完全本地化、隐私安全、零成本的手机 AI 助理。从原理到部署、从操作到优化,一文搞定!


1. 什么是 Open-AutoGLM?

1.1 项目简介

Open-AutoGLM是智谱 AI 开源的手机端 AI Agent 框架,名为 AutoGLM-Phone。它能让你的 Mac 成为安卓手机的“智能大脑”,通过 ADB(Android Debug Bridge)远程控制设备,自动完成各类任务。

只需一句自然语言指令,如:

  • “打开小红书搜索美食推荐”
  • “在抖音关注用户 dycwo11nt61d”
  • “打开微信给家人发消息说我晚上回家吃饭”

系统即可自动解析意图、理解当前界面状态、规划操作路径并执行点击、滑动、输入等动作,全程无需手动干预。

该框架基于视觉语言模型(VLM),结合多模态感知与智能决策能力,构建了一个完整的AI 手机助理闭环系统

1.2 为什么选择本地部署?

对比项云端 API 模式本地 MLX 模式
隐私安全截图上传至远程服务器数据始终保留在本机
运行成本按 Token 或调用次数收费仅消耗电费,长期使用更经济
网络依赖必须联网,断网无法使用支持离线运行,稳定性更高
响应延迟受网络波动影响较大本地推理延迟低且可预测

对于注重隐私、希望长期稳定使用的用户,本地部署是更优选择。

1.3 适合人群

  • 开发者:学习 AI Agent 架构设计与多模态应用开发
  • 极客玩家:探索 Apple Silicon 上的大模型部署技巧
  • 隐私敏感者:拒绝将手机截图上传至第三方服务
  • 自动化爱好者:打造个性化手机自动化流程

2. 核心原理解析

2.1 AI Agent 工作机制

Open-AutoGLM 遵循经典的感知-思考-行动(Perception-Thinking-Action)循环架构

┌─────────────────────────────────────────────────────────────┐ │ Agent 工作循环 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 感 知 │ ──→ │ 思 考 │ ──→ │ 行 动 │ │ │ │ │ │ │ │ │ │ │ │ 截图 │ │ 理解状态 │ │ 点击 │ │ │ │ UI解析 │ │ 规划步骤 │ │ 滑动 │ │ │ │ App状态 │ │ 生成指令 │ │ 输入 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↑ │ │ │ └──────────────────────────────────┘ │ │ 循环执行 │ └─────────────────────────────────────────────────────────────┘

每一轮迭代中: 1.感知层获取手机屏幕图像和 UI 结构信息; 2.推理层结合任务描述进行多模态理解与路径规划; 3.执行层将决策转化为 ADB 命令并作用于设备。

2.2 三层架构详解

感知层(Perception Layer)
感知方式技术实现输出格式
视觉感知adb shell screencap -p > screen.pngPNG 图像文件
结构化感知adb shell uiautomator dumpXML 元素树
状态感知adb shell dumpsys activity当前 Activity 名称

这些数据共同构成对手机当前状态的完整描述,供模型分析。

推理层(Reasoning Layer)

AutoGLM-Phone-9B 是一个专为移动端操作设计的视觉-语言联合模型(VLM),其输入包括:

  • 系统提示词(System Prompt)
  • 用户任务指令
  • 当前手机截图(Base64 编码或文件路径)

模型输出遵循特定格式:

<think>我需要先找到微信图标并点击进入...</think> <answer>{"action": "Tap", "element": [500, 800]}</answer>

其中<think>包含推理过程,<answer>包含结构化操作指令。

执行层(Execution Layer)

所有操作最终由 ADB 命令实现:

操作类型ADB 命令示例说明
Tapadb shell input tap 500 800在指定坐标点击
Swipeadb shell input swipe 500 1000 500 200从下往上滑动
Typeadb shell am broadcast -a ADB_INPUT_TEXT --es msg "hello"输入文本
Launchadb shell am start -n com.ss.android.ugc.aweme/.main.MainActivity启动抖音

此外,系统内置敏感操作确认机制人工接管接口,确保关键操作(如支付、登录)的安全性。

2.3 MLX 框架优势

MLX是苹果为 Apple Silicon(M1/M2/M3/M4)定制的深度学习框架,具备以下特性:

  • 统一内存架构:CPU 与 GPU 共享内存,避免频繁拷贝
  • 延迟编译优化:仅编译实际执行的计算图路径
  • Metal 加速支持:充分利用 GPU 并行计算能力

得益于 MLX,我们可以在 Mac 上高效运行参数量达 9B 的多模态模型,而无需依赖云服务。


3. 环境准备(超详细)

3.1 系统要求

项目最低配置推荐配置
macOS13.3+14.0+ (Sonoma)
芯片M1M1 Max / M2 Pro 及以上
内存16GB(需量化)32GB+
存储空间20GB 可用 SSD50GB+
Python3.10+3.11

建议使用搭载 M1 及以上芯片的 Mac 设备以获得最佳性能。

3.2 安装 Python 环境

推荐使用pyenv管理 Python 版本。

# 安装 Homebrew(若未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装 pyenv brew install pyenv # 配置 zsh 环境变量 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc # 安装 Python 3.11 pyenv install 3.11.9 pyenv global 3.11.9 # 验证 python --version # 应输出 Python 3.11.9

3.3 安装 ADB 工具

ADB 是连接 Mac 与安卓设备的核心工具。

# 使用 Homebrew 安装 brew install android-platform-tools # 验证安装 adb version

3.4 配置安卓手机

步骤 1:开启开发者模式
  1. 进入设置 → 关于手机
  2. 连续点击版本号7 次
  3. 出现提示:“您现在是开发者!”

不同品牌路径略有差异,华为在“关于手机”,小米在“我的设备”。

步骤 2:启用 USB 调试
  1. 返回设置 → 系统 → 开发者选项
  2. 开启USB 调试
  3. (可选)关闭“监控 ADB 安装”以减少弹窗干扰
步骤 3:连接授权
  1. 使用数据线连接手机与 Mac
  2. 手机端弹出“允许 USB 调试?”对话框,勾选“始终允许”后确认
  3. 终端验证:
adb devices # 正常输出示例: # List of devices attached # ABCD1234567890 device

3.5 安装 ADB Keyboard

用于通过 ADB 发送中文输入。

  1. 下载 APK 文件:ADBKeyboard.apk
  2. 安装:
adb install ADBKeyboard.apk
  1. 设置为默认输入法:
  2. 手机进入设置 → 语言与输入法 → 虚拟键盘
  3. 启用ADB Keyboard

  4. 验证:

adb shell ime list -a | grep ADB # 应输出: com.android.adbkeyboard/.AdbIME

3.6 安装项目依赖

# 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM # 安装 MLX 相关库 pip install mlx "git+https://github.com/Blaizzy/mlx-vlm.git@main" torch torchvision transformers # 安装项目依赖 pip install -r requirements.txt pip install -e . # 验证安装成功 python -c "import mlx; import phone_agent; print('✅ 安装成功!')"

4. 模型下载与部署

4.1 下载模型

方法 A:HuggingFace CLI(国际源)
# 安装 HuggingFace CLI pip install -U "huggingface_hub[cli]" # 设置国内镜像加速(可选) export HF_ENDPOINT=https://hf-mirror.com # 下载模型(约 20GB) huggingface-cli download \ --resume-download zai-org/AutoGLM-Phone-9B \ --local-dir ./models/AutoGLM-Phone-9B
方法 B:ModelScope(国内推荐)
pip install modelscope python -c " from modelscope import snapshot_download; snapshot_download('ZhipuAI/AutoGLM-Phone-9B', local_dir='./models/AutoGLM-Phone-9B') "

4.2 启动本地代理

python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信"

首次运行会加载模型,耗时约 30 秒(M1 Max 机型)。

4.3 4-bit 量化优化(16GB 内存适用)

若内存有限,建议使用量化模型降低资源占用。

指标FP16 原始模型4-bit 量化模型
模型大小~20GB~6.5GB
内存需求≥32GB16GB 即可运行
推理速度较慢提升约 3 倍
精度损失基准<2%

执行量化:

python -m mlx_vlm.convert \ --hf-path ./models/AutoGLM-Phone-9B \ -q \ --q-bits 4 \ --mlx-path ./autoglm-9b-4bit

使用量化模型运行:

python main.py --local --model ./autoglm-9b-4bit "打开B站搜索Python教程"

5. 实战操作指南

5.1 基础运行模式

交互式模式
python main.py --local --model ./autoglm-9b-4bit # 输入任务: > 打开小红书搜索咖啡探店 > 滑动浏览3个帖子 > 退出
单次任务模式
python main.py --local --model ./autoglm-9b-4bit "打开抖音关注用户dycwo11nt61d"

5.2 常用参数说明

参数说明示例
--local使用本地 MLX 推理--local
--model指定模型路径--model ./autoglm-9b-4bit
--device-id指定 ADB 设备 ID 或 IP--device-id 192.168.1.100:5555
--lang语言设置(cn/en)--lang cn
--list-devices列出已连接设备--list-devices

5.3 典型任务示例

# 社交沟通 python main.py --local --model ./autoglm-9b-4bit "打开微信给李四发消息:会议推迟到下午三点" # 电商购物 python main.py --local --model ./autoglm-9b-4bit "打开淘宝搜索无线耳机按销量排序" # 外卖点餐 python main.py --local --model ./autoglm-9b-4bit "打开美团外卖点一份黄焖鸡米饭" # 视频娱乐 python main.py --local --model ./autoglm-9b-4bit "打开B站搜索二次元动画推荐" # 音乐播放 python main.py --local --model ./autoglm-9b-4bit "打开网易云音乐搜索周杰伦的《晴天》并播放"

5.4 WiFi 远程调试

摆脱 USB 线束缚,实现无线控制。

步骤 1:开启无线调试
  1. 手机与 Mac 处于同一局域网
  2. 进入开发者选项 → 无线调试
  3. 记录显示的 IP 地址与端口号(通常为 5555)
步骤 2:建立连接
# 先用 USB 启动 TCP/IP 模式 adb tcpip 5555 # 断开 USB,使用 IP 连接 adb connect 192.168.1.100:5555 # 验证 adb devices # 执行任务 python main.py --local --model ./autoglm-9b-4bit \ --device-id 192.168.1.100:5555 \ "打开抖音刷视频"

6. 性能优化详解

6.1 内置优化策略

图像智能降采样

高分辨率截图严重影响推理效率。系统自动将图像长边压缩至 1024px 以内:

原始尺寸处理后尺寸像素减少比例
2400×10801024×46082%
1920×10801024×57672%

显著提升处理速度,同时保留足够语义信息。

KV Cache 8-bit 量化

在推理过程中启用kv_bits=8,将注意力缓存从 FP16 降至 INT8:

  • 显存占用减少约 30%
  • 推理吞吐略有提升
显存强制回收

每步推理后调用:

mx.clear_cache() gc.collect()

防止内存泄漏,保障长时间运行稳定性。

6.2 手动优化建议

  1. 关闭后台应用:释放更多内存给 MLX 使用
  2. 优先使用 USB 连接:传输更稳定,延迟更低
  3. 降低屏幕亮度:减小截图文件体积
  4. 定期重启进程:若出现卡顿,Ctrl+C后重新启动

6.3 性能实测数据(M1 Max 32GB)

阶段耗时
模型加载~30 秒
单步推理13–18 秒
截图获取0.5–1 秒

完整任务示例:“打开网易云音乐搜索《一滴泪的时间》并播放”

  • 总步骤数:6 步
  • 总耗时:约 2 分 18 秒

7. API 与进阶用法

7.1 Python API 调用

from phone_agent import PhoneAgent from phone_agent.model import ModelConfig from phone_agent.agent import AgentConfig # 模型配置 model_config = ModelConfig( model_name="./autoglm-9b-4bit", is_local=True, max_tokens=3000, temperature=0.1, ) # Agent 配置 agent_config = AgentConfig( max_steps=50, verbose=True, lang="cn", ) # 创建代理 agent = PhoneAgent(model_config=model_config, agent_config=agent_config) # 执行任务 result = agent.run("打开抖音刷3个视频") print(f"任务结果: {result}")

7.2 自定义回调函数

处理敏感操作与人工介入场景:

def my_confirmation(message: str) -> bool: print(f"⚠️ 检测到敏感操作: {message}") return input("是否继续?(y/n): ").lower() == "y" def my_takeover(message: str) -> None: print(f"✋ 需要人工操作: {message}") input("完成后按回车继续...") agent = PhoneAgent( confirmation_callback=my_confirmation, takeover_callback=my_takeover, )

7.3 批量任务执行

tasks = [ "打开微信给张三发消息:会议改到下午4点", "打开支付宝查看余额", "打开美团查看最近订单", ] for task in tasks: result = agent.run(task) print(f"✅ 完成: {task}") agent.reset() # 重置状态

8. 常见问题 FAQ

Q1:adb devices无设备显示

adb kill-server adb start-server adb devices

常见原因: - 使用了纯充电线(不支持数据传输) - 未在手机上授权调试权限 - 开发者选项未正确开启

Q2: 模型下载中断

使用断点续传:

huggingface-cli download --resume-download zai-org/AutoGLM-Phone-9B --local-dir ./models/AutoGLM-Phone-9B

或切换国内镜像:

export HF_ENDPOINT=https://hf-mirror.com

Q3: 内存不足导致崩溃

解决方案: 1. 使用 4-bit 量化模型 2. 关闭其他大型应用程序 3. 重启 Mac 后再尝试

Q4: 文字输入失败

检查 ADB Keyboard 是否正确安装并启用:

adb shell ime list -a | grep ADB

应返回com.android.adbkeyboard/.AdbIME

Q5: 截图为黑屏

部分应用(如银行、支付类)禁止截图,属正常系统保护机制。此时模型会自动请求人工接管。

Q6: 运行变慢或卡顿

终止当前进程后重启:

# Ctrl+C 中断 python main.py --local --model ./autoglm-9b-4bit "你的任务"

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 7:39:34

超分辨率技术入门:EDSR模型快速部署与使用

超分辨率技术入门&#xff1a;EDSR模型快速部署与使用 1. 技术背景与应用场景 随着数字图像在社交媒体、安防监控、医疗影像等领域的广泛应用&#xff0c;低分辨率图像带来的信息缺失问题日益突出。传统的双线性插值或Lanczos重采样方法虽然能实现图像放大&#xff0c;但无法…

作者头像 李华
网站建设 2026/4/15 17:39:01

NotaGen高级应用:生成爵士化古典音乐技巧

NotaGen高级应用&#xff1a;生成爵士化古典音乐技巧 1. 引言 随着人工智能在音乐创作领域的不断深入&#xff0c;基于大语言模型&#xff08;LLM&#xff09;范式的符号化音乐生成技术正逐步走向成熟。NotaGen 是一款由开发者“科哥”基于 LLM 架构二次开发的 WebUI 工具&am…

作者头像 李华
网站建设 2026/4/10 15:50:22

告别手动操作!Open-AutoGLM实现抖音自动关注

告别手动操作&#xff01;Open-AutoGLM实现抖音自动关注 1. 引言&#xff1a;让AI接管你的手机操作 1.1 业务场景描述 在日常使用智能手机的过程中&#xff0c;我们经常需要重复执行一些固定流程的操作&#xff0c;例如在抖音上搜索特定账号并完成关注。这类任务虽然简单&am…

作者头像 李华
网站建设 2026/4/10 23:48:20

SGLang高可用架构设计:负载均衡与容灾部署实战

SGLang高可用架构设计&#xff1a;负载均衡与容灾部署实战 1. 引言 1.1 业务场景描述 随着大模型在企业级应用中的广泛落地&#xff0c;如何高效、稳定地部署LLM服务成为工程实践中的核心挑战。SGLang-v0.5.6作为新一代推理框架&#xff0c;凭借其高效的KV缓存管理和结构化输…

作者头像 李华
网站建设 2026/4/8 9:56:07

verl预训练衔接:如何设置RL阶段的初始化权重

verl预训练衔接&#xff1a;如何设置RL阶段的初始化权重 1. 技术背景与问题提出 在大型语言模型&#xff08;LLM&#xff09;的后训练流程中&#xff0c;强化学习&#xff08;Reinforcement Learning, RL&#xff09;阶段是提升模型行为对齐能力的关键环节。然而&#xff0c;…

作者头像 李华
网站建设 2026/4/15 18:20:12

BAAI/bge-m3保姆级教程:手把手教你做文本语义匹配

BAAI/bge-m3保姆级教程&#xff1a;手把手教你做文本语义匹配 1. 背景与学习目标 在当前大模型和检索增强生成&#xff08;RAG&#xff09;系统广泛应用的背景下&#xff0c;高质量的文本语义匹配能力已成为构建智能问答、知识库检索和推荐系统的核心基础。BAAI/bge-m3 是由北…

作者头像 李华