Files
ai-contract-platform/project-docs/AI合同平台-模板与Prompt开发进展-TP06.24.2-2026-09-10.md
T

12 KiB

AI 合同平台:模板与 Prompt 开发进展 TP06.24.2

日期:2026-09-10。承接《AI 合同平台:模板与 Prompt 专项审查及优化扩充方案》与 TP06.24.1。

本阶段实现“持久化后台续接 → 有界修复候选 → 独立复核 → 用户明确采纳/撤回”的源码闭环。用户已确认谷歌浏览器登录正常,不再将登录作为开发阻塞。本报告不是生产发布、法务批准或真实模型效果验收。

1. 本阶段实现

后台续接不再依赖页面轮询

新增独立 yuqei-drafting-continuation-worker,由业务 HTTP 接口与 worker 共用 DraftingCoordinator,同步已保存的普通起草及语义复核任务。worker 不在 API 内自动启动,也不自行执行模型或采纳合同。

  • 候选级租约、过期时间、重连退避计数保存在现有工作区 JSON;没有新增数据库迁移。
  • HTTP 请求期间不持有数据库事务;领取及释放租约仍通过租户/所有者范围内的事务执行。
  • 旧 token 的迟到释放不能抹掉新租约。扫描有游标与批量上限,同一工作区候选按最近轮询时间轮转。
  • 排除旧资料修订、已结束候选、人工接管及确定性续接错误。修复意见已保存但子候选尚未创建的中断窗口可以恢复。
  • 网络提交结果未知时,保留原请求与幂等键重连;失败或取消的模型执行不会被自动重试。网络重连的退避间隔有上限,但重连次数没有最终上限,两者不能混称为模型执行预算。
  • 续接状态不进入工作区公开 DTO,也不将单纯领取租约记为用户编辑。

默认 CONTRACT_API_DRAFTING_WORKER_ENABLED=false。只有显式配置并启动独立进程后,才具有运行环境中的无页面续跑能力;--once 是明确执行一次扫描,会绕过常驻开关,不能当成只读检查。详见 worker 运维说明。本轮未启动该进程。

一代修复,不覆盖父候选

API 的 auto_repair 省略时为 false,且只接受严格布尔值。普通起草前端提供默认勾选、可取消的语义复核和自动修复选项,提交前说明最多新增三个任务:首次语义复核、一次修复、修复后复核。历史候选不会自动补开策略;场景评测入口不启用这一自动链。

父候选的当前复核必须为经服务端重建验证的 repairable,并绑定当前资料修订、正文、实际任务、审计、Prompt 和收据。服务端从已有记录生成修复上下文,不接受会员自行拼装父链证据。

修复上下文保留原语义请求、输出、确定性评估、可执行问题 ID、修复约束与父链指纹。修复请求以父候选正文作为差异比较基线,保留原事实、选中/未选/待定/冲突条款状态、检索快照、模板及用户指令;原候选正文和原复核不改写。

  • 同一父候选/复核只生成一个子候选;并发点击、更换提交方式及网络重连不重置预算。
  • 只允许第 0 代生成第 1 代;修复任务和修复后的语义复核各最多执行一次。
  • 失败、取消、fallback、无效证据或尚未通过子候选自身复核,不放行采纳。子候选不再生成第二代,也不通过通用 retry 绕过预算。
  • 确定性错误保留停止原因,界面可查看;可恢复的原候选允许按有效证据手动继续。
  • 明确采纳仍是独立动作,并保留合同版本和复核引用。修复的比较基线不等于此前已经采纳的合同正文;新合同撤回须恢复最初正文,不能把尚未采纳的父候选冒充原合同。

修复后逐条解释原问题是否解决

修复后复核的输出增加 repair_resolution_checks,每个原问题必须恰好对应一条 resolved / unresolved / uncertain 记录,并定位新候选正文;正文外问题还必须绑定对应的新说明字段、序号与完整内容。缺失、重复、凭空摘录、错字段或在未解决状态下声称 passed,均不通过确定性校验。

