Session 对象
创建、获取、列出、更新和归档 Session 的接口都会返回该对象。Template 摘要
Session stats
Event 对象
接口返回的 Event 是按type 变化的 JSON 对象。所有返回 Event 都包含通用字段,不同事件类型会携带不同的 payload 字段。
按事件类型允许出现的 payload 字段如下。表中不重复列出通用字段
id、type、session_id 和 processed_at。
客户端可发送事件类型
POST /api/v1/forward/sessions/{session_id}/events 只接受以下事件类型。
system.message 是公开 Event 类型,但不作为 Forward 客户端写入事件开放。
公开事件类型
查询历史和订阅 SSE 事件流时,可能收到以下公开事件类型;其中event_start 和 event_delta 仅在订阅 SSE 且传入 event_deltas[] 时可能返回:
user.message、user.interrupt、user.tool_confirmation、user.tool_result、user.custom_tool_result、user.define_outcome、system.message、agent.message、agent.thinking、agent.message_start、agent.content_block_start、agent.content_block_delta、agent.content_block_stop、agent.message_delta、agent.message_stop、event_start、event_delta、agent.tool_use、agent.tool_result、agent.custom_tool_use、agent.mcp_tool_use、agent.mcp_tool_result、agent.artifact_delivered、session.status_running、session.status_idle、session.status_terminated、session.error 和 session.updated。
增量流式事件
Forward 当前支持两套增量流式事件:- 推荐新接入使用流式增量事件:在订阅 Session Event Stream 时传入
event_deltas[]。 - 旧版增量流式事件由创建 Session 时的
incremental_streaming_enabled控制,能力仍然保留但不推荐新接入使用。
流式增量事件
流式增量事件通过订阅 Session Event Stream 接口的event_deltas[] 查询参数开启。支持重复传参,允许值如下:
开启后,SSE 事件流中可能额外返回以下两类顶层 Event:
event_start.event 字段:
event_delta.delta 字段:
event_start 示例:
event_delta 示例:
- 只有订阅 SSE 事件流且传入
event_deltas[]时,才会返回event_start/event_delta;历史查询不返回这类流式增量事件。 - 最终完整公开事件仍会返回。客户端可使用流式增量事件做即时展示,再以最终完整事件作为持久化或展示校准结果。
include_thinking=false时,会过滤agent.thinking事件开始信号和delta.content.type=thinking的增量片段。include_tool_calls=false不影响event_deltas[]当前支持的agent.message和agent.thinking流式增量事件,但仍会过滤普通工具调用事件和旧版工具输入/输出 delta。- 若 Session 创建时设置了
incremental_streaming_enabled=true,该 Session 使用旧版流式能力,订阅接口中的event_deltas[]不会启用流式增量事件。
旧版增量流式事件
旧版增量流式事件由创建 Session 时的incremental_streaming_enabled 字段控制,不通过查询历史或订阅 SSE 的请求参数控制。该能力仍然保留用于兼容既有客户端,但不推荐新接入使用:
true:事件流会在最终完整agent.message之前返回 assistant 输出片段;历史查询也会返回同一批增量事件。false或省略:保持普通模式,只返回完整公开事件,不返回增量事件。
agent.message 仍会返回。客户端可使用增量事件做即时展示,再以最终 agent.message 作为持久化或展示校准结果。
旧版顶层增量事件类型只有以下 6 种:
text_delta、thinking_delta、signature_delta、input_json_delta 和 tool_output_delta 不是顶层 Event 类型,只会作为 agent.content_block_delta.delta.type 出现。
agent.content_block_delta 示例:
- SSE
event:与 JSONdata.type都使用公开 Event 类型。 agent.content_block_delta.index用于区分多个 content block。processed_at在增量事件上可能缺失,客户端应按可选字段处理。- 网络中断后可使用
Last-Event-ID携带最后收到的 Event ID 重连。 include_thinking=false时,会过滤thinking_delta、signature_delta及可识别的 thinking content block start/stop 事件。include_tool_calls=false时,会过滤input_json_delta、tool_output_delta及可识别的 tool content block start/stop 事件。