Anthropic Claude Haiku Latest + Docker Registry Docker Registry + Android device/emulator (USB-debugging)+ ghcr.io 容器镜像+ Node 18++ mobile-use+ ADB

Docker化LLM Agent通过ADB操控Android手机完成自然语言任务

LLM解析自然语言为操作指令,mobile-use Agent调度ADB驱动Android UI自动化

✓ 支持多家LLM提供商灵活切换✓ Docker一键启动部署门槛低 ✕ Docker快速启动仅支持Android✕ 游戏因无Accessibility tr

方案简介

mobile-use 是一个开源的 AI Agent,能够用自然语言操控 Android 或 iOS 设备。用户只需输入指令,Agent 即可理解并与手机 UI 交互,完成从发送消息到复杂应用导航等任务。

该项目的核心定位是「让 LLM 充当手机操作的大脑」,通过把自然语言意图映射到 UI 层面的真实点击、滑动、输入,从而实现通用型手机自动化。它不局限于某一类 App,凡是有可访问性(Accessibility)树的应用都能被驱动。

适合的用户群体包括:

  • 想要自动化重复手机操作(订票、抢券、批量填写)的个人用户
  • 需要从 App 中结构化抓取数据的研究/数据分析师
  • 评估或构建 On-device Agent 的研究者(项目方自称 AndroidWorld 榜单 100% 完成)
  • 想在自己的应用里集成「说话即操作手机」能力的开发者(提供 SDK/MCP Server)

项目仍处于快速演进阶段,团队在 Discord 上活跃收集 issue 与建议。

亮点与能力

  • 🗣️ 自然语言控制:用母语描述任务,Agent 解析后执行手机操作。
  • 📱 UI 感知自动化:智能浏览 App 界面,依赖无障碍树驱动(注意:游戏类应用通常不暴露 Accessibility tree,因此效果有限)。
  • 📊 数据抓取与结构化:从任意 App 抽取信息,按自然语言描述的格式输出(如 JSON)。
  • 🔧 可扩展可定制:Agent 的多个节点可独立配置 LLM,官方支持 OpenAI、Google、xAI、OpenRouter、MiniMax 等多家提供商,也兼容任何 OpenAI-API 兼容服务(含本地 LLM)。
  • 📲 多设备形态:支持物理 Android 手机(USB 调试)、Android 模拟器(Android Studio)、iOS 模拟器(macOS)。
  • 🐳 Docker 一键启动:封装好的脚本只需一条命令即可拉起 Agent 容器,连接局域网内的 Android 设备。
  • 🏆 基准领先:官方声明在 AndroidWorld 基准上达到 100% 完成率,位列榜首。

实施步骤

1. 准备环境变量

复制示例环境变量文件,并填入你的 LLM API Key:

cp .env.example .env

如需切换 LLM 提供商(默认 OpenAI),在 .env 中设置对应变量,例如 OPENAI_BASE_URL / OPENAI_API_KEY、使用 MiniMax 时设置 MINIMAX_API_KEY、使用 Anthropic Claude 时设置 ANTHROPIC_API_KEY、使用 Google Vertex AI 时配置 GOOGLE_APPLICATION_CREDENTIALS

2. (可选)自定义 LLM 配置

为不同 Agent 节点指定不同模型或提供商:

cp llm-config.override.template.jsonc llm-config.override.jsonc

然后编辑 llm-config.override.jsonc,把对应节点 provider 设为 openai / minimax 等。

3. 连接 Android 设备

二选一:

  • 物理手机:插入 USB 数据线,在「开发者选项」中开启 USB 调试
  • 模拟器:启动 Android Studio 中的 Android Emulator
[!NOTE]
使用真机时,记得在手机上点击「同意」ADB 连接授权弹窗。

4. 一键启动(Docker 快速模式)

Linux / macOS:

chmod +x mobile-use.sh
bash ./mobile-use.sh \
  "Open Gmail, find first 3 unread emails, and list their sender and subject line" \
  --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"

Windows(PowerShell):

powershell.exe -ExecutionPolicy Bypass -File mobile-use.ps1 `
  "Open Gmail, find first 3 unread emails, and list their sender and subject line" `
  --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"

脚本会自动拉取 ghcr.io 上的 mobile-use 镜像,在容器内启动 Agent 并连接局域网内的 Android 设备执行任务。

使用与配置要点

日常使用方式

mobile-use 提供两种使用姿态:

  1. CLI 单次任务:在终端以一行命令描述任务,Agent 即时执行并返回结果。任务描述写在第一个位置参数里,期望的输出结构用 --output-description 指定(典型用法就是要求返回 JSON)。
  2. SDK / MCP Server 集成:官方提供 SDK 与 MCP Server,可将 mobile-use 嵌入到自有应用或 AI 客户端中,让其成为可调用的工具。文档入口见 docs.minitap.ai

验证 Agent 是否跑通

  • 手机上能看到 App 被自动打开、点击、滚动等操作
  • 终端会回显 Agent 思考过程与最终结果(按 --output-description 格式化)
  • 跑通示例任务 Open Gmail, find first 3 unread emails... 即视为成功

切换 / 调优 LLM

llm-config.override.jsonc 支持对 Agent 内部不同节点分别指定模型,便于把「视觉感知」与「规划决策」拆分到不同模型以平衡成本与效果。

注意事项与常见问题

常见问题(来自官方 Troubleshooting)

1. 找不到设备 IP(Could not get device IP
脚本默认会探测手机常见 Wi-Fi 接口名,如果你的手机 Wi-Fi 接口名称不在内置列表中,需要先用 adb shell ip addr show up 查出实际接口名,并通过 --interface 显式传入。

2. Docker 内连不上 :5555
多半是宿主机/网络防火墙阻挡了到设备的 ADB 端口,官方表示「没有万能解法」,需用户自行排查网络策略。

3. 拉取 ghcr.io 镜像报 unauthorized
若你之前用 ghcr.io 拉过私有镜像可能存在过期 token,请执行 docker logout ghcr.io 后重试。

已知限制

  • Docker 快速启动目前只支持 Android(物理机 + 模拟器)。
  • 物理 iOS 设备暂不支持,只能在 macOS 上用 iOS Simulator。
  • 游戏类应用由于不暴露 Accessibility tree,自动化效果有限。
  • 手机必须与电脑处于同一 Wi-Fi 网络(Docker 模式通过 IP 连接)。

优缺点

  • ✓ 支持多家LLM提供商灵活切换
  • ✓ Docker一键启动部署门槛低
  • ✕ Docker快速启动仅支持Android
  • ✕ 游戏因无Accessibility tr

出处

本方案挖掘自开源项目 minitap-ai/mobile-use,方案内容与实施命令均来自其 README 原文。

方案出处
minitap-ai/mobile-use:AI agents can now use real Android and iOS apps, just like a human.
2808 star AI agents can now use real Android and iOS apps, just like a human.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。