通过 SSE 实时订阅会话事件流:助手输出消息、工具调用、状态变更。连接建立后服务端立即下发 : connected 注释行。
前提
已创建会话,详见创建 Session。{session_id} 形如 sesn_xxx...。
接口
GET /sessions/{session_id}/events/stream
请求需带 Accept: text/event-stream。连接建立后服务端立即下发 : connected 注释行,随后实时推送会话事件。
事件信封
data 字段是 Message 对象,公共字段如下:
字段 | 类型 | 说明 |
|---|---|---|
| string | 恒为 |
| string | 事件 ID(前缀 |
| string | ISO 8601 时间戳 |
| string |
|
| string | 事件类型,见下表 |
| array | ContentBlock 数组,结构同发送侧 |
| object | 事件附加信息(如 thread_id、call_id 等) |
服务端推送事件类型
type | 含义 |
|---|---|
| 助手输出消息,可流式分块(按 |
| 内置工具调用请求 |
| 内置工具执行结果 |
| 自托管函数调用请求,需客户端回填 |
| 服务端确认收到的函数结果回显 |
| MCP 工具调用请求 |
| MCP 工具执行结果 |
| 会话状态变更(含 |
session_status 与 stop_reason
data.content[0].data 携带具体状态:
-
session_status:running|idle|terminated -
stop_reason仅在状态切到idle时出现,三种取值:{"type": "end_turn"}:本轮正常结束{"type": "requires_action", "event_ids": [...]}:等待客户端响应(如审批工具调用、回填函数结果),event_ids列出待处理事件{"type": "retries_exhausted"}:重试已耗尽,本轮失败