refactor(trace): enforce run-only diagnosis model
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 数据模型总览
|
||||
|
||||
**更新日期**:2026-07-10
|
||||
**更新日期**:2026-07-20
|
||||
**状态**:当前可运行架构
|
||||
|
||||
## 1. 定位
|
||||
@@ -13,7 +13,7 @@
|
||||
- 知识库:`api_document`、`knowledge_domain`、Milvus/Zilliz metadata
|
||||
- 反馈沉淀:`case_library`
|
||||
|
||||
`diagnosis_session` 仍保留为历史兼容和回滚表,不再是新执行写入的主模型。
|
||||
当前运行时只使用 `chat_session + diagnosis_run`;旧 `diagnosis_session` 表不属于当前版本契约。
|
||||
|
||||
## 2. 总体关系
|
||||
|
||||
@@ -44,6 +44,7 @@ erDiagram
|
||||
varchar agent_flow
|
||||
longtext answer
|
||||
json self_evaluation
|
||||
json orchestration_trace
|
||||
varchar feedback
|
||||
}
|
||||
|
||||
@@ -111,6 +112,7 @@ erDiagram
|
||||
| `agent_flow` | `CHAT` / `AI_OPS` |
|
||||
| `answer` | 本次运行最终答复或告警报告 |
|
||||
| `self_evaluation` | 本次运行的 rule/verifier/aiops 自评估容器 |
|
||||
| `orchestration_trace` | nullable JSON;复杂 Chat 的 StateGraph 路由摘要,非 StateGraph Run 可为空 |
|
||||
| `feedback` | 本次运行的用户反馈 |
|
||||
|
||||
同一个 `sessionId` 可以有多个 `runId`。Trace、反馈、评测和案例沉淀都应优先使用 `runId`,避免多轮同 session 下的数据混合。
|
||||
@@ -139,7 +141,19 @@ erDiagram
|
||||
|
||||
`$.no_evidence` 只表示“本次工具查询未检索到匹配证据”,不能被解释为“问题不存在”或“根因已排除”。
|
||||
|
||||
## 5. 反馈沉淀模型
|
||||
## 5. Run 级审计分层
|
||||
|
||||
一次 Run 的可审计信息分为三层,不能互相替代:
|
||||
|
||||
| 层次 | 存储 | 语义 |
|
||||
|---|---|---|
|
||||
| 执行明细 | `agent_step`、`tool_invocation` | 模型步骤、工具输入输出、检索细节和证据事实 |
|
||||
| 质量评估 | `diagnosis_run.self_evaluation` | rule/verifier/aiops 判断、Gatekeeper 审计、Prompt 版本和允许输出材料 |
|
||||
| 编排摘要 | `diagnosis_run.orchestration_trace` | StateGraph transitions、final node、termination reason、degraded、evidence retry count |
|
||||
|
||||
`orchestration_trace` 只通过 exact Run 的 `run.orchestrationTrace` 暴露,Trace 响应不再包含兼容 `session` 投影。Run 状态仍只表达执行生命周期:安全 Fallback 是 `SUCCESS + degraded=true`,只有无法生成安全响应或未处理失败才是 `FAILED`。
|
||||
|
||||
## 6. 反馈沉淀模型
|
||||
|
||||
`useful` 反馈会触发 `CaseLibraryService.createFromRun`。
|
||||
|
||||
@@ -148,7 +162,7 @@ erDiagram
|
||||
| 字段 | 来源 |
|
||||
|---|---|
|
||||
| `case_id` | UUID |
|
||||
| `diagnosis_id` | 新数据为 `diagnosis_run.run_id`;历史数据可能为 `diagnosis_session.session_id` |
|
||||
| `diagnosis_id` | `diagnosis_run.run_id` |
|
||||
| `source_type` | `AUTO` |
|
||||
| `fault_category` | 当前默认 `GENERAL` |
|
||||
| `title` | run query 前 100 字符 |
|
||||
@@ -156,7 +170,7 @@ erDiagram
|
||||
| `solution` | run answer |
|
||||
| `created_by` | `system` |
|
||||
|
||||
## 6. self_evaluation 结构
|
||||
## 7. self_evaluation 结构
|
||||
|
||||
`diagnosis_run.self_evaluation` 是运行级 JSON 容器:
|
||||
|
||||
@@ -170,16 +184,19 @@ erDiagram
|
||||
|
||||
Chat 通常写入 `rule_evaluation` 和 `verifier_evaluation`;AIOps 写入 `aiops_rule_evaluation`。
|
||||
|
||||
## 7. 当前边界和后续
|
||||
`orchestration_trace` 不放入该 JSON,避免把答案质量和 Graph 路由混成同一审计维度。
|
||||
|
||||
## 8. 当前边界和后续
|
||||
|
||||
当前边界:
|
||||
|
||||
- `chat_session` 只存会话元数据,不存完整正文历史。
|
||||
- `diagnosis_run` 存一次运行的长期审计状态。
|
||||
- `agent_step.run_id` 和 `tool_invocation.run_id` 是 Trace、Verifier、Eval 的运行边界。
|
||||
- `diagnosis_run.orchestration_trace` 是 nullable Run-owned Graph 摘要;非 StateGraph Run 可以为空。
|
||||
- 当前实现主要使用逻辑关联,不依赖数据库外键。
|
||||
- `case_library.diagnosis_id` 是过渡字段,新值按 `run_id` 解释,旧值可能按 `session_id` 解释。
|
||||
- `diagnosis_session` 只作为历史兼容和回滚表保留。
|
||||
- 当前 Java 运行时不存在 `diagnosis_session` entity/repository 或 fallback。
|
||||
|
||||
后续可增强:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user