用自然语言操控真机:Google Artemis 移动端 AI Agent 上手与实践

仓库:google/artemis · 协议:Apache 2.0 · Python 3.12+ · 内置 MCP


前言

做移动端测试或重复性操作时,常见路径是写 Appium / UIAutomator 脚本:维护成本高、界面一改就挂。

Artemis 是 Google 开源的 Android 自主移动 Agent :你用自然语言描述目标,系统在 真机或模拟器 上完成点击、滑动、输入,并在 Web 控制台里回放每一步推理与截图。

我在 Windows 上接 红米 K80 ,用 OpenRouter + DeepSeek 视觉模型 ,完成了 山姆会员商店 App 里「进商品 → 分享 → 生成图片 → 存相册」的全流程。本文结合官方能力说明与一次真实跑通经历,介绍 项目定位、架构、界面与使用方式。


Artemis 是什么?解决什么问题?

一句话:让 AI 像测试工程师一样操作手机。

能力 说明
跨 App 自动化 自然语言任务,多 App、多步骤
多模态感知 UI 树 + 截图;复杂界面可坐标/视觉兜底
双执行引擎 Flash 快循环日常任务;Pro 多 Agent 图做长流程与校验
IDE 协同 原生 MCP Server,Cursor / Claude Code 等里直接驱真机
可观测 会话 Trace、步骤回放、Token 用量、可选 scrcpy 录屏

在 AndroidWorld 基准上官方宣称 99%+ 任务完成率(见 README),适合探索 AI 驱动 UI 测试 、重复业务流自动化 、Bug 复现 等场景。


整体架构(从浏览器到手机)

java 复制代码
┌─────────────────────────────────────────────────────────────┐
│  Showcase UI (Angular)     http://localhost:8000            │
│  · Setup 向导  · 任务下发  · Workspace 回放                  │
└───────────────────────────┬─────────────────────────────────┘
                            │ REST / SSE
┌───────────────────────────▼─────────────────────────────────┐
│  Admin Console (FastAPI)  · /docs OpenAPI                   │
│  · 任务队列  · 会话/步骤/用量  · 设备流  · 诊断               │
└───────────────────────────┬─────────────────────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        ▼                   ▼                   ▼
   FlashRunner          Pro LangGraph        MCP Server
   (观察-思考-行动)      Planner/Operator/     (IDE 调 mobile_* 工具)
                        Checker/Explorer...
        └───────────────────┬───────────────────┘
                            ▼
              UnifiedMobileController + ADB
                            ▼
                   Android 真机 / 模拟器

依赖链(本机):

  • Python 3.12+ ,推荐 uv 管理 .venv 与依赖(uv sync / uv run)
  • ADB:设备连接与调试
  • scrcpy + FFmpeg(可选):投屏与录屏回放
  • 多模态 LLM :Gemini / OpenAI / Claude / OpenRouter 等,在 config/artemis.jsonc + .env 配置

设备侧:

  • 优先 Accessibility Helper (更稳的元素树);装不上时回退 UIAutomator2(小米等需开 USB 安装/安全调试)

启动后你会看到哪些页面?

1. 主页 http://localhost:8000

  • System Setup & Prerequisites :Python、ADB、API Key、设备连接、模型配置(Gemini 向导或 Custom + artemis.jsonc)
  • Launch Autonomous Task :输入任务,选 Flash / Pro ,Run Task
  • Recommended Tasks:Maps、Gmail、小红书等示例,可一键填入 Prompt

黄条 Prerequisites incomplete 表示:缺 Key、没连设备或设备锁屏等,点 Setup Guide 逐项修。

2. Workspace /workspace

任务运行与复盘主战场:

  • 左侧:逐步推理(Work、Tapping Element、坐标/索引)、Token 上下文规模
  • 右侧:Task Queue(RUNNING / COMPLETED / FAILED)
  • 顶部:Architecture: Flash、录屏状态、Step Replay

适合看 Agent 为什么点偏、如何返回重试。

3. API 文档 http://localhost:8000/docs

Artemis Admin & Trace Console :OpenAPI 3.1,含 sessions、steps、usage、设备流、图片/视频 Trace 等,便于二次集成或查 单次会话 Token (GET /api/sessions/{id}/usage)。

4. Admin Debug http://localhost:8000/admin

偏调试:会话列表、Filter、Run/Stop Task、历史清理,与 Showcase 共用后端。


Flash 与 Pro:怎么选?

Flash Pro
节奏 单 Agent 观察→执行,约 3--5 秒/步 多节点图,约 15--40 秒/步
适用 路径清晰:打开 App、点按钮、简单表单 长流程、检查点、计划与终审
特点 无独立 Planner/Checker,无 ADB shell Safety Net、Checker、Explorer 多档、可 ADB 诊断
建议 日常「帮我在手机里做一件事」 回归测试、复杂业务、要报告

山姆「分享图存相册」用 Flash + 写清步骤的 Prompt 即可跑通;100 次批量或强校验再考虑 Pro 或拆批任务。


使用方式(Windows 实战路径)

1. 克隆与一键启动

