跳转至

实验 8-4 实现与验收边界

正文验收入口是 run_experiment_8_4.pyworkflow_validation_demo.py 与单元测试只是离线预检,不能替代真实模型、真实 HTTP 页面和真实 Chromium 运行。

可信边界

  • 站点只监听 127.0.0.1,所有订单式副作用均为进程内虚构消息。
  • Agent 每一步都真实调用配置的模型;证据只记录 API 请求/响应、端点和密钥环境变量名,不记录密钥值。
  • 浏览器是 Playwright Chromium。最终成功读取服务端持久状态渲染出的 sent-list,不以点击完成或定位器命中代替任务结果。
  • validation_reset 是独立 HTTP 请求。没有 reset 的工作流只能保存在候选区。
  • candidatevalidatedinvalid 文件彼此隔离;只有 validated 可被意图检索。

编译产物

每个 WorkflowStep 保存动作类型、参数模板、XPath、CSS 和稳定属性证据,并附动作前与动作后谓词。Workflow.final_predicates 检查本次收件人、主题和正文确实出现在已发送列表。Workflow.parameterize() 同时替换动作参数和谓词中的占位符,防止第二次回放继续验证首轮字面量。

假成功对照

正式 campaign 对相同工作流和页面故障分别运行:

  • validate_state=False:只要输入和点击没有抛异常便报告成功;
  • validate_state=True:检查输入值、发送状态、页面状态和最终持久化列表。

“空正文”和“接受但不落库”使动作计数基线产生 100% 假成功,而状态验证组为 0%。页面版本变化则在发送按钮前置检查处停止,后端事件日志证明没有新增 send_request

当前实证

validation/real_20260729T171233Z/evidence.json 使用 ARK doubao-seed-1-6-flash-250615,保存 4 个模型回执和完整浏览器/服务端轨迹。13/13 执行门槛通过;参数化回放 0 次 LLM 调用,探索/回放加速为 1.195 倍。这个数字是本机本次实测,不沿用旧文档中未经证据支持的“3–5 倍”或论文中的“8.5–13 倍”。