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.
100 lines
11 KiB
Markdown
100 lines
11 KiB
Markdown
# 探索模式:把粗略流程变成一个可复用用例
|
|
|
|
在「新任务 / 首页」选择 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 模式,可以指定复跑模型,也可使用普通默认模型。复跑固定版本与配置,结果与探索验收分开显示。前置条件会纳入探索用例的复跑提示词。
|
|
|
|
自动提炼的提示词使用已确认的实际 URL、包名和业务输入,设备/电脑使用本次任务绑定;未指定输出位置时,报告与证据默认保存在本次任务 trace。不会生成需要另行替换的 `${名称}` 参数,也不把旧任务的窗口 ID 或证据路径当成本轮环境。生成器遇到占位符会修订一次,仍无法生成可执行提示词时保留原版本并提示重新提炼,不改变探索的实际验收结果。旧版或手动草稿中尚有占位符时,复跑/加入批次会在执行前列出未填参数;可编辑保存新版本或重新提炼。
|
|
|
|
Flash、Pro 和探索共用的验收会直接收到精简文件回执,包括来源步骤、保存位置、大小和校验信息;回执只证明对应位置的文件操作,报告内容及页面结论仍须核对证据。布局问题需要结合前后画面、可阅读/操作性及用户标准;内容随滚动经过固定导航后方不单独构成缺陷。证据不足保留「未验证」,不会自动改判为通过。
|
|
|
|
复跑用例保留业务操作、报告要求和通过标准,不继承探索阶段的提问、人工示范、提炼下一份用例等收尾工作;如果文档生成本身就是被测产品的功能,则保留该业务验收。旧版用例不会自动改写,可重新提炼或编辑保存新版本。
|
|
|
|
Flash 的最终答复会在验收前保存到当前任务的 `notes/output.md`;需要额外交付文本文件时,可用 `save_note` 保存到同一任务的 `notes/`,返回实际路径、大小、SHA-256 和读回校验结果。`output` 保留给最终答复,独立文件使用其他名称。写入失败会明确传给验收,不虚构文件已保存,也不额外调用模型生成同一份报告。
|
|
|
|
文本保存调用也记录为任务步骤,供验收与历史检索读取回执,不为此操作手机或抓取无关画面。验收收到完整 JSON 结论时优先在本地校验;可无损转换逐项结论的 `verdict` 字段别名和证据文本列表,避免仅因格式差异再次请求模型。冲突状态、非法值、截断输出或缺少检查项仍不能当作有效结论。
|
|
|
|
步骤截图本身已是保存的证据。前后两次截图内容相同时可能共用一个文件,验收仍保留两次采集记录;除非任务明确要求独立命名或指定导出位置,不要求另存一份图片。执行者遗漏步骤或报告未交付,按实际情况判为阻塞或未验证;只有证据反驳业务预期时才判测试失败。
|
|
|
|
「加入新批次草稿」只创建批次,在「报告与批量」确认后启动。结束后仍可在对话中讨论与修订;需要再次操作设备时点击「继续探索」,它会重新排队并观察。新指导不会改写旧任务报告。
|
|
|
|
单任务和批次「全部资料」包含对话、用例版本和关联运行索引、当前任务的示范录像及原有截图/附件。其他关联任务的媒体需从对应任务导出,索引不会假称包含它们。
|
|
|
|
## MCP 与 Python SDK
|
|
|
|
更新 MCP 配置并重载后,使用 `mobile_exploration`。它与网页共用接口、队列和存储;`list/get/case` 都是只读操作。
|
|
|
|
```python
|
|
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` 外均需稳定的 `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=...)` 使用同样动作及参数,不创建第二套执行器。详细契约与验收记录见 [设计文档](plans/2.0.0-exploration.md)。
|
|
## 对话与结束行为
|
|
|
|
- 探索助手提问后会暂停,主区域和输入框显示“等待你回答”。回答前不进行最终验收,也不生成用例。
|
|
- 新指导优先于已完成的旧计划。最终检查期间收到指导会返回执行;例如“先回到主页,再结束”需要实际完成返回操作后再验收。
|
|
- 勾完计划不会直接结束探索。执行模型在已有上下文中交付最终报告,正文保存到任务的 `notes/output.md` 和 `result.json`,并完整写入探索对话后才进入独立验收。默认不再额外调用报告模型;报告内容仍须与实际证据核对,不能凭报告自述判为通过。报告生成期间收到新指导会继续执行并重新生成报告。
|
|
- 设备操作及最终验收结束后进入“正在提炼用例”,此时不再接收设备指导。未发送文字会保留,提炼完成后可点击“继续探索”。用例卡片只在探索结束时展示。
|
|
- 进入只读最终验收前停止保存录屏,模型等待、重试与用例提炼不录入视频;如需补做操作,再录制后续片段。
|
|
- 首页探索设置使用滑块调整思考强度与时限。复跑任务显示已保存的用例名称及版本,完整提示词仍保存在任务中。
|