# 执行模式与单任务流程 ## 怎样选模式 | 项目 | Flash | Pro | 探索 | | --- | --- | --- | --- | | 适合 | 目标清楚、路径明确、低分支流程;冒烟和已提炼用例复跑 | 复杂分支、持久计划、检查点、长程监控、ADB/日志、详细记录 | 流程尚未定型,用户参与纠正或示范的一个复杂用例 | | 执行方式 | 单执行模型观察→动作;需要时使用定位等辅助工具 | Planner 制订计划;Operator 执行;Checker 验收;按需生成报告 | 复用 Pro 工具和计划,加持续对话、提问等待、示范分析和用例提炼 | | 验收 | 默认结束时只读验收 | 默认结束验收,可配置检查点/strict | 先处理用户指导,再验收探索目标;不把示范当独立复跑通过 | | 中途输入 | `inject_instruction` 指导当前任务 | 同 Flash,还能记录计划及诊断信息 | `message` 持续交流;结束后消息仅讨论,再操作需 `continue` | | 入口 | `mobile_run_task(model="Flash")` | `mobile_run_task(model="Pro")` | `mobile_exploration(create/start/...)` | | 产物 | 步骤、证据、测试结果,按需导出报告 | 以上加计划、笔记和可选详细报告 | 对话、各轮执行和示范证据、一个用例的不可变版本 | | 时限 | 普通执行保护,按任务配置 | 同 Flash | 默认每段主动执行 1800 秒,达到后暂停而非判失败,可继续 | 不是按步数多少机械选模式。Flash 没有默认步数上限,但不具备 Pro 的持久计划、ADB shell、过程中检查点。复杂稳定路径可以在探索确认后用 Flash 复跑;需系统诊断或检查点时用 Pro。探索不是一种更高的思考强度,Pro 的 `explorer_mode` 也不表示创建探索会话。 ## 模式、模型与配置 - `mobile_run_task.model` 取 `Flash` / `Pro`。API 模型名放 `runtime_overrides.model`;思考强度放 `runtime_overrides.reasoning_effort`。批次使用 `task_config.profile` 选择模式,`task_config.model` 选择 API 模型。 - 探索独立配置,默认 `gpt-6.1-sol/high`,支持 `gpt-6-astra` 及已配置网关支持的自定义模型。执行、示范分析、提炼共用该探索配置;不改变 Flash/Pro 默认值。 - 默认 high、单次模型请求时限 300 秒。`default` 表示不发送思考强度,`none` 是显式关闭,不能混为一谈;接口不支持参数时如实报告,不擅自降级。 - 请求时限与整任务主动执行时限不同。排队/用户暂停不计入任务主动执行;探索等待回答、人工示范也不计入。 - 录屏 `record_video` 和 AI 视频分析 `analyze_video` 独立,默认关闭。需要可下载录像时明确启用录屏。 - `mobile_config(section="model"/"capabilities"/"exploration"/"reports")` 可查看非敏感默认值。用户只要求运行本次任务时用临时覆盖;只有要求保存默认值才用 `changes` 和 `persist_defaults=true`。 ## Flash / Pro 提交 ```python mobile_run_task( request_id="由调用方为本次提交生成的唯一编号", task_desc="打开目标应用设置页,确认深色主题状态,保留证据;不要修改设置。", model="Flash", device_serial="用户指定的设备编号", runtime_overrides={"reasoning_effort": "high", "record_video": True}, ) ``` - 任务提示词包含目标、必要前置条件和预期。不把业务约束仅写在批次元数据里。 - `locked_app_package` 限定应用;跨应用流程不应锁定单个包。 - Pro 的 `verification_level`:off 关闭检查、final 结束检查(默认)、checkpoints 检查点加结束检查、strict 更严格检查点。关闭检查后不能把执行完成视为有验收证据。 - Pro 的 `explorer_mode`:flash 单次定位、pro 多轮定位、ultra 深度像素分析。只有明确需要时增加感知深度,避免无必要开销。 - `expected_output_desc` 描述 Pro 需要生成的详细报告;Flash 仍可导出已有步骤/结果报告,不依赖这个参数。 - 纯电脑任务 `runtime_overrides.execution_target="computer"`,不传手机编号;安卓为主且偶尔控制电脑时,通常保留默认目标并让 ARTEMIS 自行选择已授权插件,见 [插件参数](plugins.md)。 返回后保存 `trace_id`。提交回复丢失时调用 `mobile_manage_task(action="lookup", request_id=原编号)`;得到 trace_id 后查状态。`submission_state=unknown/submitting` 不等于未执行,不能换编号自动重跑。 ## 跟踪、指导与结束 - `mobile_manage_task(status, trace_id)` 查询当前状态。按工具建议或约 30–60 秒间隔查询,用户正在追问时可立即查看;不无休止紧密轮询,不承诺宿主未实现的后台通知。 - `pause` 返回 pausing 只代表已接收;直到 task_paused 才能认为暂停完成。`resume` 继续原任务,恢复后重新观察并进入资源队列。 - `inject_instruction` 传 `instruction` 指导现有任务;模型等待或只读诊断可取消,已经开始的设备动作先安全结束。暂停中发送指导会恢复,用户只希望暂存文字时不要误调用。 - `guidance_history` 区分 pending/consumed,已领取仍不保证动作成功,需读后续步骤。 - Pro 连续监控的 `[Loop:continuous]` 里程碑结束使用 `release_loop=true`;自然语言“结束”不能代替明确控制信号。`stop` 用于用户要求取消当前任务。 - `completed/failed/cancelled/interrupted/skipped` 为执行终态;检查 test_result 再说明通过、失败、未验证或阻塞。人工判定附来源和原 AI 判定,不改写原始证据。 - 实际耗时受模型、网络及设备影响,不能固定扣减 5/30 秒当作精确等待。最终外部测试脚本应使用明确等待条件。 ## 安卓文件 任务内部支持 `android_file`,外层以任务目标交给 ARTEMIS,文件操作也走队列。截图原生 PNG 默认留存任务 trace;明确要求桌面时额外复制并校验,不需电脑插件。读写文本、列目录、pull/push 使用目标 Android 路径及任务文件边界,不能绕过应用私有目录权限。已有文件默认不覆盖。只有工具返回实际路径及校验结果才说明保存成功;「全部资料」导出包含任务文件。