Files
chenmingxuan e1ea099592 feat: add official Codex skill and harden task execution
Install and update artemis-use with task diagnostics and plugin guidance. Preserve cross-device file receipts, review canonical reports, guard stage transitions and reduce small history summaries. Improve exploration lifecycle, request recovery and browser live connections.
2026-10-18 14:18:37 +08:00

8.1 KiB

探索模式:把粗略流程变成一个可复用用例

在「新任务 / 首页」选择 Flash、Pro 或「探索」,描述要验证的大概流程,再点击「开始探索」。ARTEMIS 使用 Pro 的计划、工具和验收机制推进任务;遇到关键预期不明或需要选择时,在任务主区域提问。底部输入框用于回答问题、补充信息和纠正方向;探索还提供人工示范、暂停与继续。

工作区底部始终指导当前选中的任务:Flash/Pro 不会因此创建新任务;探索消息与操作步骤按时间排列。同一次探索在任务队列/历史中保留一张卡,内部执行轮次可展开查看,当前步骤对应所选轮次。通过「任务范围 → 探索任务」筛选。Flash/Pro 复跑各自保留普通任务卡,可点击「查看来源探索」返回;不会自动切换成探索对话。

模型与超时

探索独立保存模型配置,默认 gpt-6.1-sol / high,预设也提供 gpt-6-astra,允许自定义模型。执行、人工示范分析、用例提炼和结束后的讨论使用这套配置。修改默认值仅影响新探索;已创建会话保留配置快照,Flash/Pro 默认值不变。

默认每段主动执行 1800 秒。模型调用、设备动作、录像分析计入;排队、等待回答和人工示范不计入。到时保存进度并暂停,可点击「继续探索」开启下一段;不会仅因超时把测试判成失败,累计主动耗时仍保留。

普通暂停/等待回答会释放执行资源;继续后重新排队并观察设备。服务或执行进程中断后,已保存对话、证据和用例仍可用;继续会新建关联运行,不能恢复已经丢失的内存状态。

执行过程中获取设备画面超时或连接中断时,探索会保留尚未执行的指导并暂停,释放设备。确认设备恢复响应后点击「继续探索」,重新观察成功后才交给模型执行;等待期间不自动重试、不调用模型。此类暂停不等于测试失败。若设备仍不可用,会再次明确提示并暂停。

队列和历史任务以等高徽标显示「探索 / Flash / Pro」。用例复跑显示实际执行模式并另标版本;尚可继续的探索只展示当前执行状态,具体轮次的阻塞原因可在执行记录查看,结束后再展示测试结论。旧任务未保存模式时显示「模式未记录」。

我来操作

  1. 点击「我来操作」,选择安卓、电脑或双来源,再点击「开始示范」。电脑来源要求任务已启用支持录制的插件。
  2. 等界面显示「录制中」后再操作。ARTEMIS 会先让当前动作安全结束、停止 AI 操作,保留相应设备与插件资源,避免其他任务抢占。
  3. 操作完成后点击「操作完成,开始分析」。ARTEMIS 停止并保存录像,分析实际画面,再显示摘要。证据明确时重新观察并继续;关键步骤或预期不清楚时再提问。

即使普通录屏关闭,人工示范仍单独录制。默认 15 分钟,最后 60 秒提醒,可以延长;到时保存录像并暂停,释放资源,不能自动视为示范完成。取消或分析失败也保留已取得的媒体,可发送文字说明继续。

录像不录音,沿用留档尺寸、帧率和编码配置。安卓与电脑分别保存并按任务时间对齐;示范分析只使用指定的已保存片段,不用手机截图代替电脑证据。画面不可见的输入和动作不能推测,用户示范不等于模型独立复跑通过。

用例版本与复跑

探索验收通过后提炼一个用例,包含目标、前置条件、可验证路径、等待条件和预期结果。长任务会分段提炼完整路径,原始记录保留。提炼失败不改写实际测试结论,可单独重试;未通过的探索不能自动提炼成「已验证路径」,但可以手动保存草稿。

