Google开源Artemis:AI操作安卓真机,从安装到MCP接入IDE全跑通

大家好!今天给大家带来 Google 刚开源不久的重磅项目——Artemis。本文将围绕「让 AI 像人一样操作安卓真机」展开,涵盖核心架构、Flash/Pro 双模式原理、Windows/macOS 安装配置、CLI 与 Web 控制台、MCP 接入 Claude Code 等 IDE、Python SDK 集成 pytest 全套流程,每一步都给出可直接复制的命令和配置,并附上模型选型与避坑清单。无论你是安卓测试工程师,还是想给自己的 AI Agent 配一台「手机」的开发者,希望你都能有所收获!
一、Artemis 是什么:把「写脚本」变成「下指令」
做移动端自动化的同学都懂传统方案的痛:Appium、UIAutomator 写出来的脚本靠控件 ID 定位,UI 一改版就集体返工;遇到 Canvas、Compose、Flutter 自绘界面,定位是老大难;跨 App 的长链路用例,脚本量指数级上涨。
Artemis 是 Google 开源的 Android 真机 AI Agent 框架(Python 3.12+,Apache 2.0 协议,部分源代码来自 Minitap 的 mobile-use 项目),思路完全反过来:你用自然语言下发任务,AI 自己看屏幕、定位元素、执行点击、校验结果。在 Google Research 的 AndroidWorld 基准评测(20+ 款应用、100+ 项多步任务)中,它拿到了 99%+ 的任务完成率,是目前该榜单的 SOTA。

核心亮点 5 条:
- 跨 App 自动化:自然语言指令直接驱动测试流程和日常任务;
- 多模态定位:优先用无障碍树元素索引,自绘界面用坐标和视觉模型兜底;
- IDE 内诊断:通过 MCP 协议让 Claude Code、Antigravity、Codex、Windsurf 直接操作测试设备、收集 Logcat 输出和截图;
- Flash 执行:观察-执行循环加异步历史摘要,单步约 3~5 秒;
- Pro 探索:单个动作执行前校验目标,支持长时间探索和稳定性测试。
和传统方案的对比一目了然:
| 维度 | Appium / UIAutomator | Artemis |
|---|---|---|
| 用例编写 | 代码脚本,按控件 ID 定位 | 自然语言一句话下发 |
| 自绘界面 | 需要额外方案 | 无障碍树 + OCR + 视觉模型兜底 |
| 弹窗 / 瞬态控件 | 脚本容易崩 | 动作序列原子连发处理 |
| 跨 App 长链路 | 逐段写脚本 | 一句话描述目标即可 |
| UI 改版维护 | 脚本全面返工 | 无脚本可修 |
| 速度与成本 | 快,零模型调用 | Flash 单步 3~5 秒,有 Token 成本 |
二、核心架构:它是怎么「看」屏幕、「点」屏幕的
2.1 三层元素定位,自绘界面也能打
Artemis 的元素定位是分层兜底的:第一层走无障碍树,直接拿元素索引,最快最准;自绘控件拿不到标准节点时,第二层用 OCR 和坐标定位;再不行第三层上视觉模型做识别。三层组合下来,Canvas、Compose、Flutter 这类传统自动化最头疼的界面都能覆盖。
2.2 Flash 模式:3~5 秒一步的响应式循环
Flash 是单模型观察-思考-执行的轻量循环,不经过图编排,单步约 3~5 秒。它的历史是被压缩而不是被截断:截图会异步替换成视觉摘要,更早的步骤分块归档,可以按需召回,所以默认不限步数。对自动消失的控制栏、toast 等瞬态控件,它会把多次点击串成一个原子的 click_sequence,赶在控件消失前点完。
2.3 Pro 模式:Planner + Operator + Checker 多智能体编排
Pro 是基于 LangGraph 的多智能体图,单步约 15~40 秒,换来了三样 Flash 没有的东西:
- Planner:维护一份带里程碑和
verify/assert检查项的 Markdown 任务计划; - Safety Net:Operator 的每个动作下发前都经过 XML 优先、像素兜底的目标校验,被拦截的动作会打开一条「执行事故」,留在上下文里直到恢复;
- Checker:只读校验计划检查点,并在退出前对照原始目标做终审(
--verification-level可设off/final/checkpoints/strict,默认final)。
两种模式怎么选,一张表说清:
| 维度 | Flash(--profile flash) | Pro(--profile pro) |
|---|---|---|
| 单步耗时 | 约 3~5 秒 | 约 15~40 秒 |
| 架构 | 单模型响应式循环 | 多智能体图编排 |
| 执行前校验 | 无 | Safety Net(XML + 像素) |
| 任务计划 / 报告 | 无 | Markdown 计划 + 终审 + 书面报告 |
| ADB 命令 | 不支持 | 支持诊断类命令 |
| 适用场景 | 确定性 UI 回归校验 | 长程探索、稳定性测试、100+ 步业务流 |
2.4 上下文压缩:长任务不「失忆」的秘诀
Flash 和 Pro 共用同一套会话记录账本:相对测试时间 T+mm:ss 的时间线、截图折叠为视觉摘要、更早步骤分块归档,支持 search_history 关键词召回和 replay_steps 步骤重放。配置里默认上下文预算 80000 token,占用到 35% 开始准备压缩、70% 进入软替换、90% 强制收敛,旧截图按深度原位替换成视觉摘要且不恢复。这套机制是它敢把 Flash 默认步数设为「不限」的底气。

