实验 8-4 实现与验收边界¶
正文验收入口是 run_experiment_8_4.py。workflow_validation_demo.py 与单元测试只是离线预检,不能替代真实模型、真实 HTTP 页面和真实 Chromium 运行。
可信边界¶
- 站点只监听
127.0.0.1,所有订单式副作用均为进程内虚构消息。 - Agent 每一步都真实调用配置的模型;证据只记录 API 请求/响应、端点和密钥环境变量名,不记录密钥值。
- 浏览器是 Playwright Chromium。最终成功读取服务端持久状态渲染出的
sent-list,不以点击完成或定位器命中代替任务结果。 validation_reset是独立 HTTP 请求。没有 reset 的工作流只能保存在候选区。candidate、validated、invalid文件彼此隔离;只有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 倍”。