4.0 KiB
4.0 KiB
阶段 E:生产链切换(第一部分:授权终态合同)
日期:2026-08-22 总 plan:2026-08-22-agent-example整体收敛总plan.md 状态:第一部分完成并提交;第二部分(写作/检测智能体接入框架派发、授权后继续的接线、真实生产烟测)另行启动,真实模型调用需人工授权。
1. 意图
删除补证/重写的业务硬上限(补证≤3 / 重写≤2),改为授权终态:检查发现缺口后系统停在结构化报告,由主代理转述给人,人授权后以新运行继续。技术保护(超时、预算、取消)保留在执行策略层。
2. 合同设计(本部分核心决策)
授权门只挡昂贵的模型重调用,不挡廉价的确定性检索:
语义检查发现证据缺口
→ 确定性检索(evidence_provider,只读、无模型开销)
├─ 零命中 = 新设定提案 → 升格 passed 进人闸(原行为保留)
└─ 命中 = 需要模型重写 → AUTHORIZATION_REQUIRED 授权终态
携带:缺口清单、机械/语义检查快照、下一 attempt、重组上下文哈希
人授权后:编排方以新运行继续(新候选版本,会话可复用)
依据:CAS 链按运行唯一(ON CONFLICT (run_id) DO NOTHING),同运行不能开新轮;授权后的继续天然是新运行,与"一章复用同一写作智能体会话"通过框架会话续接(阶段 D 能力)组合。
3. 文件台账
| 处置 | 文件 | 原因 |
|---|---|---|
| 修改 | run_writer_pipeline.py |
删除 MAX_EVIDENCE_REQUESTS/MAX_REWRITES 常量、自动补证/重写循环与两个上限错误码;缺口分支改为"检索→零命中升格/命中授权终态";单次收敛文档化。CAS 基元(含 start_next)保留,状态机闭集不动 |
| 修改 | produce_next_chapter.py |
AUTHORIZATION_REQUIRED 显式分支:输出结构化缺口报告与授权指引;模块头口径同步 |
| 修改 | test_run_writer_pipeline.py |
两个自动补证测试改写为授权终态合同(缺口停终态、授权报告落结果文件);provider 改为真实检索推进 |
| 修改 | test_production_evidence_reassemble.py |
命中重写测试改为授权终态(写手单次调用、details 带 nextAttempt 与重组上下文哈希);零命中升格测试不变 |
| 修改 | test_candidate_cas.py |
CAS 上的补证环测试改为授权终态链断言(create→CHECKING→REJECTED,revision=3) |
| 修改 | test_writer_acceptance.py |
失败码 fixture 对齐(REWRITE_LIMIT_REACHED → AUTHORIZATION_REQUIRED) |
| 修改 | 05-创作流程领域、write-next-chapter/SKILL.md、dashboard/server.py 注释 |
补证口径全仓同步(检索语义不变、命中停授权终态) |
| 保留 | production_evidence_reassemble.py |
确定性检索是新合同的组成部分(授权前置检索),职责不变 |
| 保留 | start_next 等 CAS 基元 |
总 plan 不重造状态机;续跑走新运行的 create 链 |
| 遗留 | 授权后继续的编排接线(新运行 + 重组上下文 + 会话续接) | 阶段 E 第二部分 |
| 遗留 | 写作/检测智能体框架派发接入 | 阶段 E 第二部分;真实烟测需人工授权 |
4. 验证
- 管线测试:10 项通过(含授权终态 2 项新合同测试)。
- 补证重组装测试:5 项通过(命中授权终态 + 零命中升格)。
- CAS 测试:离线全通过;真实库集成测试(PostgresCasStateStore)全部通过。
- 候选接受测试:通过(失败码对齐后)。
- 全量离线清单:102 通过、8 项外部依赖阻断、0 失败。
- 技能严格审计:58 个 Skill,阻断 0;索引一致性、架构门禁、
git diff --check通过。 - 旧口径零残留:
补证≤3 / 重写≤2 / EVIDENCE_REQUEST_LIMIT / REWRITE_LIMIT全仓检索无生产代码引用(写手篇幅适配器的"≤3 遍重抽"是独立技术重试合同,不属于补证/重写,保留)。