跳转到内容

OpenAI Responses 到 Anthropic Messages

本页记录高价值转换 pair:客户端使用 OpenAI Responses,而选中的 provider 使用 Anthropic Messages。

入站
`openai_responses` request payload
规范化
ingress 解析 Responses input 和请求控制项
请求转换
Responses input/messages/tools -> Anthropic Messages request
响应转换
Anthropic Message/content blocks -> Responses output items
出站
`openai_responses` response 或 SSE events
区域预期行为
非流式请求当请求字段可以用 Anthropic Messages 表达时支持。
非流式响应Anthropic 返回一个最终 Message;ProxAI 将其转换为带 output[] 的 Responses response envelope。
流式响应Anthropic content-block events 会被累积,并发出 Responses 风格 typed SSE events。
不支持的 provider-specific 字段显式失败或有意忽略;不要把原始 provider 结构泄漏到 Responses output。
Responses 概念Anthropic Messages 目标说明
input easy messagesmessages[]User/developer 内容在可表达时转换为 Anthropic message content blocks。
System/developer instructionssystem 或等价规范化指令位置保留指令意图,不重复成用户可见内容。
tools[] function toolstools[]Function schema 应保留 name、description 和 JSON schema shape。
Hosted toolsProvider-compatible 表达或显式 unsupported 行为不要假装上游支持它并不支持的 hosted tools。
reasoning.effort可用时映射到 output_config.effort支持的 effort 值直接映射;disabled/minimal 映射为 disabled thinking 行为。
reasoning.summary有损映射到 thinking.displayAnthropic 没有等价的 summary 粒度。
Anthropic 概念Responses 目标说明
Message envelopeResponses response envelopeAnthropic 非流式返回一个 message;Responses output 可包含多个 typed items。
Text content blockMessage output content保留响应内文本顺序。
Tool use blockFunction call output item用目标协议标识符保留 call identity。
Thinking/reasoning block可表达时转换为 Reasoning output itemProvider-specific metadata 应被转换,而不是 raw-round-trip。
stop_reasonResponses status / terminal output 语义映射见状态与停止原因参考。
Anthropic eventResponses-side 预期
message_start初始化 response state 和 output item assembly。
content_block_start根据 block type 启动 Responses output item 或 content part。
content_block_delta发出兼容 delta events,避免切断 Unicode 边界。
content_block_stop结束当前 item/content block。
message_delta可用时更新 usage 或 stop metadata。
message_stop发出终止 Responses event,例如 response.completed
  • Responses output item identity 可能比 Anthropic message block identity 更丰富。
  • Hosted tools 可能没有 Anthropic 等价物。
  • Reasoning summary 粒度不是对称的。
  • Refusal metadata 应保留 refusal 语义,而不是原始上游 shape。
  • Provider-specific metadata,例如 signatures,不应作为未类型化 Responses payload 暴露。
变更类型测试区域
请求位置变化System/developer normalization 和 message placement tests。
Tool mapping 变化Tool call 和 tool result round-trip behavior tests。
Streaming event 变化SSE terminal、stalled tool-call、Unicode scanning 和 event ordering tests。
Stop/status mapping 变化Status and stop reason conversion tests 加 reference docs。