Mobilerun
用自然语言控制 Android 和 iOS 设备的开源框架,让 LLM 智能体执行移动端自动化任务。
- Star 数
- ★ 9.7k
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 43/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 移动应用 QA 工程师对 Android/iOS 应用进行自动化回归测试。
- 不适合
- 使用 Python 3.14 或不愿配置 ADB 与开发者选项的用户
- 只想用托管云手机、不想在本地运行 Agent 的团队
这个 Agent 能做什么,适合哪些场景?
Mobilerun 是一个开源框架,通过 LLM 智能体控制 Android 和 iOS 设备。它提供 CLI 和 Python API,让智能体检查 UI 状态、理解截图、点击、滑动、输入文本、规划多步骤工作流并返回结果。框架支持多种 LLM 提供商,包括 OpenAI、Anthropic、Gemini、Ollama、DeepSeek 和 OpenRouter。Mobilerun 通过 Portal 应用实现设备控制,并具备视觉模式和推理模式。该框架可本地运行,也可使用 Mobilerun Cloud 进行云端托管。
Mobilerun 通过 CLI 命令(如 mobilerun run "打开设置并开启深色模式")接收自然语言指令。它使用 Portal 应用在设备上安装并启用无障碍服务,通过 ADB 连接设备。框架采集 UI 树和截图,传递给 LLM 进行理解,然后执行点击、滑动、输入等操作。它还支持 --vision 模式发送截图、--reasoning 模式进行多步骤规划,并能通过 Arize Phoenix 或 Langfuse 进行追踪。安装后可通过 mobilerun setup、mobilerun configure 和 mobilerun run 命令使用。
- 移动应用 QA 工程师对 Android/iOS 应用进行自动化回归测试。
- 非技术用户通过自然语言指令指导手机完成复杂操作,如预订住宿。
- 开发者自动化重复性手机任务,如每日签到或数据提取。
- 需要同时在多台设备上运行自动化的工作流(如设备农场)。
- 事件驱动的自动化,根据日程或通知触发手机操作。
如何安装或部署这个 Agent?
使用 uv 安装 CLI:uv tool install mobilerun。如需 Python 集成,运行 uv pip install mobilerun。可安装 Anthropic 额外支持:uv tool install "mobilerun[anthropic]"。需要 Python >=3.11 且 <3.14,并确保已安装 ADB。
如何使用这个 Agent?
- 运行
mobilerun setup在设备上安装 Portal 应用并启用无障碍服务。2. 运行mobilerun ping验证连接。3. 运行mobilerun configure配置 LLM 提供商(如 OpenAI、Anthropic)和 API 密钥。4. 运行mobilerun run "打开设置并告诉我 Android 版本"执行第一个任务。也可使用--vision、--reasoning等选项。
这个 Agent 有哪些优点和局限?
- 支持多种 LLM 提供商,模型无关,灵活选择。
- 同时支持 Android 和 iOS,提供 Portal 应用和设备控制。
- 提供 CLI、Docker 和 Python API 多种接口,便于集成。
- 视觉模式和推理模式增强复杂任务处理能力。
- 支持追踪和结构化输出,便于调试和集成。
- 需要 Python 版本限制(>=3.11,<3.14),不支持 3.14。
- 需要手动安装 ADB 并启用设备开发者选项及 USB 调试。
- iOS 支持可能依赖 Portal 流程,需要额外配置。
- 本地运行时需要自行管理 LLM API 密钥和费用。
- 对于没有无障碍树的应用,可能需要视觉模式,效果可能受限。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mobilerun 当前 | 43 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 9.7k | 4 天前 | Python | OpenAI API · Claude API |
| Agency Orchestrator:一句话组队 AI 专家团队 | 61 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 2.4k | 今天 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| PentestCode | 55 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 852 | 16 天前 | TypeScript | OpenAI API · Claude API |
| DarkMoon 自主渗透测试平台 | 48 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.1k | 18 天前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 提到安全检查(bandit、safety),但未提供具体的安全设计细节。用户确认机制未明确说明,数据流透明度有限,敏感数据处理(如 API 密钥)未详细描述。依赖安全方面,pyproject.toml 列出了依赖但未提供漏洞扫描结果。外部影响(如设备控制)存在但未明确权限边界。回滚机制未提及。来源归属:作者和许可证明确,但发布者未验证。扣分原因:缺乏具体的安全实现细节和用户确认流程。
证据显示:测试文件(如 test_android_vision_coordinate_contract.py)展示了内部一致性,但依赖可用性未验证(如外部服务)。失败消息在测试中有部分体现(如坐标转换错误),但整体失败处理文档不足。扣分原因:依赖外部服务(LLM 提供商)的可用性未保证,失败消息覆盖不全面。
证据显示:README 列出了多种使用场景(QA、自动化等),能力边界在文档中有说明(如支持 Android/iOS),触发精度在测试中有体现(如坐标转换),环境适配(如 Python 版本、ADB)有说明。扣分原因:触发精度仅部分覆盖,环境适配依赖外部工具(ADB)未详细说明。
证据显示:README 提供了安装说明、示例、文档链接,许可证明确(MIT),版本号在 pyproject.toml 中。但缺少变更日志,维护责任未明确(发布者未验证)。扣分原因:无变更日志,维护责任不清晰。
证据显示:输出可用性(如结构化输出)有文档,边际价值(如自动化移动设备)明确,成本效益(如免费开源)有提及。扣分原因:成本效益未详细分析(如 LLM 调用成本)。
证据显示:README 中的声明(如基准 91.4%)未提供可验证的测试数据,测试文件提供了部分验证,但跨来源验证不足。事实与推断未明确区分。扣分原因:声明缺乏可追溯性,跨来源验证有限。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者未验证,维护责任不明确。
- 依赖外部 LLM 提供商,可用性未保证。
- 缺少变更日志,版本演进不透明。
- 安全设计细节不足,用户确认机制未明确。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Behavior changes - Device selection: mobilerun run uses -d, then ANDROID_SERIAL, then the only online device. With several devices attached and none selected, it now stops with an error instead of using the first device in adb devices. - Tool calls: FastAgent runs only the first <function_calls> block of a reply. Later blocks are ignored, and the model is told so. Tool-call markup before that block makes the reply malformed. After a failed call, the rest of the block is skipped. Highlights - Gemini API: gemini-4-argon is available. …在 GitHub 查看 ↗ -
发布说明摘录
Breaking change: app card folders App cards are now read from one folder per platform: <app_cards_dir>/android/app_cards.json and <app_cards_dir>/ios/app_cards.json. A single app_cards.json directly in app_cards_dir is no longer read; Mobilerun logs Ignoring <path> for it. Move the file and its cards into android/ (and add an ios/ folder for iOS bundle ids). Portal …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix: model-specific vision coordinates for Gemma, Gemini 3.8 Flash and Sonnet 5 by @RasulOs in https://github.com/droidrun/mobilerun/pull/465 * feat: add gpt-6.1-sol and claude-sonnet-5-5, drop gpt-5.5 by @RasulOs in https://github.com/droidrun/mobilerun/pull/468 * chore: drop retired DeepSeek model aliases by @RasulOs in https://github.com/droidrun/mobilerun/pull/469 * fix: strip whitespace from open_app identifiers by @RasulOs in https://github.com/droidrun/mobilerun/pull/471 * chore: release mobilerun 0.6.21 by @RasulOs in https://github.com/droidrun/mobilerun/pull/472 …在 GitHub 查看 ↗
常见问题
Mobilerun 框架和 Mobilerun Cloud 有什么区别?
支持哪些 LLM 提供商?
需要什么硬件和软件环境?
如何调试运行中的任务?
--debug 选项,或集成 Arize Phoenix 和 Langfuse 进行追踪和日志记录。