# 诊断会话表:diagnosis_session **状态**:当前主表 **来源**:`V005__create_session_storage.sql`、`V008__add_answer_to_diagnosis_session.sql`、`DiagnosisSession` ## 定位 `diagnosis_session` 是一次 Chat 或 AIOps 诊断的会话级主记录,负责保存用户问题、执行状态、最终答案、总体统计和自评估结果。 ## 字段 | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `id` | BIGINT | 是 | 自增主键 | | `session_id` | VARCHAR(64) | 是 | 会话唯一 ID,Trace API 和反馈接口使用它 | | `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 | ## 关系 - `agent_step.session_id` 逻辑关联 `diagnosis_session.session_id`。 - `tool_invocation.session_id` 逻辑关联 `diagnosis_session.session_id`。 - `case_library.diagnosis_id` 在自动生成案例时保存 `diagnosis_session.session_id`。 ## 注意点 - 当前没有数据库外键,Trace 聚合依赖 `session_id`。 - `self_evaluation` 是扩展容器,里面可能包含 `rule_evaluation`、`verifier_evaluation`、`aiops_rule_evaluation`。