cURL
事件类型
SSE 帧的 type 取值:
| type | 说明 |
|---|---|
message | 助手输出消息,可流式分块 |
tool_call | 内置工具调用请求 |
tool_call_output | 内置工具执行结果 |
tool_approval_request | 工具审批请求;工具是否需要审批以本事件为准,data 携带 batch_id、call_id、name、arguments、tool_type |
tool_approval_response | 工具审批裁决,双向事件;requires_action 下发纯 interrupt 时,服务端为批次内每个尚未执行的调用(含已裁决但因批次未收齐而未执行的调用)补发 result=deny 并伴随对应 *_call_output(is_error=true),该配对仅用于展示与审计、尽力而为,待审批集合仍以 pending_call_ids 为准 |
function_call | 自托管函数调用请求,需客户端回填 function_call_output |
function_call_output | 服务端确认收到的函数结果回显 |
mcp_call | MCP 工具调用请求 |
mcp_call_output | MCP 工具执行结果 |
session_status | 会话状态变更,含 stop_reason |
type=error 为独立分支:错误详情位于 Message 顶层的 error 对象(error.code / error.message),不在 content[].data 中。
is_error
仅 tool_call_output / mcp_call_output 出现,写在 Message 顶层(不在 content[].data 内):true 表示执行失败/中断/拒绝。此时 data 仍为 ToolCallOutput / McpCallOutput,至少含 call_id 与 output。读顶层 is_error 判成败,读 data.output 取输出。
Delta 增量流
默认情况下,每个事件仅在生成完成后下发一帧完整 Message(status: "completed")。若希望文本类事件(如 message、reasoning)在生成过程中流式逐块推送,可在请求时用 event_deltas[] 查询参数为指定事件类型开启增量流。该参数可重复传入以声明多个类型;未声明的事件类型仍按单帧完整 Message 下发。
event_id 归并到同一事件:
帧 type | 说明 |
|---|---|
event_start | 事件开始帧,event.id 即该事件最终完整 Message 的 id,event.type 为事件类型(message / reasoning);该帧自身不含 object / content |
event_delta | 增量帧,event_id 对应 event_start 的 event.id;delta.content 为本次新增的 ContentBlock 片段,delta.index 为内容块序号 |
message / reasoning | 事件结束时下发的完整 Message(object: "message"、status: "completed"),content 为聚合后的完整内容,与未开启增量时一致 |
event_delta 帧字段:
| 字段 | 说明 |
|---|---|
type | 恒为 event_delta |
event_id | 所属事件 ID,等于 event_start 的 event.id,也等于最终完整 Message 的 id;用于将增量帧归并到对应事件 |
delta.type | 恒为 content_delta |
delta.index | 内容块在 content 数组中的序号 |
delta.content | 本次新增的 ContentBlock 片段,如 {"type":"text","text":"…"} |
reasoning 与 message 均开启增量):
拼接文本时按
event_id + delta.index 顺序累加各 event_delta 的 delta.content;事件结束时下发的完整 Message 携带聚合后的完整内容,可用于校验。reasoning 事件可能只有 event_start 与完整 Message、不含 event_delta(思考预览不携带思考文本)。鉴权
string
header
必填
DashScope API Key
Header 参数
enum<string>
必填
固定为 text/event-stream
text/event-stream
路径参数
string
必填
查询参数
enum<string>[]
为指定事件类型开启 Delta 增量流,文本内容将在生成过程中逐块推送。可重复传入以声明多个类型(如 message、reasoning);未声明的类型仍以单帧完整 Message 下发。开启后该类型事件先下发 type=event_start 帧(event.id 即最终完整 Message 的 id),随后下发若干 type=event_delta 增量帧(delta.content 为新增的 ContentBlock 片段、delta.index 为内容块序号),最后下发聚合后的完整 Message;客户端按 event_id + delta.index 顺序累加 delta.content
响应
200-text/event-stream
普通事件
string
恒为 message
string
事件 ID(前缀 msg_ 或 out_)。客户端用此 ID 在业务层去重
string
ISO 8601 时间戳
enum<string>
user,assistant,tool
enum<string>
服务端推送事件类型,详见事件类型表。type=error 见独立分支
message,tool_call,tool_call_output,tool_approval_request,tool_approval_response,function_call,function_call_output,mcp_call,mcp_call_output,session_status
string
object[]
ContentBlock 数组:含发送侧的 text/image/video/file/data;响应侧另可出现 audio(工具输出附件)与 refusal(模型拒绝)
boolean
仅 tool_call_output / mcp_call_output 出现,写在 Message 顶层(不在 content[].data 内):true 表示执行失败/中断/拒绝。读顶层 is_error 判成败,读 data.output 取输出
object
事件附加信息(如 thread_id、call_id 等)