订阅线程事件流
本接口用于通过 SSE(Server-Sent Events)订阅指定线程的事件,连接保持打开并持续推送事件。
权限说明
使用 API Key 鉴权调用 API 流程,具体调用流程,请查看认证鉴权。
请求参数
固定为 text/event-stream。
断线续传时传入上次收到的事件标识,从该事件之后继续推送;不传时只推送订阅之后的新事件。
格式不正确或该事件不存在时,事件流推送 global.disposed 事件,并在 reason 中说明原因。
会话标识。
会话不存在时返回 404;会话不属于当前账号时返回 403。
线程标识。
主线程的标识与会话标识相同。
线程不存在时返回 404。
需要推送预览帧的事件类型,可传多个,最多 100 个。
可选值:agent.message(逐段输出消息内容)、agent.thinking(推送思考开始提示)。
不传时只推送完整事件帧。也支持 event_deltas 写法。
显示子属性
隐藏子属性
GET /api/dma/v1/sessions/{session_id}/threads/{thread_id}/stream?event_deltas[]=agent.message HTTP/1.1
Host: api.dumate.cn
Authorization: Bearer <YOUR_API_KEY>
Accept: text/event-stream
示例代码
curl -g -N --location --request GET "https://api.dumate.cn/api/dma/v1/sessions/ses_gffe5e36678cd3ffe2PBFiopsq4cl0P/threads/ses_gffe5e36678cd3ffe2PBFiopsq4cl0P/stream?event_deltas[]=agent.message" \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Accept: text/event-stream'
返回响应
固定为 text/event-stream。
事件标识,sevt_ 前缀。
事件类型。
用户事件:user.message、user.interrupt、user.tool_confirmation、user.custom_tool_result。
智能体事件:agent.message(回复消息)、agent.thinking(开始思考)、agent.tool_use / agent.tool_result(调用内置工具及其结果)、agent.mcp_tool_use / agent.mcp_tool_result(调用 MCP 工具及其结果)、agent.custom_tool_use(调用自定义工具,等待调用方回填)、agent.thread_message_sent / agent.thread_message_received(多 agent 场景下线程间消息)、agent.thread_context_compacted(上下文被压缩)。
会话事件:session.status_running、session.status_idle、session.status_rescheduled、session.status_terminated、session.updated(通过更新会话接口修改会话的 agent 配置时触发;修改 title、metadata、budget 不触发)、session.deleted、session.usage(累计用量快照)、session.error(运行出错)、session.thread_created、session.thread_status_running / _idle / _rescheduled / _terminated。
span 事件:span.model_request_start / span.model_request_end(一次模型请求开始、结束)。
处理时间,RFC 3339 格式,UTC。
内容块列表。
user.message、agent.message、agent.tool_result 等事件返回。
显示子属性
隐藏子属性
内容块,例如 {"type": "text", "text": "..."}。
显示子属性
隐藏子属性
会话进入空闲的原因。
仅 session.status_idle 返回。
显示子属性
隐藏子属性
停止原因。
可选值:end_turn(本轮正常结束,可以发送下一条消息)、requires_action(等待工具确认或工具结果)、retries_exhausted(重试耗尽或达到费用上限,查看 session.error;达到费用上限时错误类型为 billing_error)、refusal(模型拒答)。
等待确认或回填的事件标识,仅 stop_reason.type 为 requires_action 时返回。
显示子属性
隐藏子属性
停止详情;没有时为 null。
仅 session.status_idle 返回。
显示子属性
隐藏子属性
累计用量。
仅 session.usage 返回。
显示子属性
隐藏子属性
输入 token 数。
输出 token 数。
命中缓存的输入 token 数。
写入缓存的 token 数。
显示子属性
隐藏子属性
写入 1 小时缓存的输入 token 数。
写入 5 分钟缓存的输入 token 数。
服务端工具调用次数。
显示子属性
隐藏子属性
web_fetch 调用次数。
web_search 调用次数。
实际运行秒数。
费用。
显示子属性
隐藏子属性
金额,字符串格式。
货币,固定为 POINT(DuMate 积分)。
工具名称,例如 read。
仅 agent.tool_use、agent.mcp_tool_use、agent.custom_tool_use 返回。
工具输入参数。
仅 agent.tool_use、agent.mcp_tool_use、agent.custom_tool_use 返回。
显示子属性
隐藏子属性
权限判定结果,例如 allow。
仅 agent.tool_use、agent.mcp_tool_use 返回。
权限判定依据。
仅 agent.tool_use、agent.mcp_tool_use 返回。
显示子属性
隐藏子属性
生效的权限策略,例如 always_allow。
对应的 agent.tool_use 事件标识。
仅 agent.tool_result 返回。
是否执行失败。
agent.tool_result、span.model_request_end 返回。
对应的 span.model_request_start 事件标识。
仅 span.model_request_end 返回。
本次模型请求的用量。
仅 span.model_request_end 返回。
显示子属性
隐藏子属性
输入 token 数。
输出 token 数。
命中缓存的输入 token 数。
写入缓存的输入 token 数。
错误信息。
仅 session.error 返回。
显示子属性
隐藏子属性
错误类型。
可选值:unknown_error(未知错误)、model_overloaded_error(模型过载)、model_rate_limited_error(模型请求被限流)、model_request_failed_error(模型请求失败)、mcp_connection_failed_error(连接 MCP 服务失败)、mcp_authentication_failed_error(MCP 服务鉴权失败)、billing_error(额度不足)、credential_host_unreachable_error(凭证的目标域名被网络策略拦截)。
显示子属性
隐藏子属性
重试状态,仅 session.error 返回。可选值:retrying、exhausted、terminal。
线程标识,仅 session.thread_status_* 返回。
智能体名称,仅 session.thread_status_* 返回。
MCP 服务名称,仅 agent.mcp_tool_use 返回。
对应的 agent.mcp_tool_use 事件标识,仅 agent.mcp_tool_result 返回。
完整事件帧中 data 的事件对象结构如下,不同事件类型返回的字段不同:
event: user.message
id: sevt_msg_g001a1c998d5be002dZ41fkOgyyjQuQ
data: {"id":"sevt_msg_g001a1c998d5be002dZ41fkOgyyjQuQ","type":"user.message","processed_at":"2026-11-11T07:53:19.174Z","content":[{"type":"text","text":"用一句话介绍你自己"}]}
event: session.thread_status_running
id: sevt_95341bc4f2fe84d3bb1e004ba1d0438fd8b7aacc0a1b6409a41079c58972176f
data: {"id":"sevt_95341bc4f2fe84d3bb1e004ba1d0438fd8b7aacc0a1b6409a41079c58972176f","type":"session.thread_status_running","processed_at":"2026-11-11T07:53:19.174Z","session_thread_id":"ses_gffe5e36678cd3ffe2PBFiopsq4cl0P","agent_name":"self"}
评价此篇文章
