10 KiB
name, description
| name | description |
|---|---|
| artemis-automation | 使用 ARTEMIS MCP 在 Android 真机或模拟器上完成自然语言测试、批量用例执行、失败诊断、历史检索与 Word/Excel 报告交付。适用于用户希望 AI 操作或测试 Android 应用、导入测试用例或分析 ARTEMIS 执行结果。 |
ARTEMIS 自动化
当前仅提供 Codex MCP 配置安装与更新:uv run artemis mcp --install codex;模板使用 uv run artemis mcp --generate-config codex 查看。启动日志会打印实际 Codex 配置路径,更新后重载 MCP。
Windows 启动脚本只提示源码更新。升级使用 update.bat(国内镜像 update-cn.bat),会终止该项目的 ARTEMIS 服务、MCP 和运行任务;仅在用户授权升级或终止任务后执行,先告知任务将中断。升级会同步依赖、网页及 Codex MCP,保留配置和历史;完成后启动 ARTEMIS 并重载 Codex MCP。不要通过启动脚本拉取源码或强行覆盖本地修改。
使用项目提供的 MCP 工具操作 Android。报告由 ARTEMIS 自己生成,不要求宿主 AI 具备 Codex 私有工具、Word 或 Excel 插件。该 Skill 不提供桌面/浏览器自动化,也不提供历史动作脚本回放。
从需求到执行
- 明确目标、预期结果、目标应用和必要前置条件。用户已授权执行且信息足够时直接开展,不逐步索要批准;缺少会改变业务操作的条件时再询问。用例起点按实际需求安排,不默认清数据、重装、重启应用或退出登录。
- 用
mobile_workspace查看设备和队列。沿用用户已指定的设备;多台可用设备且没有选择时先询问,不擅自挑选实体手机。任务参数显式传入device_serial。同设备串行,不同设备可并行;本 Skill 不要求创建其他 AI 子代理。 - 首次使用、工具出错、任务拒绝或设备异常,先
mobile_diagnose。按next_steps的依赖顺序处理;attempt_fix=true可尝试工具自带修复。只有凭据相关故障才使用verify_credentials=true,观察异常才使用probe_device=true。不要盲目重发任务。MCP 不可用时在项目目录运行uv run artemis doctor并检查宿主 MCP 日志。 - 选择执行模式:Flash 适合路径明确的界面操作;Pro 适合动态分支、持续计划、ADB/日志诊断或需要 Checker 明确校验的任务。
mobile_run_task.model的flash/pro是执行模式,不是 API 模型名称。步数长不自动等于需要 Pro;视频能力只有显式启用后才可用。 - 单任务用
mobile_run_task;批量任务用mobile_batch,读 批量任务与交付。AI 可直接提交结构化用例,不必先创建 Excel。用户提供 Excel 时先mobile_task_file(action="preview", path=绝对路径),修正所有行错误后提交。提示词列原样作为目标,前置约束列只作元数据。 - 单任务返回
trace_id后,用mobile_manage_task(action="status", trace_id=...)跟踪;网页任务也可用其任务编号。批次用mobile_batch(action="get", batch_id=...)。需要人工补充时用pause,其返回的pausing只表示请求已接收;轮询到task_paused才表示设备已释放。inject_instruction会立即取消进行中的模型回复或只读诊断并重新观察手机,已开始的设备动作会先安全结束;暂停中提交则恢复。guidance_history的pending/consumed区分提交和执行端领取,无新指导用resume。恢复进入设备 FIFO 队尾并重新观察手机状态。尊重工具建议的等待周期,避免连续高频轮询;停滞或失败先诊断,不把同一业务任务自动重提。
结果、证据与交付
- 执行状态与业务判定分开:
completed只说明执行结束,不等于测试通过。Flash 和 Pro 默认根据任务提示词、用户指导、执行结论和实际证据进行只读终检,不需要另填预期结果。读取test_result.status(passed通过、failed不通过、inconclusive未验证、blocked阻塞)、reason与evidence,结合验证摘要和mobile_inspect_trace的步骤/截图交付结果。执行失败不能直接认定产品缺陷;已确认的断言失败不得被后续成功覆盖。终检关闭、出错或证据不足时不得宣称通过。 - 用
mobile_export_report(session_id=...)获取单任务报告;formats=["screenshots"]获取排序截图,["video"]获取保存的录屏分段,["all"]获取 Word、Excel 和所有可用资料的 ZIP。批次传batch_id获取汇总、各项任务报告、步骤截图及已有录屏的 ZIP。未指定格式时使用保存的 Word/Excel 偏好。执行中的导出只是当前快照。 - 工具返回 MCP 主机上的绝对文件路径和下载 URL。向用户交付真实生成的文件链接,并说明完成、失败、未验证、跳过数量及重要限制。不要只说“报告已生成”而不交付文件。
- 用
mobile_search_history按名称、目标、编号或标签搜索全部历史;日期先按用户时区转换为 Unix 秒,start含边界、end不含边界。按返回的total/page/size翻页,不能把第一页当作全部历史。 mobile_inspect_trace是只读步骤证据查看;其中历史上下文的 replay 术语不表示重新执行设备动作。
配置和恢复边界
-
本机常见模拟器在设备刷新、启动及重启 ADB 后自动发现并连接,不必猜固定端口。USB 与 Android SDK 模拟器由 ADB 原生发现。首次连接其他 TCP 设备/无线手机时,在网页“无线 ADB”填写实际地址和端口,成功后程序保存地址并自动重连;无线调试的配对和授权仍由用户完成,端口变化后需重新连接。远程/转发 ADB 不执行本机发现。用
mobile_workspace或mobile_diagnose检查自动连接结果;多设备时仍先确认用户要测试哪台。默认开关及扫描预算可由mobile_config(section="capabilities")的adb_auto_connect、adb_discovery_interval_seconds(10)、adb_discovery_timeout_seconds(5)配置,修改全局默认需要用户授权。 -
mobile_config读取非敏感设置。只有用户明确要求保存或修改默认配置时,才传changes与persist_defaults=true;这些设置影响后续任务,不能为一次临时需求擅自改变以后所有任务。 -
模型名称支持预设
gpt-5.6-luna、gpt-6-luna、mimo-v2.6-flash、mimo-v2.6-pro和自定义名称,取决于用户配置的 Responses 网关。思考强度最高支持max,默认high、单次请求 300 秒、失败后最多重试 5 次;普通错误每次等待 10 秒,429 每次等待 60 秒。首选模型连续 3 次未形成有效工具调用时,当前步骤改用gpt-6-luna(high),兜底最多再尝试 3 次;下一步恢复首选模型。默认关闭视频分析与录屏。不根据模型名称猜测网关能力。 -
强度选
default表示不发送该参数,和none(显式要求关闭)不同。接口拒绝强度参数时明确呈现失败,先询问用户是否改用default,不能静默降级或换模型。 -
API Key 只通过网页或
.env配置。不要请求用户把 key 发到聊天中,不读取/回显已有 key。保存后新任务生效;直接编辑环境文件后需重启相应服务,运行中的任务保留自己的配置。 -
429 等待和兜底参数可在网页模型配置或经用户明确授权的
mobile_config(section="model", persist_defaults=true)保存;当前任务不热切换。录屏与 AI 视频分析分别配置。批量任务的task_config可覆盖单项,不修改全局设置;只开视频分析时录制内容不作为可下载文件保存。暂停时停止录屏,恢复后按片段继续,不能把其他任务画面混入该任务资料。 -
请求重试是模型调用恢复,不是测试用例重跑。批次默认失败继续、不自动重跑;服务重启后保留状态并暂停,用户明确要求后才继续或复制失败项。
-
批次暂停只停止后续派发;当前任务等待指导时用
mobile_manage_task(action="pause", trace_id=...),真正取消用stop。用户明确要求删除批次记录时先mobile_batch(action="get")核对编号,再用delete;执行中/排队中的批次不能删,删除会清除该批次的任务历史、报告和文件。服务重启后运行/暂停的任务标记中断,不自动重跑。停止可能保留已经产生的业务效果,不声称自动回滚。
需要编写外部可执行测试代码时,先通过 ARTEMIS 实际探索目标应用,确认页面、定位器和转换。优先动态定位,框架支持时才以已验证坐标兜底;在最终脚本中明确等待条件,不将 AI 思考耗时当作确定性等待。
执行保护默认总时限 1800 秒,单任务、批次和 MCP 都适用,排队及用户暂停不计时。设备观测默认 60 秒、最多 3 次,ADB 命令默认 10 秒;观测失败不会继续向模型发送占位图或旧元素索引。Flash 连续 3 次动作失败先重新观察再切换兜底,兜底仍失败则结束任务并保存原因。不能以提高步数或反复重提任务代替设备诊断。
mobile_run_task(runtime_overrides={"timeout_seconds":1800,"observation_timeout_seconds":60,"observation_max_attempts":3,"device_command_timeout_seconds":10,"action_failure_attempts":3}) 可为单任务覆盖执行保护;其中 model 是 API 模型名,外层 model 仍是 Flash/Pro 模式。相同字段也支持批次的 task_config。全局默认通过网页功能配置或明确授权的 mobile_config(section="capabilities", changes={"task_timeout_seconds":1800}, persist_defaults=true) 保存,对后续任务生效,不接受密钥。
任务已经产生最终结果,但 SDK 线程或资源清理仍卡住时,默认最多再等待 30 秒后回收工作进程,避免继续占用队列。全局可用 ARTEMIS_WORKER_CLEANUP_TIMEOUT_SECONDS 或功能配置的 worker_cleanup_timeout_seconds 调整,任务 JSON 同名字段可覆盖。原有结果与截图保留,未完成保存的录屏尽力恢复。