# 结构化政策答复与可中断验收 工程实现及离线验证完成;最终同源码两模型均完整执行 13 例,各严格通过 **11/13**,质量门槛未达成。`strict` 对照通过只表示可比,不表示全部用例通过。没有新增未知用量,旧冻结账本保持独立。 ## 实现与边界 - `compose_policy_answer` 使用严格的嵌套参数模型,只接受当前用户原话、选证 / 缺口状态和本轮引用标签。可信应用回调读取实际工具历史,验证来源、版本、生效区间、哈希和原文,拒绝模型自带正文、旧轮引用、伪造标签及并行提前结束。 - LangGraph 缓冲模型正文,触发政策契约后压住自由草稿;程序输出完整原文与缺口,完成后停止生成。同一证据只引用一次,后续分项用程序编号回指。无合格提交时降级为明确未确认的答复。程序末尾正文进入 API / CLI、会话历史、trace 和评测可见文本,不产生模型 token。 - campaign 固定源码、模型 / 端点指纹、thinking、超时、费率、语料、夹具和范围。请求前日志落盘并 fsync,每例原子保存报告;关闭分段保存哈希,显式续跑只补上游中断或未执行项,完成的失败不重试。进程锁阻止并发执行。 - 未知用量冻结分段,续跑须显式保留未知费用;即使用例补齐,未知计量仍阻止最终验收。离线模拟已覆盖中断、无结算请求、冻结保留、仅补剩余用例、禁止偷偷重跑失败,以及源码 / 范围 / 模型 / 费率 / 超时 / 证据改变后的拒绝。 这保证来源绑定与原文输出,不是通用语义蕴含验证;模型完全不检索、将条件当问题、混合业务问答仍有边界。使用真实政策原文和受控排名 / 故障,嵌入请求为 0,不等同于真实向量召回或未知问题准确率。详见[运行契约](../../docs/resumable-grounding-evaluation.md)。 ## 最终真实结果 源码:`0f230ed609ed4d9990927f4a86ed576a0bc99351fb263ed495fe2b97b6ef52aa`;用例指纹:`9ec9ad5f2bb03902a706152f2ceafdb4e0b4f0c839f701d7996fb1eadfecba0f`。判分 `rag-grounding-structured-3`,每模型按 6 + 7 例显式续跑,已完成 ID 无重复,SDK 重试为 0,请求总截止 60 秒。 | 模型 | 完整执行 / 严格通过 | 请求 / usage | 已知原币种估价 | 门槛 | |---|---|---|---|---| | GLM | 13/13;11/13 | 26/26 | CNY 0.017575 | FAIL | | DeepSeek | 13/13;11/13 | 26/26 | USD 0.008225 | FAIL | 覆盖、执行完整性、源码稳定性、原币种计量、禁止工具尝试均通过;每例七张业务表的前后摘要相同。两模型的失败分别为: 1. GLM 在政策检索不可用与政策失效场景中,没有调用结构化结束工具。程序已按真实状态安全拒答,但缺少有效结束提案,原失败保留。 2. DeepSeek 在政策不可用场景中同样未提交结束工具;无理由退货运费场景将前提条件另列为证据分项,运费本身明确拒答,但该例金标要求只拒答缺失的运费问题,原失败保留。 本助手逐例阅读了两模型保存的 26 份可见正文:未发现此前的无观测订单声明、虚构保修 / 运费或异常生成词;[复核记录](20261019-structured-grounding-visible-review.json)明确标记这不是外部盲审,也不覆盖未知问题。安全降级没有被当成结构化流程成功。下一项修复应把不可用、冲突、失效、无命中后的结束直接交给可信程序,并区分用户问题与背景条件;修复后再单列真实验收,不重判本批失败。 本轮真实请求没有发生模型上游中断;中断路径的证据来自离线故障模拟。政策检索不可用是受控夹具,不是供应商连接故障。 ## 判分修正与费用审计 最初结构化 v1 的 4 例均因未引用末尾操作限制而误报失败;v2 的 4 例中 3 例通过,剩余一例把连接词“和”当成独立回答义务。两份原始结果保持不变。v3 以人工标注的实质问题维度检查分项覆盖,增加所有 13 例的拆分正例及漏掉独立问题的负例;必需来源、政策事实和有据 / 缺口金标未放宽。冻结清单:[v1](../rag/20261019-structured-grounding-v1-manifest.json)、[v2](../rag/20261019-structured-grounding-v2-manifest.json)、[v3](../rag/20261019-structured-grounding-v3-manifest.json)。 当前阶段含全部诊断共 **74 次请求 / 74 个 usage**,已知估价 **CNY 0.034445 / USD 0.008225**,分别在事前 CNY 0.04 / USD 0.02 的估价额度内;不是供应商实账或账单硬上限。逐请求用 Decimal 从 trace usage 复算,与独立请求日志及报告一致,报告 / 日志 / trace 哈希核对通过。原有政策索引 SHA-256 保持 `2bfab2cd9255872c49dd102752a3424690e19ff6cb0fe4c5b7980df25137444a`。此前未知费用不核销、不混算,也不追索用户已要求跳过的旧账单。 证据入口: - [批次计划及阶段预算](20261019-structured-grounding-live-plan.json)、[74 笔用量复算与哈希](20261019-structured-grounding-usage-audit.json)。 - [GLM 最终清单](20261019-structured-glm-campaign-03.json)、[派生完整报告](20261019-structured-glm-campaign-03-summary.md)、[FAIL 门槛](../gates/20261019-structured-glm-final.md)。 - [DeepSeek 最终清单](20261019-structured-deepseek-campaign-01.json)、[派生完整报告](20261019-structured-deepseek-campaign-01-summary.md)、[FAIL 门槛](../gates/20261019-structured-deepseek-final.md)。 - [同源码严格对照](../evals/20261019-structured-final-comparison.md);初期 GLM [v1 清单](20261019-structured-glm-campaign-01.json)、[v2 清单](20261019-structured-glm-campaign-02.json),不拼接成功率。 ## 离线及界面验证 最终源码全仓 **1031 passed / 21 skipped / 47 deselected**,Ruff 通过;前端 84 项通过,TypeScript / Vite 构建通过(原有大 bundle 提示仍在)。最终源码浏览器演示 3 项通过,覆盖 320 / 1440px 的证据与拒答、补货、草稿恢复与审批;演示使用脚本模型 / 临时库,不替代真实模型结果。Windows 下测试结束后清理了本轮自建演示服务进程,未遗留服务。 新增 API 验证确认:程序答复在 SSE、历史与恢复会话中一致,模型自由草稿不泄漏。没有部署、迁移实际业务库或更改嵌入索引;本轮关闭后不再追加付费调用。