Skip to main content

发送 Event

向会话写入事件:用户消息、中断、工具审批、回填函数结果。请求体顶层只有 input,为事件数组(长度 1-50)。

前提

已创建会话,详见创建 Session。

接口

POST /sessions/{session_id}/events 请求体顶层只有一个字段 input,为事件数组(长度 1-50)。每个事件至少含 role 与 type。

请求体结构

{
  "input": [
    { "role": "user", "type": "message", "content": [...] }
  ]
}

客户端事件类型

typerole用途与关键字段
messageuser发送用户消息,触发智能体进入 running。必填 content(数组)
interruptuser中断当前轮处理,会话回到 idle。可选顶层 session_thread_id(多 agent 时定向中断子线程)
tool_approval_responseuser回应工具审批。content 为单个 data 块,data 内必填 batch_id、call_id、result(allow / deny),可选 deny_message(仅 deny 时作为工具输出回传给模型)。同一次请求内的多条 tool_approval_response 必须属于同一个 batch_id
function_call_outputtool回填自托管函数执行结果。content 为单个 data 块,data 内必填 call_id 与 output(字符串);可选顶层 is_error、session_thread_id
tool_call_outputtool回填自托管平台内置工具的执行结果,结构同 function_call_output(content 含 call_id + output,顶层可选 is_error、session_thread_id)
interrupt 与普通 message 可在同一请求混发,语义为:先结束当前审批批次,再开始聊天。
tool_approval_response 的 batch_id 与 call_id 共同标识一次审批(复合身份,且均非空),不能只按 call_id 匹配,也不得按 call_id 做会话级去重。工具审批仅支持主智能体,不支持在子智能体中使用。

ContentBlock:消息内容

content 是 ContentBlock 数组。每个块按 type 区分,必须严格选其中一种载体。
type互斥字段说明
texttext纯文本
imageimage_url / file_id(二选一)图片,进入模型视觉通道:公网 URL 或已上传文件 ID(解引用为临时 URL,仅本轮渲染、不持久化)
videovideo_url / file_id(二选一)视频,进入模型视觉通道:公网 URL 或已上传文件 ID
audiodata + format / file_id(二选一)音频:仅出现在服务端推送/响应中(作为工具输出附件),不能作为客户端输入发送
filefile_id + filename文件:已上传文件 ID,需携带 filename(用于沙箱路径与文件清单)。不支持 base64 输入。文件由平台物化到会话沙箱,模型按需读取。file_id 为持久化真相源
datadata(object)结构化数据(JSON)。服务端状态事件也用此承载
refusalrefusal模型拒绝信息,仅出现在服务端推送中

示例:发送文本消息

curl -X POST "$AGENTSTUDIO_URL/sessions/sesn_01K8ZQX3/events" \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      {
        "role": "user",
        "type": "message",
        "content": [
          {"type": "text", "text": "分析 /mnt/session/uploads/sales.csv 中 Q3 的销售趋势"}
        ]
      }
    ]
  }'

响应

200 OK 返回写入成功的事件回显与请求 ID:
{
  "data": [
    {
      "object": "message",
      "id": "msg_8f2a1c...",
      "created_at": "2025-10-24T08:15:30.123Z",
      "role": "user",
      "type": "message",
      "status": "completed",
      "content": [{"type": "text", "text": "..."}]
    }
  ],
  "request_id": "req_01K8ZQX..."
}
200 仅表示事件入队成功,不代表 agent 已开始处理或裁决已生效——尤其对 tool_approval_response,事件被受理不等于审批已裁决生效。实际处理结果需通过 SSE 事件流或后续 GET /events 观察。

响应字段

字段类型说明
dataarray<object>已受理事件的回显数组,与请求 input 顺序对齐;回显仅表示入队成功,不代表已被处理或裁决已生效
data[].objectstring对象类型,固定为 message
data[].idstring服务端分配的消息 ID,格式 msg_&lt;ULID&gt;
data[].created_atstring服务端写入时间,ISO 8601
data[].rolestring事件角色,回显请求中的 user
data[].typestring事件类型,回显请求中所发事件的 type(如发送 message 则回显 message,发送 tool_approval_response 则回显 tool_approval_response),并非固定为 message
data[].statusstring写入状态,固定为 completed
data[].contentarray<object>ContentBlock 数组,结构同请求
request_idstring本次请求的唯一标识
Flow Agent API
Sandbox API
RAG API
长期记忆
ParseX API
Security API
框架集成
Assistant API(下线中)