主区域的用例卡可复制提示词,点击「查看 / 编辑」展开编辑器并保存新版本,旧版本不可变。选择已保存版本和 Flash/Pro 模式,可以指定复跑模型,也可使用普通默认模型。复跑固定版本与配置,结果与探索验收分开显示。前置条件会纳入探索用例的复跑提示词。

「加入新批次草稿」只创建批次,在「报告与批量」确认后启动。结束后仍可在对话中讨论与修订;需要再次操作设备时点击「继续探索」,它会重新排队并观察。新指导不会改写旧任务报告。

单任务和批次「全部资料」包含对话、用例版本和关联运行索引、当前任务的示范录像及原有截图/附件。其他关联任务的媒体需从对应任务导出,索引不会假称包含它们。

MCP 与 Python SDK

更新 MCP 配置并重载后,使用 mobile_exploration。它与网页共用接口、队列和存储;list/get/case 都是只读操作。

mobile_exploration(
    action="create",
    request_id="case-search-create",
    payload={
        "goal": "探索设置搜索流程;关键预期不清楚时询问我",
        "task_config": {"device_serial": "用户指定的设备编号"},
    },
)
# 以下 exploration_id 使用 create 返回的 id。
mobile_exploration(action="start", exploration_id="会话编号", request_id="case-search-start")
mobile_exploration(action="get", exploration_id="会话编号", after=0)
mobile_exploration(
    action="message",
    exploration_id="会话编号",
    request_id="guide-1",
    payload={"text": "只验证能打开搜索页,不修改设置"},
)

写操作除 pause/stop/delete 外均需稳定的 request_id;传输失败时原样重试,不生成新编号。消息 after 为已读最大序号;读取返回下一页,不会启动执行。运行结束看 runs[].test_result,不能把 completed 当作测试通过。

操作 参数/行为
pause/continue/stop 暂停/继续/明确取消当前执行
demonstrate payload={source:"android"/"computer"/"both"};等 demonstrations[].status=recording 再操作
demo_finish/demo_cancel 传 demonstration_id;结束分析/取消保留媒体
demo_extend 另传 payload={seconds:900},同一请求不会重复延长
case 可传 version 获取旧版本
save_case payload={expected_version,case:{name,goal,preconditions,evidence}};版本冲突返回 409
generate payload={source_run_id,expected_version};返回生成任务,轮询 get.generations
validate payload={version,profile:"flash"/"pro",task_config:{...}}
batch 与 validate 相同,可加 name;只建草稿

mobile_config(section="exploration") 读取非敏感默认值;用户授权保存后才传 changes 与 persist_defaults=true。接口不接收 API Key,模型传输仍使用已配置的 Responses 网关。

远程 SDK 的 await client.exploration(action, exploration_id=..., request_id=..., payload=...) 使用同样动作及参数,不创建第二套执行器。遵循当前服务返回的参数与状态。

对话与结束行为

  • 探索助手提问后会暂停,主区域和输入框显示“等待你回答”。回答前不进行最终验收,也不生成用例。
  • 新指导优先于已完成的旧计划。最终检查期间收到指导会返回执行;例如“先回到主页,再结束”需要实际完成返回操作后再验收。
  • 设备操作及最终验收结束后进入“正在提炼用例”,此时不再接收设备指导。未发送文字会保留,提炼完成后可点击“继续探索”。用例卡片只在探索结束时展示。
  • 进入只读最终验收前停止保存录屏,模型等待、重试与用例提炼不录入视频;如需补做操作,再录制后续片段。
  • 首页探索设置使用滑块调整思考强度与时限。复跑任务显示已保存的用例名称及版本,完整提示词仍保存在任务中。

删除探索

用户明确要求删除时,先 mobile_exploration(action="deletion_preview", exploration_id=...) 查看影响;再 delete 并传 user_confirmed=true。删除整段对话及探索运行,独立 Flash/Pro 复跑保留。删除不需要 request_id;运行中或示范/提炼中不能删除。