跳转至

结构化结果、证据链与唯一写入者

  • 沉淀时间:2026-09-09
  • 来源:IJYC7V / PR #1;IK37HX / PR #5
  • 成熟度:confirmed
  • 适用范围:Agent 生成结构化结论、执行验证结果和最终报告的工作流

问题

Agent 同时负责分析、执行和手写最终 JSON 时,自然语言结论可能覆盖机械证据。项目中出现过 execute_result.result_identical=false,最终结果却写成“正优化”的真实案例。错误随后进入 summary,形成看似完整但不可审计的交付物。

核心结论

最终事实必须由确定性代码从原始证据推导,Agent 只提供描述性内容。

执行脚本产生证据
  baseline.json + execute_result.json
                ↓
唯一写入脚本校验并推导
  status / time / improvement / result_identical
                ↓
导出脚本生成交付物
  result.json → summary / display / xlsx

关键规则:

  1. 最终结构化结果只有一个写入者,例如 write_result.py。
  2. 状态、性能数字、一致性结论和审计字段由脚本计算,禁止模型自报。
  3. 结果文件必须带 schema 版本、证据文件引用和机器可读的一致性详情。
  4. 汇总层只接受通过 schema 校验的结果,旧格式或缺字段结果不能悄悄进入统计。
  5. 中间证据、最终结果和展示产物分层存放,写权限与职责保持一致。

安全边界

  • Agent 的自由写入限制在单个工作区,如 ws_xxx/。
  • results/ 只存唯一写入脚本生成的标准结果。
  • optimize/ 和 output/ 由导出阶段独占。
  • EXPLAIN 等大文本以文件引用进入结果,不复制进多个 JSON 字段。

反模式

  • 让模型根据自然语言审查结论填写 status。
  • 只在 prompt 中要求“保持一致”,却没有脚本校验。
  • 将错误的中间结果与正式 result 放在同一目录,再用宽泛 glob 汇总。
  • 看到 PR 已合入就认定业务验证完成。

限制

结构化写入只能保证“结论忠于输入证据”。如果比较算法、采样范围或执行数据本身不足,结果仍可能错误。因此还要显式记录 comparison_strength、数据范围和缺失证据。

关联