mobile-use:自然语言操控手机的开源智能体

通过自然语言让 AI 智能体操控真实 Android/iOS 应用,完成消息发送、数据提取等任务。

Star 数
★ 3.3k
最近更新
今天
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
命令行工具自托管服务
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.12+uvADBDocker(可选)Shell / 命令行网络访问本地文件系统
典型场景
用户在 Android 手机上,用自然语言让 AI 打开 Gmail 并列出未读邮件的发件人和主题。
不适合
  • 需要控制实体 iPhone 的用户,目前仅支持 iOS 模拟器
  • 想玩手游自动化的用户,游戏缺少无障碍树数据,效果有限
  • 不愿配置 ADB、环境变量和 API 密钥的非技术用户

这个 Agent 能做什么,适合哪些场景?

mobile-use 是一个开源 AI 智能体,它能理解自然语言指令并操控真实 Android 和 iOS 设备上的应用。它通过分析 UI 层级(除非是游戏等无辅助功能数据的应用)来感知界面,并执行点击、滑动等操作。用户可以要求它完成从发送消息到从应用提取结构化数据(如 JSON)等任务。该智能体支持多种模型提供商,包括 OpenAI、Google、xAI、OpenRouter 和 MiniMax,并提供可配置的 LLM 设置。项目宣称是首个在 AndroidWorld 基准测试中达到 100% 准确率的智能体框架。部署方式灵活,支持 Docker 快速启动或从源码在本地运行。

mobile-use 接收自然语言命令,将其分解为对设备的操作步骤。它通过 ADB(Android Debug Bridge)连接 Android 设备或模拟器,或通过 IDB 连接 iOS 模拟器,获取当前界面的 UI 层级信息。基于此信息,智能体决定点击、滑动等操作,逐步执行任务。它的主要入口是 python ./minitap/mobile_use/main.py "<命令>" [--output-description <格式描述>],可根据描述将结果格式化为 JSON 等结构化数据。它支持通过 llm-config.override.jsonc 配置文件切换模型提供商,并支持设置环境变量如 OPENAI_API_KEY、ANTHROPIC_API_KEY 或 MINIMAX_API_KEY。

  1. 用户在 Android 手机上,用自然语言让 AI 打开 Gmail 并列出未读邮件的发件人和主题。
  2. 测试人员通过自然语言在 iOS 模拟器上执行一系列 UI 操作自动化测试,无需编写代码。
  3. 数据分析师从某个 app 中提取特定字段(如商品价格、联系人信息)并输出为 JSON 格式。
  4. 开发者调试自己的 Android 应用时,用自然语言指导 AI 在模拟器中执行特定路径的点击操作。
  5. 业务人员在不熟悉编程的情况下,使用手机上的 app 完成重复性数据采集任务。
  6. 研究人员在 AndroidWorld 基准测试上复现 100% 准确率的 agentic 结果。

如何安装或部署这个 Agent?

  1. 克隆仓库:git clone https://github.com/minitap-ai/mobile-use.git && cd mobile-use。2. 复制 .env.example 为 .env 并填入 API 密钥。3. (可选)复制 llm-config.override.template.jsonc 为 llm-config.override.jsonc 以自定义模型。4. 安装 [uv](https://github.com/astral-sh/uv)。5. 创建虚拟环境:uv venv。6. 激活虚拟环境:macOS/Linux 使用 source .venv/bin/activate,Windows 使用 .venv\Scripts\activate。7. 同步依赖:uv sync。对于 Android,需安装 [ADB](https://developer.android.com/studio/releases/platform-tools) 并启用 USB 调试;对于 iOS 模拟器,需在 macOS 上安装 [Xcode](https://developer.apple.com/xcode/) 和 [fb-idb](https://fbidb.io/docs/installation/)(通过 brew install idb-companion)。

如何使用这个 Agent?

首先确保设备已连接。对于 Android:通过 USB 连接并启用 USB 调试,或启动模拟器。对于 iOS:启动模拟器并确保 idb_companion 在 PATH 中。然后运行命令,例如:python ./minitap/mobile_use/main.py "Go to settings and tell me my current battery level"。若要提取结构化数据,可添加 --output-description 参数,如:python ./minitap/mobile_use/main.py "Open Gmail, find all unread emails, and list their sender and subject line" --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"。如果未配置模型,程序会提示从可用选项中选择。首次运行需要接受设备上的 ADB 连接请求。

这个 Agent 有哪些优点和局限?

优点
  • 在 AndroidWorld 基准测试中达到 100% 准确率,表现领先。
  • 支持多种主流 LLM 提供商(OpenAI、Google、xAI、OpenRouter、MiniMax),可灵活切换。
  • 提供 Docker 快速启动脚本,简化部署。
  • 支持 Android 和 iOS 模拟器,覆盖面广。
  • 提供云平台和跨平台用户界面,降低入门门槛。
局限
  • 物理 iOS 设备目前不支持,仅支持模拟器。
  • 对游戏类应用的 UI 操作有限,因为游戏通常不提供辅助功能树。
  • 依赖外部 LLM API,可能产生费用,且需要网络连接。
  • Docker 快速启动仅支持 Android,不支持 iOS。
  • 需要用户具备一定的技术知识(如 ADB 配置、环境变量设置)。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