三、五分钟装好:安装与第一条命令
3.1 环境准备
只需要一台开着 USB 调试的 Android 实体机,或者一个 Android 模拟器。一键启动脚本会自动检测并安装 ADB、scrcpy、FFmpeg、Python(uv)运行时和项目依赖,不用手动配环境。
3.2 克隆与一键启动
macOS / Linux:
# 1. 克隆代码仓库并进入目录
git clone https://github.com/google/artemis.git && cd artemis
# 2. 一键启动
./start.sh
Windows PowerShell:
# 1. 克隆代码仓库并进入目录
git clone https://github.com/google/artemis.git
cd artemis
# 2. 一键启动
.\start.bat
注意一个 PowerShell 的坑:必须写 .\start.bat,不能只写 start.bat,命令末尾也不要加 \——PowerShell 默认不从当前目录查找可执行脚本。如果是传统 CMD,直接运行 start.bat。
启动后会自动在浏览器打开 Web 控制台(http://localhost:8000),提供设备连接向导、实时投屏、任务演练与状态回放面板:

3.3 第一条 CLI 命令
不想开控制台,也可以直接命令行跑:
uv run artemis run "打开系统设置,找到电池选项并告诉我当前电量" --profile flash
常用管理命令顺手记一下:
uv run artemis ui # 启动 Web 控制台
uv run artemis status # 查看服务状态
uv run artemis restart # 重启服务
uv run artemis stop # 关停服务
uv run artemis init # 交互式配置向导
四、MCP 接入 IDE:让 Claude Code 直接操作你的手机
这是 Artemis 最有意思的玩法:它内置原生 MCP 服务,接入之后,你在 IDE 里的 AI 助手就多了一双「操作真机的手」。目前支持 Antigravity、Cursor、Claude Code、Codex、Windsurf、VS Code、Cline/Roo、OpenClaw。
4.1 一键自动安装(推荐)
# 安装到 Antigravity:
uv run artemis mcp --install antigravity
# 或一键安装到所有支持的 AI IDE:
uv run artemis mcp --install all
启动脚本 start.sh / start.bat 运行时也会主动询问是否自动挂载全局 MCP 与测试行为准则,随时可以跳过之后手动补装。
4.2 手动配置示例
习惯手动配置的,可以用 uv run artemis mcp --generate-config <client> 生成对应格式,注意把 command 改成项目下 .venv 里 Python 的绝对路径。以 Codex(~/.codex/config.toml)为例:
[mcp_servers.artemis]
command = "/path/to/artemis/.venv/bin/python"
args = ["-m", "mcp_server"]
cwd = "/path/to/artemis"
[mcp_servers.artemis.env]
PYTHONUNBUFFERED = "1"
PYTHONPATH = "/path/to/artemis"
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis"
}
}
}
接入后 IDE 里可用的核心 MCP 工具有 5 个:mobile_run_task(下发任务)、mobile_manage_task(任务管理)、mobile_get_device_state(设备状态)、mobile_inspect_trace(检查执行轨迹)、mobile_diagnose(失败诊断)。
4.3 挂载测试思维准则 Rules(强烈建议)
光有工具还不够,AI 得像资深测试工程师一样思考,避免凭空臆测 UI 交互。官方提供了专属行为规范文件 mcp_server/rules.md,涵盖可运行代码原则与真机探索、Flash 与 Pro 任务路由策略、延迟与时间补偿机制、「动态优先、坐标兜底」定位模式。Claude Code 用户直接一条命令装到 ~/.claude/rules/artemis.md:
uv run artemis mcp --install claude
注意 Claude Code 会同时加载 ~/.claude/CLAUDE.md 和 ~/.claude/rules/*.md,装到单一位置即可,重复安装白白浪费上下文。
4.4 实战:Antigravity 全流程自主测试
接入后的完整链路是这样的——在 IDE 里输入测试提示词,AI 自动生成测试方案、驱动真机执行、最后交付结构化报告:




最后给一句官方示例指令,感受一下画风:
“请帮我把刚刚修改的代码编译成 APK 并安装到手机上,打开登录页面输入测试账号,验证登录后是否有异常弹窗,并把最终页面截图回传。”
五、模型配置:一份 jsonc 切换四大模型
所有模型配置集中在 config/artemis.jsonc,全局默认是 gemini-3.8-flash,并内置了 5 套预设(presets),改一行就能切换:
| 预设名 | 主模型 | Fallback |
|---|---|---|
gemini-flagship | gemini-3.8-flash | gemini-3.7-flash |
gemini-flash | gemini-2.5-flash | gemini-2.0-flash |
openai-gpt4o | gpt-4o | gpt-4o-mini |
cost-saving | gemini-3.5-flash-lite | gemini-3.1-flash-lite |
local-ollama | llama3.2-vision(本地) | 同左 |
除了全局默认,还能按智能体节点单独定制:Planner 用高思考档,Operator 输出思考流,日志分析和失败诊断节点默认开启搜索接地(grounding)。三个值得记住的细节:
- 坐标定位节点必须用 ER 模型:配置注释里写得很明白,标准 LLM(包括常规 Gemini Flash、GPT-4o、Claude)缺乏亚像素级空间坐标微调能力,
object_detector节点必须用gemini-robotics-er-2-preview这类具身推理(Embodied Reasoning)模型,否则空间坐标检测会失败——这是自建配置时最容易踩的坑; - Explorer 三档感知深度:
flash(一次性视觉检测,最快)、pro(3 轮循环:UI 树搜索 + 坐标审计 + 检测)、ultra(8 轮循环,加缩放、OCR 和像素级图像处理,最慢最准),通过flash.explorer_mode/pro.explorer.mode按运行档位设置; - 视频分析双路引擎:Gemini 系走原生 Files API,Claude / GPT-4o / OpenRouter 走通用多模型引擎(动态关键帧抽取 + 多模态工具调用),Pro 模式默认用 scrcpy 持续录屏。
六、Python SDK:接进 pytest 和 CI
如果要把 Artemis 塞进现有测试体系,官方提供了零运行时依赖的薄客户端 artemis-client:开发机只装客户端,ADB、Agent、模型调用全部留在设备主机上,天然适合「一台主机 + 多台测试机」的架构:
uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
import asyncio
from artemis_client import ArtemisClient
async def main():
client = ArtemisClient(
"http://artemis-host:8000",
device_serial="emulator-5554", # 可选:不传则自动选择空闲设备
default_profile="flash", # "flash" 极速校验 或 "pro" 深度推理自愈
)
result = await client.run(
"打开系统设置,进入『电池』页面,验证是否正常显示电量百分比,"
"确认页面无异常报错弹窗。",
)
assert result.succeeded, f"测试执行失败: {result.error or result.status}"
print(f"✅ 测试通过!设备: {result.device_serial} | Trace ID: {result.trace_id}")
if __name__ == "__main__":
asyncio.run(main())
返回结果是基于 Pydantic 的强类型结构化对象,带 succeeded、status、error、device_serial、trace_id 字段,放进 pytest 断言或者 CI 流水线的步骤里都是现成的。
七、避坑清单:6 个高频问题一次说清
1. Artemis 会往我手机里装什么?安全吗?
首次执行任务时会安装 Artemis Accessibility Helper,一个读取屏幕布局的小型无障碍服务,不占用 UiAutomation 连接。它只监听手机本机回环地址,不向外发送任何数据。想提前装好(省约 3 秒)用 uv run artemis helper install,随时 helper status 查看、helper uninstall 移除,artemis doctor 做整体体检。
2. 不想让它自动装 Helper 怎么办?
在 .env 里设 ARTEMIS_HELPER_AUTO_INSTALL=false;想换回 UIAutomator2 读屏,设 ARTEMIS_HIERARCHY_BACKEND=uiautomator。Helper 中途失效时框架会自动回退到 UIAutomator2,并在任务时间线和最终报告里明确说明。
3. Flash 和 Pro 到底怎么选?
确定性高的常规 UI 校验(打开某页面、检查某状态)用 Flash,快且省;长程复杂业务流、探索性稳定性测试、需要书面报告的用 Pro。MCP 的 rules.md 里内置了路由策略,IDE 场景下 AI 会自己判断。
4. toast、下拉控制栏总点不到?
瞬态控件等不到下一轮模型响应,Flash/Pro 都会把多次点击串成 click_sequence 原子连发。如果你的用例涉及这类控件,优先让任务描述里明确「控件会快速消失」这类提示。
5. 自建模型配置后坐标全点歪?
九成是 object_detector 没用 ER 系列模型。标准视觉模型给不出亚像素级坐标,必须保留 gemini-robotics-er-2-preview 这类具身推理模型,除非你只走元素索引路线。
6. PowerShell 里运行 start.bat 报「无法识别」?
PowerShell 不从当前目录找可执行文件,写 .\start.bat(末尾别带 \);CMD 用户直接 start.bat。
八、总结
最后用一张清单收束全文:
- Artemis 是什么:Google 开源的 Android 真机 AI Agent 框架,自然语言下发任务、AI 自主操作真机,AndroidWorld 基准 99%+ 完成率 SOTA;
- 架构核心:无障碍树 + OCR + 视觉模型三层定位;Flash 响应式循环(3~5 秒/步)与 Pro 多智能体编排(计划 + Safety Net + Checker 终审)双模式;
- 上手三步:
git clone后start.sh/.\start.bat一键装环境,CLI 一条artemis run跑通首个任务,Web 控制台可视化管理; - IDE 协同:
artemis mcp --install all把真机操作能力挂进 Claude Code / Antigravity / Codex 等 8 种 AI IDE,配上rules.md行为准则; - 工程化:
artemis-client薄客户端接 pytest / CI,Pydantic 强类型结果开箱即用; - 两个关键坑:坐标定位节点必须用 Gemini ER 系列模型;PowerShell 启动要写
.\start.bat。
项目路线图上还有 Android Studio 深度集成、iOS 跨平台、端侧轻量化模型和实时语音双工,值得持续关注。
参考资料:
- Artemis 仓库:
https://github.com/google/artemis - AndroidWorld 基准评测:
https://github.com/google-research/android_world - MCP 测试思维准则 rules.md:
https://github.com/google/artemis/blob/master/mcp_server/rules.md - 官方 Discord 社区:
https://discord.gg/wF2FN4WHGY
写在最后:从「写脚本」到「下指令」,移动端测试的范式正在被 AI Agent 重写,而 Artemis 把门槛降到了一条 clone 命令。如果你已经在用 Appium 维护一堆脆弱脚本,不妨找个模拟器跑一跑 Flash 模式,评论区聊聊你的实测体验~
相关链接
| 名称 | 链接 |
|---|---|
https://github.com/google/artemis | https://github.com/google/artemis |
https://github.com/google-research/android_world | https://github.com/google-research/android_world |
https://github.com/google/artemis/blob/master/mcp_server/rules.md | https://github.com/google/artemis/blob/master/mcp_server/rules.md |
https://discord.gg/wF2FN4WHGY | https://discord.gg/wF2FN4WHGY |
更多推荐
所有评论(0)