Add repairable INVALID_PROGRESS_PROTOCOL observations, independent PROGRESS_PROTOCOL_VIOLATED saturation, and controlled release paths. Archive the OpenSpec change after syncing main specs and devflow.
39 lines
2.7 KiB
Markdown
39 lines
2.7 KiB
Markdown
# Diagnosis 信息增益停止契约 Evidence
|
||
|
||
## 证据
|
||
|
||
| 来源 | 证据 | 结论 | 是否已汇报 |
|
||
| --- | --- | --- | --- |
|
||
| `HarnessEvidenceTools` / request records | Agent-facing Tool 直接使用业务 request 生成 Schema | 要增加 `previous_observation + input` 必须显式演进 Tool Schema | 是 |
|
||
| `HarnessToolInterceptor` | 曾把完整 `agentResult` 放入 Tool Response | 必须拆分控制视图与模型观察 | 是 |
|
||
| `RunContext` / `DiagnosisHarnessCore.startRun` | 结构不可变 + 线程安全 handle | 进展 tracker 放 RunContext,不扩 Redis 枚举 | 是 |
|
||
| `CanonicalInvocationStore` | 仅 begin/find/markReady/markError | tracker 只存 identity,结束时投影 | 是 |
|
||
| `RagResultProjector` | 只按 evidence 空否生成状态 | 需兼容 `relevanceLevel/relevance_level` | 是 |
|
||
| `DiagnosisReleaseUseCase` / `EvidenceGuard` | 强制 draft 非空且空 analysis=`ANALYSIS_MISSING` | 与合法无结论冲突,需统一 Release | 是 |
|
||
| `ChatApplicationUseCase.recoverBudgetExhaustion` | 未提交预算 Fallback 绕过 Release | 迁移意图到 Diagnosis Release | 是 |
|
||
| 前端 `app.js` | 已渲染 observed_facts/sources/limitations/next_steps | 不新增公开 SSE 字段 | 是 |
|
||
| 真实 E2E(实施前) | 多轮空转后 `BUDGET_EXHAUSTED`/`INTERNAL_FAILURE` | 需要信息增益停止契约 | 是 |
|
||
| 真实 E2E(实施后) | `iss016-final-20260726-a` → `MISSING_REQUIRED_CONTEXT` FALLBACK | 未知 Query 可正常业务结束 | 是 |
|
||
| Token/拒绝审计 E2E | 9 次 `INVALID_PROGRESS_PROTOCOL` 拒绝不累计 NO_GAIN | 需独立协议错误阈值与 STOP | 是 |
|
||
|
||
## Evidence-driven 结论
|
||
|
||
- 结论:Tool Envelope 是 L3 模型侧协议变更,业务 request 在 interceptor 解包后保持不变。
|
||
- 证据:三个 FunctionToolCallback inputType、adapter bridge 只收业务 JSON。
|
||
- 风险:框架 Schema/拦截器假设不匹配。
|
||
- 用户确认:不需要(技术事实)
|
||
|
||
- 结论:协议错误不得累计为 `NO_GAIN`,必须独立 `PROGRESS_PROTOCOL_VIOLATED`。
|
||
- 证据:真实审计 9 次协议拒绝 + 13 Agent 轮次;OpenSpec design 6.1。
|
||
- 风险:只返回通用错误码不足以自修复。
|
||
- 用户确认:已通过 Task 8 OpenSpec 与实现收口
|
||
|
||
- 结论:Release 是业务 Fallback 唯一决策入口;Application 不重建业务内容。
|
||
- 证据:`DiagnosisReleaseUseCase` 统一路径 + Application 窄化预算终态持久化。
|
||
- 用户确认:已确认
|
||
|
||
## 实现期补充证据
|
||
|
||
- Draft 合同失败窄化降级:非法 Draft 丢弃;仅当 ProgressSnapshot 有已验真 facts 时发 `INSUFFICIENT_EVIDENCE`。
|
||
- Task 8 focused tests:tracker / interceptor / release / agent-loop / config 全部通过。
|