Runs API
POST /v1/agents/:agentId/runs 通过 Accept 头的内容协商(Streamable HTTP)在同一个端点上支持流式与阻塞响应。请求体至少提供 message;响应通过 X-Run-ID 头返回传输标识。
流式(SSE)
发送Accept: text/event-stream 获取 token 级流式输出,partial_message 事件携带文本增量、思考片段和工具调用进度:
system、消息事件、cancelled、错误与 done,并在 done 后关闭消费循环。
SSE Block 模式
在请求体中设置stream: "block",SSE 只发送完整消息,不包含 partial_message 事件。适合需要流式推送但不需要 token 级粒度的场景:
阻塞(JSON)
发送Accept: application/json,以单个 JSON 响应返回完整结果:
错误响应(阻塞模式)
上游 LLM 失败(限流、认证失败、连接错误等)时,响应返回非 200 状态码并携带state: "failed",而不是看似成功的空结果:
text 可能包含失败前已生成的部分输出。客户端应检查 HTTP 状态码(或 state / error 字段)区分成功与失败。通过 POST /v1/runs/:runId/cancel 取消的 run 仍返回 200 且 state: "cancelled"——取消优先于错误上报。
向后兼容
未提供Accept 头时,仍支持旧的 stream 请求体字段:
新集成应优先使用
Accept 头方式(Streamable HTTP),它遵循标准 HTTP 内容协商。
取消 Run
POST /v1/runs/:runId/cancel
取消请求是幂等的,但终态缓存过期后会返回 404。详细状态码见 Run 生命周期。