Files

9.9 KiB
Raw Permalink Blame History

执行模式与单任务流程

怎样选模式

项目 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 路径及任务文件边界,不能绕过应用私有目录权限。已有文件默认不覆盖。只有工具返回实际路径及校验结果才说明保存成功;「全部资料」导出包含任务文件。