Files
Artemis-Eapil/docs/ai-automation.md
T

6.5 KiB

使用 AI 完成 Android 自动化

源码内的 skills/artemis-automation/ 是可分发 Skill,不依赖本机 Codex 的私有能力。将整个目录复制到宿主支持的 Skill 目录即可;Codex 为 $CODEX_HOME/skills/(未配置时 ~/.codex/skills/)。仓库包含 Skill,启动程序不会修改用户的全局 Skill 目录。

Windows 一键脚本会为检测到的客户端自动安装或更新 MCP 配置。未检测到客户端时,在项目目录执行 uv run artemis mcp --install codex;其他客户端将 codex 换成对应名称,uv run artemis mcp --help 可查看支持列表。更新后重新加载宿主 MCP;复制 Skill 后按宿主方式重新加载技能。

可以向 AI 这样下达任务:

使用 artemis-automation。在我指定的模拟器上验证系统设置首页能打开,不修改设置,输出 Word 和 Excel 报告。

校验这份 Excel 的测试用例,指出所有错误;先不执行。

在 emulator-5554 执行已校验用例,失败继续,完成后交付批次报告 ZIP。

搜索昨天包含“登录”的失败任务,根据截图与步骤说明失败原因,不重跑。

MCP 能力

工具 功能
mobile_diagnose 环境、凭据、设备诊断和自带修复
mobile_workspace 设备列表与统一队列状态
mobile_config 读取或明确保存非敏感模型、功能、报告默认设置
mobile_run_task 单任务执行;model=flash/pro 表示执行模式
mobile_manage_task 单任务状态、安全暂停、排队恢复、指导提交/领取记录和停止
mobile_get_device_state 设备截图、界面层级
mobile_task_file XLSX 模板与导入校验
mobile_batch JSON 用例建批次、开始、暂停、继续、复制失败项、删除非活跃批次
mobile_search_history 全库搜索、日期/状态筛选和分页
mobile_inspect_trace 只读步骤、截图和执行证据
mobile_export_report Word、Excel、步骤截图、录屏片段、单任务资料及批次 ZIP,返回本地绝对路径

新增工具通过统一后台服务运行,与网页共享配置、队列、历史和报告;不另外启动独立调度器。ARTEMIS_STANDALONE 模式不支持这些工作区工具。

Windows 已安装用户再次运行 start.bat / start-cn.bat 时会检查当前分支的 Git 上游,仅做快进更新;拉取后重新加载新版启动脚本。1.1.1 及更新版本的发布 ZIP 是精简的 Git 工作树,解压后也能在后续运行时检查更新。1.1.0 及更早 ZIP 缺少 .git,需手动下载新版源码包一次。没有 Git、网络/认证失败、有本地修改或分支分叉时保留现有源码并给出提示,不重置或覆盖。-SkipUpdate 可跳过源码更新检查。

Python 每次按 uv.lock 检查并同步缺失/变化的依赖;前端依据源码、资源及包锁文件指纹决定是否重新执行 npm ci 和构建,成功后才记录指纹。国内镜像选项继续生效。检测到正在执行/排队的任务时,自动更新启动会停止,让原任务继续。

MCP 同步会识别已安装客户端的配置目录,为缺少 ARTEMIS 条目的客户端安装当前源码的标准配置;已有标准配置即使指向旧解压目录,也会更新解释器、项目目录、环境路径和工具清单。保留用户额外环境变量、禁用状态及其他服务;自定义启动包装器保持原样并提示。无法安全解析配置时停止启动,原文件不被覆盖;可使用 -SkipMcpSync 仅启动网页。首次修改保留备份。源码和配置同步后需在 AI 客户端重新加载 MCP 连接或重启客户端,脚本无法替宿主重启已加载的 MCP 进程。

创建批次时必须提供唯一 request_id;请求超时后可以按编号查询或用相同内容重发,避免重复用例。创建只保存草稿,start 才执行。AI 无需先制造 Excel,也可直接提交 JSON;字段与示例见 Skill 批量任务参考。

报告按任务或批次归档到 artifacts/mcp_exports/,包含本地路径及服务下载链接;删除批次时会清理对应导出副本。运行中导出是快照;执行完成不等于验证通过,报告会保留未验证、失败、跳过与中断状态。

模型默认使用 mimo-v2.6-flash,预设 gpt-5.6-luna、gpt-6-luna、mimo-v2.6-pro,并支持自定义。思考强度最高支持 max,默认 high,选“由模型默认”不发送该参数;接口不支持时明确报错。单次请求 300 秒,首次失败后最多再试 5 次,普通错误每次等待 10 秒,429 每次等待 60 秒,SDK 不叠加重试。首选模型连续 3 次没有有效工具调用时,当前步骤改用 gpt-6-luna(high),最多再试 3 次;下一步重新使用首选模型。兜底模型及次数可通过 .env.example 中的 OPENAI_TOOL_FALLBACK_* 和 ARTEMIS_TOOL_FALLBACK_MAX_NO_PROGRESS_ATTEMPTS 配置。请求耗尽后沿用任务暂停/恢复机制,鉴权或非法参数立即失败。视频分析与录屏是独立开关,默认均关闭。每项批量用例可覆盖模式、模型、设备、录屏和超时等配置,不影响其他任务。暂停先返回 pausing,确认状态为 task_paused 才表示设备已释放;Pro 等待模型回复或只读诊断时可及时中断,恢复后重新观察设备。AI 可用 mobile_manage_task(action="inject_instruction") 提交指导并恢复;运行中的模型思考会中断并重新观察设备,已经开始的设备动作会安全结束。用 guidance_history 核对指导是否被领取、在任务流程中核对实际执行情况,或用 resume 单独恢复。

429 等待、兜底模型及次数也可在网页“模型配置 → 稳定性与兜底模型”或通过已授权的 mobile_config(section="model") 配置。批次 ZIP 还收录每项任务已保存的步骤截图和录屏。

批次任务在队列中使用“用例编号 + 用例名称”显示,提示词仍是模型实际收到的内容。任务历史展示失败原因、完成时间和总耗时;导出全部资料时以用例编号命名目录。删除非活跃批次会同步清理其任务记录、步骤、截图、录屏及生成的报告,删除后不能通过旧 request_id 重复执行。

保存全局配置要求用户明确指令;只读配置不包含密钥,MCP 不接收密钥。密钥仍在网页或 .env 中填写。设置对新任务生效,模型请求重试不会触发测试用例自动重跑。历史步骤证据保留,设备动作回放已移除。