向 Forward Session 写入支持的用户输入事件。
POST /api/v1/forward/sessions/{session_id}/events
向 Session 追加输入事件。调用方不能伪造 agent 事件或 session 状态事件。
请求头
| Header | 是否必填 | 说明 |
|---|---|---|
| Authorization | 是 | Bearer <PAT 或 SAT> |
| Content-Type | 是 | application/json |
| Idempotency-Key | 否 | 有副作用请求可选的幂等键。 |
路径参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| session_id | string | 是 | Session ID。 |
请求体参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| events | array | 是 | 要追加的 Event 对象数组。 |
| events[].type | string | 是 | 输入 Event 类型。 |
| events[].content | array | 条件必填 | user.message 必填,必须为非空 content block 数组,仅支持 text、image 类型。 |
| events[].tool_use_id | string | 条件必填 | user.tool_confirmation 和 user.tool_result 必填。 |
| events[].custom_tool_use_id | string | 条件必填 | user.custom_tool_result 必填。 |
| events[].result | string | 条件必填 | user.tool_confirmation 必填,取值 allow 或 deny。 |
| events[].deny_message | string | 否 | 拒绝原因,仅 result=deny 时使用。 |
| events[].description | string | 条件必填 | user.define_outcome 必填。 |
| events[].rubric | object | 条件必填 | user.define_outcome 必填。 |
| events[].reason | string | 否 | user.interrupt 的中断原因。 |
| events[].is_error | boolean | 否 | 工具结果事件的错误标记。 |
示例请求
示例响应
HTTP 200 OK
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
| data | array | 创建后的 Event 对象数组,已按 Forward 规则过滤。 |
错误
下表中的“-”表示响应不包含 error.code。
| HTTP | Type | Code | 触发条件 |
|---|---|---|---|
| 503 | api_error | session_materialization_busy | 会话配置刷新冲突;响应包含 Retry-After: 1。 |
| 400 | invalid_request_error | invalid_request_body | 请求体无法解析或结构不合法。 |
| 400 | invalid_request_error | invalid_request | events 为空、数量超限或缺少类型。 |
| 400 | invalid_request_error | invalid_event | Event 类型或字段不合法。 |
| 404 | not_found_error | session_not_found | Session 不存在。 |
| 404 | not_found_error | - | 运行时未找到 Session 或待处理的 Pending Action。 |
| 409 | conflict_error | identity_disabled | Identity 已停用,不能发起新的执行。 |
| 409 | invalid_request_error | session_archived | Session 已归档。 |
| 409 | invalid_request_error | - | 当前 Session 正在处理 Turn,暂不能新建 Turn。 |
| 401 | authentication_error | - | 未通过 Forward 身份验证。 |
备注
- 收到
session_materialization_busy时,按Retry-After退避重试,沿用原请求体和Idempotency-Key(如有);持续冲突时检查 Session 状态。 - 允许写入的类型包括
user.message、user.interrupt、user.tool_confirmation、user.tool_result、user.custom_tool_result和user.define_outcome。 - Identity 停用不会取消已接受的执行。停用期间,仅匹配真实待处理动作的工具确认或工具结果可继续提交,不能混入新的用户消息;重新启用后可在原 Session 中继续新一轮对话。详见停用 Identity。
- 响应不会返回运行时原始 event JSON。

