9.9 KiB
执行模式与单任务流程
怎样选模式
| 项目 | Flash | Pro | 探索 |
|---|---|---|---|
| 适合 | 目标清楚、路径明确、低分支流程;冒烟和已提炼用例复跑 | 复杂分支、持久计划、检查点、长程监控、ADB/日志、详细记录 | 流程尚未定型,用户参与纠正或示范的一个复杂用例 |
| 执行方式 | 单执行模型观察→动作;需要时使用定位等辅助工具 | Planner 制订计划;Operator 执行;Checker 验收;按需生成报告 | 复用 Pro 工具和计划,加持续对话、提问等待、示范分析和用例提炼 |
| 验收 | 最终 AI 判定与分析默认关闭,可在全局功能配置开启 | 默认结束验收,可配置检查点/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_config(section="model") 提供 transport=http/websocket,默认 WebSocket;首次升级启动也会将旧全局 HTTP 配置一次性迁移为 WebSocket,之后手动切回 HTTP 会被保留。用户明确要求保存默认值时可设置 changes={"transport":"websocket"}, persist_defaults=true;新任务的 Flash、Pro、探索和辅助请求共用此选择。WebSocket 在历史一致时仅上传新增输入,网关须支持 Responses WebSocket;压缩、重连会发送完整上下文,上传减少不能当作 token 减少或缓存命中。不支持协议时应查看错误并确认网关能力,不自动改写用户配置。
mobile_run_task.model取Flash/Pro。API 模型名放runtime_overrides.model;思考强度放runtime_overrides.reasoning_effort。批次使用task_config.profile选择模式,task_config.model选择 API 模型。- 探索独立配置,默认
gpt-6.1-terra/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 提交
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 自行选择已授权插件,见 插件参数。
返回后保存 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 秒当作精确等待。最终外部测试脚本应使用明确等待条件。
短时控件与精确拖动
Flash 与普通 Pro 共用原生 action_sequence 和 drag 动作。外层 MCP 仍通过
mobile_run_task 提交任务;在任务目标中说明短时控件、已观察布局、目标刻度和验收标准,
不需要切换探索或通过外部 ADB 脚本绕开队列。
action_sequence(steps=[...])是通用的安卓短动作组合器,在一次调用内按序执行 ensure_visible、click、wait、drag,不限于时间轴; 每次短时面板操作优先使用[ensure_visible, click/drag],包括反向调整和上一帧看似仍展开时。 ensure_visible 指定面板内 target、入口 opener 的真实 resource_id 及 target_description:已显示则跳过打开;否则只点击入口一次, 在本机等目标出现(timeout_ms 默认 1500,上限 3000)。找不到、不唯一、层级不可用或超时会停止;不重试入口或业务输入。 此成员只准备界面,不能拿业务提交按钮作入口;没有原生 ID 的界面仍需使用已观察坐标和原有 click/wait/drag。 显式可见性检查会获取本机最新界面。工具声明显示实际pro.execution.max_burst_actions上限 (默认 4,等待也占一项)。序列内 click.target 优先用真实 resource_id,由执行层现场定位; 找不到或不唯一时不点击。旧 click.unless_visible 仅在面板已开时跳过打开按钮,不能加到加减等实际操作按钮上; drag.require_visible 可拒绝对已消失面板的拖动。ID 来自观察列表,不能猜测。 先验证整组参数,失败后停止剩余成员;检查 completed/skipped/unknown/not_started 回执, 不重发已完成输入。click 支持 times=1..10、delay_ms(默认 100),连点只占一个成员;按资源 ID 连点时 每次重读实时层级,目标消失则停止,回执保留 completed_taps。普通元素索引点击也校验原目标仍在记录位置。 安卓校验不等待整屏截图稳定。反向调整也使用完整组;最大/最小优先用原生加减按钮,核对继续同方向调整后 滑块和刻度停止变化或明确的原生极值,不能用“接近端点”或仅变成分钟级代替。drag接受 start、end、coordinate_space(normalized 或当前截图的 pixel)、 duration_ms(默认 300)及 target_description。pixel 避免细刻度被整数归一化坐标量化。 时间轴若松手后仍滑动,应减慢 pan 并等待刻度停止再量残差;常驻时间轴可独立于缩放弹层操作。 拖动浮层与固定指针刻度冲突时不能用于验收;停稳后可按真实刻度插值并计入读图不确定性。- 可用 calibration 替代 end:axis、mode(thumb/pan)、两个 anchors(position/value)、 target_value;pan 还要提供固定指针 indicator_position。各值必须来自当前缩放下的真实观察, 使用同一数值单位。工具返回计算出的端点、比例和量化误差,未自动识别当前选中值。
- 拖动成功只表示派发成功。对照动作后同名刻度或选中值再判断;不得自动过冲或把慢拖当作精准。
安卓文件
任务内部支持 android_file,外层以任务目标交给 ARTEMIS,文件操作也走队列。截图原生 PNG 默认留存任务 trace;明确要求桌面时额外复制并校验,不需电脑插件。读写文本、列目录、pull/push 使用目标 Android 路径及任务文件边界,不能绕过应用私有目录权限。已有文件默认不覆盖。只有工具返回实际路径及校验结果才说明保存成功;「全部资料」导出包含任务文件。