mobile-use:自然语言操控手机的开源智能体 当前 33 · 缺口较多 命令行工具免费 + 模型费 ★ 3.3k 今天 Python OpenAI API · Claude API
Open-AutoGLM 手机智能体 55 · 缺口较多 命令行工具免费 + 模型费 ★ 26k 7 个月前 Python —
ClickClickClick 23 · 缺口较多 命令行工具免费 + 模型费 ★ 714 7 个月前 Python OpenAI API
OpenGUI 移动操作员 45 · 缺口较多 命令行工具免费 + 模型费 ★ 1.8k 今天 HTML Codex · Claude Code · OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
33/ 100 五分制 1.7 / 5
信任安全 0/29
可靠稳定 5/14
适用触发 9/18
规范维护 9/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全0 / 29 · 0.0/5

证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的明确说明。所有信任相关标准均未得到支持,因此全部评分为0。

可靠稳定5 / 14 · 1.8/5

证据显示:README和pyproject.toml提供了基本的一致性信息,如版本号、依赖列表和测试配置,但未提供详细的错误处理或故障恢复机制。依赖列表完整,但未提供依赖可用性保证。失败消息方面,README提供了部分故障排除指南,但不够全面。因此各评分为1。

适用触发9 / 18 · 2.5/5

证据显示:README明确了目标受众(开发者和用户)和多种使用场景(自然语言控制、数据抓取等),评分为2。能力边界方面,仅提及对游戏支持有限,但未详细说明其他限制,评分为1。触发精度方面,提供了命令行示例,但未说明触发条件或精确性,评分为1。环境适配方面,支持多种设备和平台,但未提供详细的配置选项,评分为2。

规范维护9 / 18 · 2.5/5

证据显示:README结构清晰,提供了安装、使用、架构等章节,评分为2。安装说明详细,包括Docker和手动安装,评分为2。命名稳定性方面,项目名称和版本号明确,但未提供API稳定性说明,评分为1。示例和FAQ方面,提供了多个示例和故障排除,评分为2。已知限制方面,仅提及游戏支持有限,评分为1。许可证为Apache-2.0,评分为2。版本控制和变更日志方面,有版本号但无变更日志,评分为1。维护责任方面,有作者信息但未明确维护责任,评分为1。

有效结果7 / 13 · 2.7/5

证据显示:输出可用性方面,提供了结构化输出示例(如JSON),评分为2。边际价值方面,提供了独特的功能(如数据抓取),评分为2。成本效益方面,未提供性能或成本数据,评分为1。

证据核验3 / 8 · 1.9/5

证据显示:README中声称达到AndroidWorld基准100%,但未提供可验证的测试结果或复现步骤,评分为1。跨来源验证方面,提供了论文和基准链接,但未提供独立验证,评分为1。事实与推断分离方面,README中混合了事实和推断,未明确区分,评分为1。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 未提供权限模型或用户确认机制,可能执行高风险操作。
  • 依赖列表包含多个第三方库,但未提供安全审计或漏洞扫描。
  • README中的基准测试声明缺乏可复现的测试步骤。
证据充分度:低 评估于 2026年8月9日 审查版本 cc20e3d52bf6 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v3.3.0 Release v3.3.0
    发布说明摘录
    What's Changed * fix: normalizing input for press key tool by @cguiguet in https://github.com/minitap-ai/mobile-use/pull/167 * feat(cortex): add form filling guidelines to prevent field misidentification by @cguiguet in https://github.com/minitap-ai/mobile-use/pull/168 * fix: Enter keycode implementation, better decision making for data related automations by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/169 Full Changelog: https://github.com/minitap-ai/mobile-use/compare/v3.2.1...v3.3.0
    在 GitHub 查看 ↗
  2. v2.9.0 Release v2.9.0
    发布说明摘录
    What's Changed * feat(sdk): manual platform task can have a task name for tracing by @KYN4 in https://github.com/minitap-ai/mobile-use/pull/106 * docs: clarify API key and task configuration in platform example by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/109 * fix: focus and input text now outputs the focus method to the agents by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/107 * feat: updating Langgraph to alpha by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/108 …
    在 GitHub 查看 ↗
  3. v2.6.0 Release v2.6.0
    发布说明摘录
    What's Changed * feat: bump to v2.5.0 by @cguiguet in https://github.com/minitap-ai/mobile-use/pull/79 * Fix iOS device detection by checking for Darwin instead of Linux by @yulingtianxia in https://github.com/minitap-ai/mobile-use/pull/80 * feat: prefer minitap default llm profile over openai config by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/81 * feat: get streaming status endpoint by @plfavreau in https://github.com/minitap-ai/mobile-use/pull/82 * fix(sdk): adb host forwarded to maestro server by @KYN4 in https://github.com/minitap-ai/mobile-use/pull/83 …
    在 GitHub 查看 ↗

常见问题

mobile-use 支持哪些模型提供商?
支持 OpenAI、Google、xAI、OpenRouter、MiniMax,以及任何兼容 OpenAI API 的本地或托管提供商(通过设置 OPENAI_BASE_URL)。
我可以在物理 iPhone 上使用吗?
目前不支持物理 iOS 设备,仅支持 iOS 模拟器(macOS 环境)。
使用 mobile-use 需要支付哪些费用?
mobile-use 本身是开源免费的,但需要您自备 LLM 提供商的 API 密钥,并承担相关 API 调用费用。
出现连接问题如何排查?
确保手机和电脑在同一 Wi-Fi 网络下,并检查防火墙设置。如果无法自动获取设备 IP,可使用 adb shell ip addr show up 手动指定接口,并在脚本中添加 --interface 参数。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents