结构化结果、证据链与唯一写入者¶
- 沉淀时间: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
关键规则:
- 最终结构化结果只有一个写入者,例如
write_result.py。 - 状态、性能数字、一致性结论和审计字段由脚本计算,禁止模型自报。
- 结果文件必须带 schema 版本、证据文件引用和机器可读的一致性详情。
- 汇总层只接受通过 schema 校验的结果,旧格式或缺字段结果不能悄悄进入统计。
- 中间证据、最终结果和展示产物分层存放,写权限与职责保持一致。
安全边界¶
- Agent 的自由写入限制在单个工作区,如
ws_xxx/。 results/只存唯一写入脚本生成的标准结果。optimize/和output/由导出阶段独占。- EXPLAIN 等大文本以文件引用进入结果,不复制进多个 JSON 字段。
反模式¶
- 让模型根据自然语言审查结论填写
status。 - 只在 prompt 中要求“保持一致”,却没有脚本校验。
- 将错误的中间结果与正式 result 放在同一目录,再用宽泛 glob 汇总。
- 看到 PR 已合入就认定业务验证完成。
限制¶
结构化写入只能保证“结论忠于输入证据”。如果比较算法、采样范围或执行数据本身不足,结果仍可能错误。因此还要显式记录 comparison_strength、数据范围和缺失证据。