普通复核继续使用原 Schema;新字段只在带修复上下文的复核请求中必填,避免把旧输出当作不完整新输出。界面逐条呈现状态、依据及解释,旧记录没有此字段时不显示新增区域。

这些检查证明的是记录完整性与可定位性,不证明模型的解释为真,更不构成法务批准、司法效力或自动采纳授权。

模型与 Prompt

沿用 gpt-5.6-sol / medium / 300s / full-v1,没有更换 Provider 或购买密钥。修复专用指令只在确有修复上下文时追加;完整上下文仍提供给模型,普通路径不附加修复身份字段。worker 根据实际执行记录生成父链绑定,Provider 不能自行给出可信收据。

本轮使用 OpenAI Docs 技能核对固定模型、简洁指令及请求范围内的严格结构化输出:保留必要约束,避免重复堆叠;修复输出要求逐问题覆盖,不以笼统“通过”代替依据。模型文档、结构化输出文档、提示最佳实践。没有因文档中的最新默认模型而迁移本项目模型。

完整回归发现的兼容性问题

首轮完整 AI 回归不是全绿:727 项中 699 通过、28 失败,原始 JUnit 保留。调查后分开处理,未将这些失败忽略或改写为通过:

  • 21 项旧封存场景的 Schema 指纹不匹配,源于早于本轮的 fact_evidence 无条件扩展。现按冻结请求中的 draft-input-conflict.v1 选择 Schema:无策略恢复旧指纹 0d59e496…,有策略保持 2bdf2d71…,不改旧样本,也不放宽新路径的事实冲突检查。
  • 1 项其他合同审查功能的低推理强度测试,暴露上一阶段语义复核在应用注册时全局拒绝配置的问题。固定模型/medium/300s 校验移到语义复核执行入口、Provider 调用之前;其他功能可启动,语义复核本身仍不接受漂移参数。
  • 6 项动态生成器/Prompt 组合测试仍断言旧版 tp06-22。更新为当前 tp06-23 或当前常量,同时保留内容约束;历史封存请求和证据不修改。
  • Schema 分流后还发现合成测试 fixture 不按实际请求选择 Schema,以及业务测试误将“关闭修改追踪”等同于“没有事实冲突策略”。已修正这两处测试装配/断言并保留中间失败记录;当前模板仍使用原来的严格冲突 Schema 指纹。

2. 隔离验证

证据目录:TP06.24.2 QA。测试使用 Memory、临时 SQLite 和可计数的合成 Provider;跨层测试经过实际业务 HTTP → SDK HTTP transport → AI API/worker,不手造成功收据替代执行。没有真实模型调用、实时数据库写入或浏览器可视验收。

最终 AI 全套显式使用带 AI_PLATFORM_ 前缀的 test / memory / provider disabled / 内存 SQLite / local-hash 配置;执行用例注入合成适配器,SQL 存储用例使用临时 SQLite。没有提供真实数据库或模型密钥。

范围 最终证据 结果
SDK 全套与新旧 Schema 指纹 sdk-tests-final-v4.xml 163 通过
AI 全套 ai-runtime-full-final-v3.xml 728 通过,0 失败、0 错误、0 跳过
业务 builder、旧起草/修改证据/intake/计时/真实旧收据及既有跨层语义链 business-compatibility-final-v3.xml 161 项:158 通过、3 跳过
修复跨服务、持久续接及不同父正文撤回基线联合回归 repair-continuation-final-v1.xml 47 通过
Web 同一组 34 个测试文件 web-tests-final-v6.xml 177 通过;TypeScript typecheck 通过
AI OpenAPI 定向检查 ai-openapi-tests-final.xml 2 通过;最终 Schema 修复后只读同步检查仍通过
Contract OpenAPI 定向检查 business-openapi-tests-final.xml 3 通过;最终 Schema 修复后只读同步检查仍通过

业务的 3 项跳过分别是:两个 Memory 专属历史版本分页边界在 SQLite 参数下不适用,以及 SQL 原子回滚在 Memory 参数下不适用。没有将跳过计作通过。

