Skip to main content
Session and Event

订阅 Event SSE 事件流

通过 SSE 实时订阅会话事件流:助手输出消息、工具调用、状态变更。连接建立后服务端立即下发 : connected 注释行。

前提

已创建会话,详见创建 Session{session_id} 形如 sesn_xxx...

接口

GET /sessions/{session_id}/events/stream 请求需带 Accept: text/event-stream。连接建立后服务端立即下发 : connected 注释行,随后实时推送会话事件。

事件信封

data 字段是 Message 对象,公共字段如下:

字段

类型

说明

object

string

恒为 message

id

string

事件 ID(前缀 msg_out_)。客户端用此 ID 在业务层去重

created_at

string

ISO 8601 时间戳

role

string

user | assistant | tool

type

string

事件类型,见下表

content

array

ContentBlock 数组,结构同发送侧

metadata

object

事件附加信息(如 thread_id、call_id 等)

服务端推送事件类型

type

含义

message

助手输出消息,可流式分块(按 sequence_number 累加)

tool_call

内置工具调用请求

tool_call_output

内置工具执行结果

function_call

自托管函数调用请求,需客户端回填 function_call_output

function_call_output

服务端确认收到的函数结果回显

mcp_call

MCP 工具调用请求

mcp_call_output

MCP 工具执行结果

session_status

会话状态变更(含 stop_reason,见下文)

session_statusstop_reason

data.content[0].data 携带具体状态:
{
  "object": "message",
  "type": "session_status",
  "content": [{
    "type": "data",
    "data": {
      "session_status": "idle",
      "stop_reason": {"type": "end_turn"}
    }
  }]
}
  • session_statusrunning | idle | terminated
  • stop_reason 仅在状态切到 idle 时出现,三种取值:
    • {"type": "end_turn"}:本轮正常结束
    • {"type": "requires_action", "event_ids": [...]}:等待客户端响应(如审批工具调用、回填函数结果),event_ids 列出待处理事件
    • {"type": "retries_exhausted"}:重试已耗尽,本轮失败

订阅示例

curl -N "$AGENTSTUDIO_URL/sessions/sesn_xxx/events/stream" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Accept: text/event-stream"
响应(节选):
: connected

event: message
data: {"object":"message","id":"msg_001","created_at":"2025-10-24T08:15:30.500Z","role":"assistant","type":"message","status":"completed","sequence_number":0,"content":[{"type":"text","text":"开始分析"}]}

event: message
data: {"object":"message","id":"out_8f2a","created_at":"2025-10-24T08:15:32.100Z","role":"assistant","type":"tool_call","status":"completed","content":[{"type":"data","data":{"name":"bash","arguments":{"command":"head -5 /mnt/session/uploads/sales.csv"},"call_id":"call_xxx"}}]}

:keepalive

event: message
data: {"object":"message","id":"msg_002","created_at":"2025-10-24T08:15:35.800Z","role":"assistant","type":"session_status","status":"completed","content":[{"type":"data","data":{"session_status":"idle","stop_reason":{"type":"end_turn"}}}]}