OpenResponses API (HTTP)
OpenClaw 的 Gateway(网关)可以提供一个 OpenResponses 兼容的POST /v1/responses 端点。
此端点默认处于禁用状态。请先在配置中启用它。
POST /v1/responses- 与 Gateway(网关) 相同的端口(WS + HTTP 多路复用):
http://<gateway-host>:<port>/v1/responses
openclaw agent 代码路径相同),因此路由/权限/配置与您的 Gateway(网关) 匹配。
身份验证、安全和路由
操作行为与 OpenAI Chat Completions 匹配:- 使用
Authorization: Bearer <token>配合正常的 Gateway(网关) 身份验证配置 - 将该端点视为对 gateway 实例的完整操作员访问权限
- 使用
model: "openclaw"、model: "openclaw/default"、model: "openclaw/<agentId>"或x-openclaw-agent-id选择代理 - 当您想覆盖所选代理的后端模型时,请使用
x-openclaw-model - 使用
x-openclaw-session-key进行显式会话路由 - 当您需要非默认的合成入站渠道上下文时,请使用
x-openclaw-message-channel
gateway.http.endpoints.responses.enabled 启用或禁用此端点。
相同的兼容性界面还包括:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completions
openclaw/default、嵌入传递和后端模型覆盖如何组合在一起的规范说明,请参阅 OpenAI Chat Completions 和 模型列表和代理路由。
会话行为
默认情况下,该端点是每个请求无状态的(每次调用都会生成一个新的会话密钥)。 如果请求包含 OpenResponsesuser 字符串,Gateway(网关) 会从中派生出一个稳定的会话密钥,以便重复调用可以共享代理会话。
请求形状(已支持)
请求遵循具有基于项目输入的 OpenResponses API。当前支持:input:字符串或项目对象数组。instructions:合并到系统提示词中。tools:客户端工具定义(函数工具)。tool_choice:过滤或要求客户端工具。stream:启用 SSE 流式传输。max_output_tokens:尽力而为的输出限制(取决于提供商)。user:稳定的会话路由。
max_tool_callsreasoningmetadatastoretruncation
previous_response_id:当请求保持在同一个 agent/user/requested-会话 范围内时,OpenClaw 会重用之前的响应会话。
Items(输入)
message
角色:system、developer、user、assistant。
system和developer会被附加到系统提示词中。- 最近的
user或function_call_output项将成为“当前消息”。 - 之前的用户/助手消息会作为上下文历史包含在内。
function_call_output(基于回合的工具)
将工具结果发送回模型:
reasoning 和 item_reference
出于架构兼容性而被接受,但在构建提示词时被忽略。
工具(客户端函数工具)
使用tools: [{ type: "function", function: { name, description?, parameters? } }] 提供工具。
如果 Agent 决定调用工具,响应将返回一个 function_call 输出项。
随后,您需要发送一个带有 function_call_output 的后续请求以继续该回合。
图像 (input_image)
支持 base64 或 URL 来源:
image/jpeg、image/png、image/gif、image/webp、image/heic、image/heif。
最大尺寸(当前):10MB。
文件 (input_file)
支持 base64 或 URL 来源:
text/plain、text/markdown、text/html、text/csv、
application/json、application/pdf。
最大尺寸(当前):5MB。
当前行为:
- 文件内容将被解码并添加到系统提示词中,而不是用户消息中, 因此它保持临时状态(不会持久保存在会话历史中)。
- PDF 将解析文本。如果发现的文本很少,前几页将被光栅化 为图像并传递给模型。
pdfjs-dist 旧版构建(无 worker)。现代版 PDF.js 构建需要浏览器 worker/DOM 全局变量,因此未在 Gateway(网关) 中使用。
URL 获取默认值:
files.allowUrl:trueimages.allowUrl:truemaxUrlParts:8(每个请求中基于 URL 的input_file+input_image部分总计)- 请求受保护(DNS 解析、私有 IP 阻断、重定向上限、超时)。
- 支持按输入类型(
files.urlAllowlist、images.urlAllowlist)设置可选的主机名允许列表。- 精确主机:
"cdn.example.com" - 通配符子域:
"*.assets.example.com"(不匹配顶点域) - 允许列表为空或省略表示没有主机名允许列表限制。
- 精确主机:
- 要完全禁用基于 URL 的获取,请设置
files.allowUrl: false和/或images.allowUrl: false。
文件 + 图像限制(配置)
可以在gateway.http.endpoints.responses 下调整默认值:
maxBodyBytes:20MBmaxUrlParts:8files.maxBytes:5MBfiles.maxChars:200kfiles.maxRedirects:3files.timeoutMs:10sfiles.pdf.maxPages:4files.pdf.maxPixels:4,000,000files.pdf.minTextChars:200images.maxBytes:10MBimages.maxRedirects:3images.timeoutMs:10s- 接受 HEIC/HEIF
input_image源,并在交付给提供商之前将其规范化为 JPEG。
- 在获取之前和重定向跳转时会强制执行 URL 允许列表。
- 将主机名加入允许列表并不能绕过私有/内部 IP 阻断。
- 对于暴露于互联网的 Gateway(网关),除了应用级防护外,还应应用网络出口控制。 请参阅 安全。
流式传输 (SSE)
设置stream: true 以接收服务器发送事件 (SSE):
Content-Type: text/event-stream- 每个事件行都是
event: <type>和data: <json> - 流以
data: [DONE]结束
response.createdresponse.in_progressresponse.output_item.addedresponse.content_part.addedresponse.output_text.deltaresponse.output_text.doneresponse.content_part.doneresponse.output_item.doneresponse.completedresponse.failed(错误时)
使用情况
当底层提供商报告 token 计数时,会填充usage。
错误
错误使用如下 JSON 对象:401缺失/无效的认证400无效的请求体405错误的方法
示例
非流式:本页面源自 openclaw/openclaw,由 BeaversLab 翻译,遵循 MIT 协议 发布。