概述
Responses 格式转换器让 OpenAI Responses 客户端(OpenAI SDK 的client.responses、Codex CLI 以及其他基于 Responses 的工具)可以调用
Anthropic、Gemini 和 Chat Completions 模型。原生支持 Responses API
的模型在同一路由上原样透传。
配置
SDK 配置
将 Base URL 设置为:cURL / 直接调用
使用示例
- Python SDK
- TypeScript SDK
- cURL
无状态多轮对话
转换目标模型不保存任何服务端会话状态。请发送store: false(或不传 store),
并由客户端自行携带历史:每一轮都把上一次响应的完整 response.output 数组追加到
input,再追加新的输入项。
- 不要过滤、重排或改写输出项。reasoning 项的
summary可能为空,只用于携带encrypted_content;它必须保持在与其一同返回的函数调用之前。 - 每个
function_call_output引用的call_id必须出现在同一请求的input中。 同一历史中出现重复的call_id会返回400。 encrypted_content是不透明的提供商状态(Anthropic thinking 签名或 Gemini thought signature),只对签发它的提供商有效。其他提供商签发的内容会被忽略, 不会被回放。
思考与签名
Gemini 3 模型会校验当前回合内函数调用的 thought signature。这是模型的原生要求,
不是转换器规则,详见 Google 官方的
Thought signatures
文档。转换器负责把每个签名放在 reasoning 项中返回,并在你回放该项时把签名还原到
对应的函数调用 part 上。
Gemini 思考等级
Gemini 3 目标的reasoning.effort 接受 low、medium、high,并映射为 thinkingLevel;Gemini 2.5 则使用 thinkingBudget。此转换路径不开放原生模型可能具备的 minimal 等其他等级;所选等级仍须由目标模型支持。
支持的功能
流式响应保证恰好以一个终态事件结束:
response.completed、
response.incomplete(达到输出上限或内容过滤)或 response.failed
(上游错误或流被截断)。
prompt_cache_key、client_metadata 和 stream_options.include_obfuscation
会被接受,但不产生效果。
不支持的功能
对于转换目标模型,任何无法在目标协议中表达的内容都会返回400,不会被静默丢弃:
如果需要在 OpenAI 模型上使用这些功能,请走原生
/v1/responses 路由。
Codex CLI
Codex CLI 可以通过自定义 provider 使用该路由:设置wire_api = "responses" 并使用
上面的 Base URL。对转换目标模型请关闭托管网页搜索(web_search = "disabled"),
因为托管工具会被拒绝。
相关文档
Converter 总览
所有 converter 路由
原生 Responses
面向 OpenAI 兼容模型的
/v1/responses路由与协议
原生路由与 converter 路由的区别