feat(harness,rag): dual LLM audit fields, run conclusion, and hybrid quality

Persist provider reasoning and assistant text separately on agent_reasoning_audit
(DeepSeekAssistantMessage path), extract diagnosis_run.conclusion, enrich RAG
tool audit (step_id/query/qualityScore), gate empty mysql tools, drop devtools,
and align MVP docs after live E2E verification.
This commit is contained in:
zhuyongxin
2026-07-28 19:43:13 +08:00
parent 2f40536248
commit 7ae9707a3b
116 changed files with 8364 additions and 1141 deletions
@@ -40,8 +40,8 @@ Fallback 必须在不暴露 Prompt、原始 Draft、原始 Tool 载荷和内部
|---|---|---|---|
| 阶段 1:Diagnosis Agent 硬停止策略 | 已完成 | ISS-016 已实现 Tool Scope 归一化与去重、`GAINED/NO_GAIN` 信息增益、连续 `NO_GAIN` 饱和停止、连续协议错误 `PROGRESS_PROTOCOL_VIOLATED` 受控停止、可修正协议 observation、受控 Fallback、回归测试和真实 E2E | 无;阶段 1 停止策略已收口 |
| 阶段 2:Evidence Repair Schema | 未完成 | Repair 仍保持无 Tool、有限重试、失败后安全降级;Diagnosis Agent 最终输出已使用真实 `DiagnosisDraft` Schema | Evidence Repair 自身尚未注入真实 `DiagnosisDraft` JSON Schema,仍主要依赖 Prompt 文本约束和严格解析 |
| 阶段 3:Reasoning 审计验证与治理 | 部分完成 | V015、独立 `agent_reasoning_audit`、审计 Hook、`reasoning_available=false`、受限查询接口和 `sessionId + runId` 归属校验已实现 | 真实 Provider reasoning metadata 行为、V015 真实迁移验收、访问控制、保留期限和加密要求尚未收敛 |
| 阶段 4:Fallback 信息质量与最终 E2E | 大部分完成 | 已实现有界 `observed_facts`、`validation_issues`、证据范围/缺口和差异化 Fallback;已完成 Diagnosis SUCCESS、信息不足 FALLBACK、Trace/Tool/Token 对账 E2E | reasoning unavailable 场景及 Reasoning Audit 跨表精确核验尚未完成;全部失败路径仍需最终综合验收 |
| 阶段 3:Reasoning 审计验证与治理 | 大部分完成 | V015–V017;`reasoning_content` + `assistant_text` + `content_source`;Hook 优先读 `DeepSeekAssistantMessage.getReasoningContent()`;受限查询返回双字段;`sessionId + runId` 归属校验;2026-07-28 DeepSeek live E2E 两步均 `reasoning_available=true` 且双字段非空;V016 `diagnosis_run.conclusion` | 访问控制、保留期限、加密;非 DeepSeek Provider 回归;reasoning unavailable 专项场景归档 |
| 阶段 4:Fallback 信息质量与最终 E2E | 大部分完成 | 已实现有界 `observed_facts`、`validation_issues`、证据范围/缺口和差异化 Fallback;已完成 Diagnosis SUCCESS、信息不足 FALLBACK、Trace/Tool/Token 对账 E2E;SUCCESS 路径已跨表核验 reasoning 双字段与 run.conclusion | reasoning unavailable 场景归档;全部失败路径仍需最终综合验收 |
本表是当前进度事实,下面各阶段条目仍保留为完整目标。ISS-016 完成的是阶段 1 和阶段 4 的主体能力,并新增模型 Token 与 Tool 拒绝审计;它不替代阶段 2 的 Repair Schema,也不代表阶段 3 的 Reasoning 治理已经完成。
@@ -70,18 +70,20 @@ Fallback 必须在不暴露 Prompt、原始 Draft、原始 Tool 载荷和内部
- 保持 Repair 无 Tool、最多一次、失败即安全 Fallback 的现有边界。
- 覆盖合法修复、Schema 非法、解析失败和二次 EvidenceGuard 失败。
### 阶段 3:Reasoning 审计验证与治理(部分完成)
### 阶段 3:Reasoning 审计验证与治理(大部分完成)
- 使用真实 Provider 验证 reasoning metadata 的键和返回行为。
- Provider 不返回 reasoning 时写入 `reasoning_available=false`,不得伪造内容。
- 验证 V015 数据库迁移和 `sessionId + runId` 精确 reasoning 查询。
- 明确 reasoning 审计接口的访问控制、保留期限和加密要求。
- [x] 使用真实 DeepSeek Provider 验证 thinking 返回路径:专用字段 `DeepSeekAssistantMessage.reasoningContent`(非 metadata)。
- [x] 同表同时落库 `assistant_text`(正文 / tool-call 计划)与 `content_source`(V017)。
- [x] Provider 不返回 reasoning 时写入 `reasoning_available=false`,不得伪造内容(单测覆盖;live unavailable 场景可再归档)。
- [x] 验证 V015–V017 迁移与 `sessionId + runId` 精确 reasoning 查询(含双字段 API)。
- [ ] 明确 reasoning 审计接口的访问控制、保留期限和加密要求。
### 阶段 4:Fallback 信息质量与最终 E2E(大部分完成)
- 工具成功但无法构造 verified snapshot 时,返回有界 `observed_facts` 和 `validation_issues`。
- 确保普通 Trace 只记录 `reasoning_available/reasoning_bytes`,不返回 reasoning 原文。
- 运行至少一个 Diagnosis SUCCESS、一个信息化 FALLBACK 和一个 reasoning unavailable 的真实 E2E。
- 确保普通 Trace 只记录 `reasoning_available/reasoning_bytes` 等有界 metadata,不返回 reasoning/assistant 原文;`run.conclusion` 可为业务结论读出。
- [x] Diagnosis SUCCESS 真实 E2E:SSE + Trace + Reasoning 双字段 + ToolInvocation + `diagnosis_run.conclusion` 对账(2026-07-28)。
- [ ] 再归档一个 reasoning unavailable 与信息化 FALLBACK 的跨表精确核验样本。
- 按 exact `sessionId + runId` 核对 SSE、Trace、Reasoning Audit、ToolInvocation 和 Run 终态。
## 6. 验收标准