# 政策原文答复与可中断验收 `search_policy` 命中后,模型调用 `compose_policy_answer` 提交逐问选证。参数模型只接受用户原话、`evidence/gap` 状态和当前检索的引用标签,不接受自由回答。Agent 适配器安装可信响应契约;图运行时用本轮实际工具历史校验引用、版本、生效区间、正文哈希,程序输出原文和固定缺口说明,随后结束。不会再调用模型润色程序答复。 包含这些工具的运行时会先缓冲每一步的模型正文;触发政策契约后,草稿留在图检查点的 `suppressed_drafts`,不写进对话正文。非政策步骤的正文在该请求结束后发出,思考和工具事件仍沿用原协议。程序在工具结束后输出的正文通过 `rendered_answer` 留在 trace,并计入 eval 的 `visible_text`;程序渲染不增加 usage。 没有合格结构化提交时,程序明确表示未完成逐问判断;有效原文可作为未确认的检索结果展示。故障、版本冲突、未生效和无命中不输出政策断言。未被选中分项覆盖的用户文字会显示尚未核对。适用性选择仍需要模型和评测判断,这套机制不声称提供通用语义蕴含证明,也不能覆盖模型完全不调用检索的情况。混合业务与政策问题的最终文字当前以政策原文为主,后续仍需拆分业务回答。 最终套件 `rag-grounding-structured-v3` 使用 `rag-grounding-structured-3` 判分;原生成 v1/v2,以及结构化 v1/v2 的问题、失败和判分保持可追溯。13 条诊断样本来自真实政策原文,排名和故障受控,不调用嵌入服务,不代表未知问题准确率。除来源与全表状态检查外,新套件还重放结构化提案,要求可见正文与程序输出完全一致,检查有据、缺口、部分有据的选择;不能只靠复述问题关键词通过。 结构化 v1 要求用户原话每个字符都被分项选择,首段 4 例因此全部误报:有效政策提问之外还被要求覆盖“仅查询、不执行操作”。结构化 v2 增加人工标注的问题范围,仍在退货用例中错误要求分项包含连接词“和”;该段原始 3/4 结果保留。最终 v3 只核对人工标注的实质问题维度,连接词、语气词和操作限制不另作政策问题。对应政策原文、必需来源、条件与费用事实以及有据 / 缺口金标保持不变。全部 13 例增加分项碎片可接受与漏掉独立问题必须失败的离线回归。这些是已知诊断样本上的判分修正,不宣称测试集外泛化提升。 ## 分段执行 首次命令固定完整用例范围、源码哈希、模型、端点指纹、超时、费率、语料和受控检索夹具。`--budget` 是整个 campaign 的已知估价总额度;每个分段还可加更小的 `--segment-budget`。不同币种独立建批次。示例数值仅说明参数,不自动授权调用: ```powershell python -m evals --suite rag-grounding-structured-v3 --budget-currency CNY --budget 0.04 --timeout 60 --campaign reports/acceptance/example-glm.json --segment-cases 4 --segment-budget 0.015 python -m evals --suite rag-grounding-structured-v3 --budget-currency CNY --budget 0.04 --timeout 60 --campaign reports/acceptance/example-glm.json --resume-campaign ``` 每次请求前将开始事件写入独立 JSONL 并 `fsync`;结束后保存用量估价或未知记录。缺失结算的开始事件也算未知请求。报告与清单使用临时文件加原子替换,进程锁阻止并发续跑。每个关闭分段保存报告和请求日志的 SHA-256,后续校验不一致就拒绝发请求。 已完成的模型失败按原结果保留,续跑不重试它。上游超时、连接、限流、服务端异常单列为 `upstream_interrupted`,执行或非瞬态错误单列为 `runtime_error`;仅上游中断和未执行用例进入后续分段。续跑粒度是完整用例,使用新临时业务库;不从半截模型流恢复,也没有后台自动重试。当前只支持这组隔离的政策验收,不能直接用于会产生真实业务写入的任务。 未知计量会冻结当前分段。`--resume-campaign --resume-with-unknown` 明确开始另一个有界分段,保留全部旧请求和未知费用;不会核销或清零旧账本。总额度只约束已知估价,不是供应商账单硬上限。无需补账单也可继续完成覆盖,但只要历史未知费用仍存在,`billing_complete` 和最终 `acceptance_passed` 就保持 false。原有 2026-10-17 及 2026-10-19 旧冻结账本不导入这个新批次。 清单汇总同时显示计划范围、完成数、通过数、未完成 ID、全部尝试、已知原币种估价、未知请求数。派生的 `*-summary.json/.md` 保留原始分段的路径和哈希,可交给现有 gate / strict 对照;含未知计量或不完整范围时仍被拒绝。`--campaign` 不同时接受运行式 `--gate`,应对结束后的派生报告执行离线门槛。