47 项联合回归包含修复链 24 项、worker 与无浏览器续接 21 项、不同父正文的撤回基线 2 项;较早分开运行的结果不另行累加。业务 161 项中已经包含既有 28 项完整跨服务语义链,也不重复统计。Web 工具测试不等于浏览器端到端 UAT,AI/业务全部源码测试也不等于生产部署验收。

并发修复、越权、旧修订、父链篡改、重复提交、失败/取消、修复后遗漏原问题、未解决却声称通过、虚构正文或说明依据,均有合成回归。不同父正文用例从实际起草 worker 生成带明确用户指令支持的非空修改,再经过两次真实代码执行的复核及一次修复,确认撤回恢复采纳前正文;所有 Provider 答案仍是合成替身。

中途失败证据保留,包括原 AI 28 项失败、Schema 分流后的旧 fixture/断言不匹配,以及新撤回测试最初将父候选误当撤回目标的错误期望。后者修正测试语义后通过,未倒改业务实现迎合错误期望;也没有改写历史真实模型结果。第二轮 AI 的 728 项/1 项失败结果,在执行器复用输出路径前已按 SHA-256 校验迁存为 ai-runtime-full-v2-one-failure-preserved.xml,与最终结果分开。重复运行只取各范围最终一次,不累计制造更大的通过数。

关键运行源码的 22 个文件指纹保存在 source-manifest-v1.json,最终回归后逐项复验,0 项漂移。AI 最终完整结果 SHA-256 为 ce50bc1b6f9bd52c385ac2db708a609cab3becf1c78f1b6719a31a98cb7ccc8f。这是选定文件清单与测试证据,不是完整仓库归档、部署证明或数字签名。

2026-09-21 FREEZE 刷新: 后续 RC-05~RC-08 收口修改使原 22 项中的 9 项源码指纹自然失效;冻结前已基于当前字节重算同一 22 项清单,复验为 22/22 存在、0 漂移,manifest SHA-256 为 20abc27cf8456e4e939f66afdab303baa58bd92ee6579fe4de0f47285bb5a4d1。这次刷新不改写 2026-09-10 的原始模型或 JUnit 证据;唯一提交形成后,正式 RC-05 计划仍须从该不可变 commit 重新生成。

3. 运行与验收边界

  1. 本轮未重启 3000、8100、8101。此前健康检查成功不能证明旧后端进程已加载新源码;前端开发模式可能热更新,也不能替代完整部署验收。
  2. worker 默认关闭,尚无真实 PostgreSQL 多进程并发或关闭浏览器后的现场验收。Memory 的首次合同 create → update 也不具备 SQL 事务级原子性。
  3. 本轮合成修复重点验证正文外说明纠正、身份/版本/预算、状态流和撤回,不能冒充真实合同语义修复准确率。
  4. 前一轮真实 SaaS 与 NDA 起草结果不改写。NDA“正文保留多种救济,说明却概括为仅实际损失”的失败事实仍保留;尚须真实模型验证新复核是否发现、修复是否有效及是否产生新问题。
  5. 原先两次真实非空修改的模型段中位耗时约 211 秒,不是整个旅程耗时,也没有证明三分钟目标。新增复核与修复会增加等待,异步交互不能掩盖总时长。
  6. 不开放真实用户注册,不发布模板或 Prompt,不执行双云 UAT,不提交/推送代码,不将本地执行身份称为第三方存证。

4. 后续工作与总目标

下一步先完成受控开发环境部署与普通成员候选链验收,再使用真实 gpt-5.6-sol 测试正文关系、说明矛盾、一次修复与反向错误,并记录各阶段耗时、质量与失败,而不只统计模型接口成功。

原专项方案的总体目标仍未完成:劳动/承揽条款组合、行业场景与 Prompt 模块的真实发布验收、普通成员主旅程及反馈、需求驱动的场景扩充仍需推进。10 名目标用户可用性测试继续按用户要求暂缓,双云验收仍未执行且不阻塞核心产品开发。