mobile-use:自然语言操控手机的开源智能体
通过自然语言让 AI 智能体操控真实 Android/iOS 应用,完成消息发送、数据提取等任务。
- Star 数
- ★ 3.3k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 33/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 用户在 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。
- 用户在 Android 手机上,用自然语言让 AI 打开 Gmail 并列出未读邮件的发件人和主题。
- 测试人员通过自然语言在 iOS 模拟器上执行一系列 UI 操作自动化测试,无需编写代码。
- 数据分析师从某个 app 中提取特定字段(如商品价格、联系人信息)并输出为 JSON 格式。
- 开发者调试自己的 Android 应用时,用自然语言指导 AI 在模拟器中执行特定路径的点击操作。
- 业务人员在不熟悉编程的情况下,使用手机上的 app 完成重复性数据采集任务。
- 研究人员在 AndroidWorld 基准测试上复现 100% 准确率的 agentic 结果。
如何安装或部署这个 Agent?
- 克隆仓库:
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?
查看各维度的扣分理由
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的明确说明。所有信任相关标准均未得到支持,因此全部评分为0。
证据显示:README和pyproject.toml提供了基本的一致性信息,如版本号、依赖列表和测试配置,但未提供详细的错误处理或故障恢复机制。依赖列表完整,但未提供依赖可用性保证。失败消息方面,README提供了部分故障排除指南,但不够全面。因此各评分为1。
证据显示:README明确了目标受众(开发者和用户)和多种使用场景(自然语言控制、数据抓取等),评分为2。能力边界方面,仅提及对游戏支持有限,但未详细说明其他限制,评分为1。触发精度方面,提供了命令行示例,但未说明触发条件或精确性,评分为1。环境适配方面,支持多种设备和平台,但未提供详细的配置选项,评分为2。
证据显示:README结构清晰,提供了安装、使用、架构等章节,评分为2。安装说明详细,包括Docker和手动安装,评分为2。命名稳定性方面,项目名称和版本号明确,但未提供API稳定性说明,评分为1。示例和FAQ方面,提供了多个示例和故障排除,评分为2。已知限制方面,仅提及游戏支持有限,评分为1。许可证为Apache-2.0,评分为2。版本控制和变更日志方面,有版本号但无变更日志,评分为1。维护责任方面,有作者信息但未明确维护责任,评分为1。
证据显示:输出可用性方面,提供了结构化输出示例(如JSON),评分为2。边际价值方面,提供了独特的功能(如数据抓取),评分为2。成本效益方面,未提供性能或成本数据,评分为1。
证据显示:README中声称达到AndroidWorld基准100%,但未提供可验证的测试结果或复现步骤,评分为1。跨来源验证方面,提供了论文和基准链接,但未提供独立验证,评分为1。事实与推断分离方面,README中混合了事实和推断,未明确区分,评分为1。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 未提供权限模型或用户确认机制,可能执行高风险操作。
- 依赖列表包含多个第三方库,但未提供安全审计或漏洞扫描。
- README中的基准测试声明缺乏可复现的测试步骤。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
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 查看 ↗ -
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 查看 ↗ -
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 支持哪些模型提供商?
我可以在物理 iPhone 上使用吗?
使用 mobile-use 需要支付哪些费用?
出现连接问题如何排查?
adb shell ip addr show up 手动指定接口,并在脚本中添加 --interface 参数。