Documentation Index
Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/sessions/{session_id}/events
向 Session 发送事件(通常是用户消息),触发 Agent 开始处理。这是一个异步操作:消息被接受后,Agent 会在后台开始生成回复,可通过 SSE 流或列表事件 API 获取结果。
请求头
| 头部 | 必选 | 说明 |
|---|
Authorization | 是 | Bearer <PAT> |
Content-Type | 是 | application/json |
路径参数
| 参数 | 类型 | 必选 | 说明 |
|---|
session_id | string | 是 | Session ID(sess_ 前缀) |
请求体
| 字段 | 类型 | 必选 | 说明 |
|---|
events | array | 是 | 事件对象数组 |
events[].type | string | 是 | 事件类型 |
events[].content | array | 视类型 | 内容块数组(user.message 类型时必填) |
events[].content[].type | string | 是 | 内容块类型,如 text |
events[].content[].text | string | 是 | 文本内容 |
支持的事件类型
| type | 说明 | 必填字段 |
|---|
user.message | 用户发送消息 | content |
user.interrupt | 用户中断 Agent 执行 | - |
user.define_outcome | 用户定义预期结果 | content |
示例请求
curl -X POST "https://openapi.qoder.sh/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/events" \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"events": [
{
"type": "user.message",
"content": [
{"type": "text", "text": "请帮我分析这段代码的性能问题"}
]
}
]
}'
示例响应
HTTP 202 Accepted
返回已创建的事件列表。HTTP 202 表示消息已被接受并进入处理队列。
{
"data": [
{
"id": "evt_019e3bb2c153764da54e4d3acbef52b6",
"type": "user.message",
"content": [
{"type": "text", "text": "请帮我分析这段代码的性能问题"}
],
"session_id": "sess_019e392c0d1e74e095d21ea4c6b41def",
"turn_id": "turn_019e3bb2c15376429b88e1f7976c1907",
"schema_version": "1.0",
"created_at": "2026-05-18T15:27:11.187413896Z",
"processed_at": "2026-05-18T15:27:11.187413896Z"
}
]
}
响应字段
| 字段 | 类型 | 说明 |
|---|
id | string | 事件唯一标识(evt_ 前缀) |
type | string | 事件类型 |
content | array | 内容块数组 |
session_id | string | 所属 Session ID |
turn_id | string | 所属 Turn ID(turn_ 前缀),服务端自动分配 |
schema_version | string | Schema 版本号 |
created_at | string | 创建时间(ISO 8601) |
processed_at | string | 处理时间(ISO 8601) |
发送消息后,Agent 会异步开始处理。可通过 GET /v1/sessions/{session_id}/events/stream 实时监听 Agent 的响应事件。
错误码
| HTTP | type | 触发条件 |
|---|
| 400 | invalid_request_error | 缺少 content 字段或格式错误 |
| 401 | authentication_error | PAT 无效或过期 |
| 404 | not_found_error | Session 不存在 |
| 409 | conflict_error | Session 正在处理中无法接收新消息 |
错误响应示例:
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "Field 'content' is required."
}
}
完整错误信封说明详见 错误参考。