# 分页查询会话执行时间线

`GET` `/api/sessionAnalysis/sessionDetail`

按记录时间倒序返回对话轮和轮间压缩事件，不读取正文和预览、不计算总数。压缩事件最多附带5条模型请求引用，可直接查看或下载；更多引用通过messageTrace查询。运行中翻页不保证快照一致性。

## 请求参数

### 请求头参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| X-Principal-Id | integer | 否 | 身份主体ID（Long类型）。通过API访问时必须传递以标识操作主体；通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。 |

### Query 参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| sessionId | integer | 是 | 会话ID |
| page | integer | 是 | 页码，从1开始 |
| pageSize | integer | 是 | 每页记录数，取值范围1~100 |

## 响应

### 200

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | SessionAnalysisPageVO | 响应数据 |
|     sessionId | integer | 会话ID |
|     items | array | 当前页时间线记录 |
|         type | string | 时间线记录类型，可选值：TURN、COMPACTION |
|         messageId | integer | 下钻使用的助手消息或压缩承载消息ID，尚无回复时为空 |
|         userMessageId | integer | 用户输入消息ID，可为空 |
|         assistantMessageId | integer | 助手消息ID；压缩事件为空 |
|         status | string | 已有执行状态，未知时为UNKNOWN，可选值：PROCESSING、COMPLETED、FAILED、WAITING_PERMISSION、UNKNOWN |
|         modelName | string | 消息表模型名称，不代表所有调用使用同一模型 |
|         createdTime | string | 记录创建时间 |
|         startTime | string | 消息已有开始时间 |
|         endTime | string | 消息已有结束时间 |
|         tokenUsage | TokenUsageVO | 消息级已有Token统计 |
|             promptTokens | integer | 输入Token，未知时为空 |
|             completionTokens | integer | 输出Token，未知时为空 |
|             totalTokens | integer | 总Token，直接使用存储值 |
|             cachedTokens | integer | 缓存Token |
|             reasoningTokens | integer | 推理Token |
|         llmRequests | array | 压缩事件最多5条请求引用；TURN为空列表 |
|             llmRequestId | string | 一份已留存请求的稳定标识，可直接查看或下载 |
|             kind | string | 调用类型，可选值：STEP、COMPACT |
|             stepIndex | integer | STEP从1起；轮间压缩为0；轮内压缩为锚定步骤 |
|             attempt | integer | STEP请求体版本，不是网络重试次数；COMPACT为空 |
|             compactSeq | integer | COMPACT批内序号；STEP为空 |
|             rerunId | string | 重跑另存标识；基础归档为空 |
|         hasMoreLlmRequests | boolean | 压缩事件是否还有更多请求；TURN为false |
|     page | integer | 页码，从1开始 |
|     pageSize | integer | 每页记录数，取值范围1~100 |
|     hasMore | boolean | 是否还有下一页 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 400

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 500

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

