# 查询消息部件详情

`GET` `/api/session/message-part-detail`

按sessionId和partId读取可见部件，校验当前主体与会话归属。已删除或隐藏部件不可访问。返回TEXT、REASONING或TOOL的完整展示内容，不返回内部提供商字段。API调用须传X-Principal-Id，页面调用使用登录身份。

## 请求参数

### 请求头参数

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

### Query 参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| sessionId | integer | 是 | 部件所属会话ID |
| partId | integer | 是 | 部件ID |

## 响应

### 200

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | MessagePartItemVO | 响应数据 |
|     partId | integer | 部件ID |
|     messageId | integer | 所属消息ID |
|     partType | string | 部件类型，可选值：TEXT（文本）、TOOL（工具调用）、REASONING（推理思考）。SUMMARY（上下文压缩摘要）类型部件已被本接口过滤，不会返回 |
|     content | string | 部件内容（JSON字符串，需解析后使用，内部结构根据partType不同而不同）。

**partType=TEXT 时的字段：**
- text：文本内容（必填，String）
- synthetic：是否为合成文本，即系统生成的提示信息，仅供UI展示、不回灌LLM（可选，Boolean，默认false）
- startTime：文本生成开始时间，首chunk到达时刻（可选，DateTime）
- endTime：文本生成结束时间（可选，DateTime）

**partType=TOOL 时的字段：**
- callId：工具调用唯一标识（必填，String）
- toolName：工具名称（必填，String）
- status：执行状态（必填，String），可选值：PENDING（等待执行）、RUNNING（执行中）、COMPLETED（执行成功）、FAILED（执行失败）
- title：工具调用的展示标题（可选，String）
- arguments：工具调用参数，JSON格式字符串（可选，String）
- output：工具执行输出结果（可选，String）
- errorMessage：执行失败时的错误信息（可选，String）
- generatingStartTime：LLM首次探测到工具名的时刻，早于参数生成完成（可选，DateTime）
- startTime：工具执行开始时间（可选，DateTime）
- endTime：工具执行结束时间（可选，DateTime）
- hidden：是否UI静默工具（可选，Boolean）。本接口已过滤hidden=true的部件，此值恒为false

**partType=REASONING 时的字段：**
- text：推理思考文本内容（必填，String）
- startTime：推理开始时间（可选，DateTime）
- endTime：推理结束时间（可选，DateTime） |
|     promptTokens | integer | 本次LLM调用的prompt token数 |
|     completionTokens | integer | 本次LLM调用的补全token数 |
|     totalTokens | integer | 本次LLM调用的总token数 |
|     cachedTokens | integer | 缓存命中的prompt token数 |
|     reasoningTokens | integer | 推理消耗的completion token数 |
|     stepIndex | integer | 所属Agent循环步骤号（从1开始；0表示COMPACT摘要或存量数据未知） |
|     startTime | string | 部件开始时间（TEXT/REASONING为首chunk到达，TOOL为开始执行） |
|     endTime | string | 部件结束时间，为空表示进行中 |
|     modelResponseId | string | 模型响应ID |
|     gmtCreate | string | 创建时间 |
| 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处理 |