powershell 复制代码
git clone https://github.com/google/artemis.git
cd artemis
.\start.bat

脚本会拉 uv 、同步依赖、可选装 ADB/scrcpy、初始化 .env,并打开 http://localhost:8000。

手动启动:

powershell 复制代码
cd E:\projects\artemis
uv sync
uv run python -m artemis ui --port 8000 --open

2. 手机准备(以红米为例)

  1. 设置 → 我的设备 → 全部参数 → 连点 HyperOS 版本 7 次
  2. 更多设置 → 开发者选项 → USB 调试 (建议开 USB 安装)
  3. 数据线连接,授权调试;adb devices 为 device

3. 配置模型与 Key

  • Gemini :Setup 选 Google Gemini,填 GEMINI_API_KEY(AI Studio 免费 Key 即可)
  • OpenRouter(本文做法) :Setup 选 Custom Configuration ,.env 填 OPEN_ROUTER_API_KEY;改 config/artemis.jsonc 的 default,例如:
jsonc 复制代码
"default": {
  "provider": "openrouter",
  "model": "deepseek/deepseek-v4.1-flash",
  "fallback": {
    "provider": "openrouter",
    "model": "deepseek/deepseek-v4-flash-vision-exp"
  }
}

控机需要 支持图像输入 的模型;纯文本 DeepSeek 不能代替。

纯 OpenRouter 时建议 agent.flash.step_summarizer.enabled: false,否则后台摘要可能仍要求 Gemini Key。

4. 下发任务

在 Launch Autonomous Task 输入目标,选 Flash,Run Task 。

进 Workspace 看执行;完成后可在 Past Runs 看 COMPLETED/FAILED。

CLI 等价:

bash 复制代码
uv run artemis run "打开设置,查看电池电量" --profile flash

5. MCP 接入 Cursor(可选)

bash 复制代码
uv run artemis mcp --install cursor

IDE 内用 MCP 工具驱真机、拉 Logcat、看 Trace,适合 开发 + 测 App 一体。


案例:山姆会员商店自动生成分享图

App :山姆会员商店(中国),包名 cn.samsclub.app (勿与美国 com.rfi.sams.android 混淆)。

经验:

  • Prompt 写清 页面状态 (详情页顶部、别滑到评论)、误触恢复(大图预览按返回)
  • 第一次常在「分享图标」上 点多轮 ;Helper 未装 + 浮动图标时属正常,细化 Prompt 后仍可 COMPLETED
  • 一次成功会话 Token 约 16 万 (/api/sessions/{id}/usage);粗算 100 次类似流程约 千万级 Token ,OpenRouter 费用约 数美元~十美元量级(视模型与失败次数而定)

Prompt 模板(可改商品/App 文案):

text 复制代码
目标 App:山姆会员商店(包名 cn.samsclub.app)。
进入任意商品详情页(保持顶部,不滑到评论区)。
点顶部导航栏右侧「分享」图标(方框+箭头,非轮播/大图)。
在分享面板点「一键生成图片」,生成后保存到相册;权限点允许。
误进全屏看图则返回再继续。

常见问题(踩坑摘要)

现象 处理
Device Locked 解锁并亮屏
Missing scrcpy 可选;winget install Genymobile.scrcpy
INSTALL_FAILED_USER_RESTRICTED 小米开 USB 安装
OpenRouter 403 ToS 换模型或查账号/地区策略
Run Task 灰掉 Setup 全绿 + 输入框非空 + 刷新

关掉服务 :结束 uv run python -m artemis ui 进程或终端 Ctrl+C;拔 USB 即断开设备。


小结

Artemis 把 多模态 LLM + ADB +(可选)MCP 收成一套 可本地运行的移动 Agent 平台:Web 负责 Setup 与任务,Workspace 负责可解释执行,Admin/API 负责集成与计量。

若你已在用 Cursor 做客户端开发,Artemis 很适合作为 「真机自动化层」:Flash 验证想法,Pro/MCP 接进 CI 或 IDE 工作流。


参考链接

相关推荐
怪我冷i5 小时前
Rust 的impl语法详解
开发语言·后端·rust
没落之王5 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法
miofly5 小时前
DeepSeek 开源 Super-agent 架构:AI 主动发现 Bug 并提交 PR
人工智能
kyrie_sakura5 小时前
大模型学习20 大模型学习 - LangChain3 - Agents
人工智能·学习·langchain
zhangfeng11335 小时前
2026 书生国智科探挑战赛暨飞翔杯 AI Agent/Skills 开发大赛全景介绍
人工智能
DevMemo5 小时前
2026 AI外呼系统技术选型:全链路延迟预算与集成成本实测,10个品牌的架构真相
人工智能·架构
ZhuoAIStage5 小时前
契约与闸门打架该改谁?用 AI 智能体 preflight 把配置漂移挡在发版前——以舞台工艺审图专家包闸门冲突为例
人工智能·闸门·舞台工艺·配置漂移·专家包·preflight
Flynn Liang5 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
深频率5 小时前
苹果AI入华:11月4日开测,千问只是个选项
人工智能