mobile-use:自然语言操控手机的开源智能体
通过自然语言让 AI 智能体操控真实 Android/iOS 应用,完成消息发送、数据提取等任务。
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的明确说明。所有信任相关标准均未得到支持,因此全部评分为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。
- 未提供权限模型或用户确认机制,可能执行高风险操作。
- 依赖列表包含多个第三方库,但未提供安全审计或漏洞扫描。
- README中的基准测试声明缺乏可复现的测试步骤。
这个 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 有哪些优点和局限?
- 在 AndroidWorld 基准测试中达到 100% 准确率,表现领先。
- 支持多种主流 LLM 提供商(OpenAI、Google、xAI、OpenRouter、MiniMax),可灵活切换。
- 提供 Docker 快速启动脚本,简化部署。
- 支持 Android 和 iOS 模拟器,覆盖面广。
- 提供云平台和跨平台用户界面,降低入门门槛。
- 物理 iOS 设备目前不支持,仅支持模拟器。
- 对游戏类应用的 UI 操作有限,因为游戏通常不提供辅助功能树。
- 依赖外部 LLM API,可能产生费用,且需要网络连接。
- Docker 快速启动仅支持 Android,不支持 iOS。
- 需要用户具备一定的技术知识(如 ADB 配置、环境变量设置)。
如何安装或部署这个 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 连接请求。
常见问题
mobile-use 支持哪些模型提供商?
我可以在物理 iPhone 上使用吗?
使用 mobile-use 需要支付哪些费用?
出现连接问题如何排查?
adb shell ip addr show up 手动指定接口,并在脚本中添加 --interface 参数。