# 诊断会话表:diagnosis_session **状态**:历史兼容和回滚表 **来源**:`V005__create_session_storage.sql`、`V008__add_answer_to_diagnosis_session.sql`、`DiagnosisSession` ## 定位 `diagnosis_session` 是旧版 session 级诊断主记录。`V011` 之后,新 Chat/AIOps 执行的运行态写入已经切到 `chat_session + diagnosis_run`;本表保留用于历史兼容、迁移回填和回滚比较。 ## 字段 | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `id` | BIGINT | 是 | 自增主键 | | `session_id` | VARCHAR(64) | 是 | 旧版会话唯一 ID,也是兼容 run 回填来源 | | `query` | TEXT | 是 | 用户原始问题或 AIOps 输入摘要 | | `status` | VARCHAR(16) | 否 | `PENDING`、`RUNNING`、`SUCCESS`、`FAILED` | | `agent_flow` | VARCHAR(32) | 否 | `CHAT` 或 `AI_OPS` | | `total_duration_ms` | INT | 否 | 总耗时,单位毫秒 | | `total_token_count` | INT | 否 | 总 Token 消耗 | | `step_count` | INT | 否 | Agent 步骤数 | | `tool_call_count` | INT | 否 | 工具调用次数 | | `answer` | LONGTEXT | 否 | 返回给用户的最终答案 | | `self_evaluation` | JSON | 否 | rule、verifier、aiops 等自评估结果容器 | | `feedback` | VARCHAR(16) | 否 | 用户反馈:`useful`、`not_useful` 或空 | | `created_at` | DATETIME | 是 | 创建时间 | | `updated_at` | DATETIME | 是 | 更新时间 | ## 索引 | 索引 | 字段 | 用途 | |---|---|---| | `session_id` unique | `session_id` | 会话唯一约束 | | `idx_created_at` | `created_at` | 按时间查询 | | `idx_status` | `status` | 按状态筛选 | | `idx_agent_flow` | `agent_flow` | 区分 Chat / AIOps | ## 关系 - 迁移时每条 `diagnosis_session` 会生成一条兼容 `diagnosis_run`。 - 历史 `agent_step.run_id` 和 `tool_invocation.run_id` 会尽量从兼容 `diagnosis_run` 回填。 - 历史自动案例可能仍使用 `case_library.diagnosis_id = diagnosis_session.session_id`。 ## 注意点 - 新执行不应再把 query、answer、self_evaluation、feedback、统计计数写入本表。 - 新 Trace 聚合优先读取 `diagnosis_run + agent_step.run_id + tool_invocation.run_id`。 - 历史 fallback 仅在没有 run-backed 数据时读取本表。