Skip to main content
GoModel 接受兼容 OpenAI 的 /v1/responses 请求,并将其路由到选定的模型提供商。部分提供商提供原生兼容 Responses 的接口;其他提供商则提供 Chat Completions 或提供商原生的聊天 API,此时 GoModel 会对请求进行翻译。 兼容性规则遵循 Postel 定律:GoModel 会翻译可移植的模型功能,并接受不熟悉的工具声明,但不会把它们转发给无法执行它们的提供商。如果某些字段无法被安全翻译,而它们又会改变模型输出的含义,则仍会被拒绝。

路由模式

聊天翻译提供商包括 Anthropic 和 Gemini 的原生路由。它们能很好地支持文本、流式传输、目标适配器支持的多模态输入以及函数工具循环,但无法安全地执行 OpenAI 托管的工具。

功能行为

在 Anthropic 上,text.format 由提供商原生的结构化输出(json_schema)或系统提示词指令(json_object)实现—— 参见 Anthropic。 text.verbosity 在 Anthropic 中没有对应项,会被丢弃并输出警告。

include 字段

include 用于请求响应条目上的额外注解,例如 reasoning.encrypted_content 或 file_search_call.results。它从不改变模型的行为,因此聊天翻译提供商会接受它,并返回不含这些注解的响应,与不支持这些注解的原生提供商完全一样。总是附带 include 的客户端(例如使用 wire_api = "responses" 的 Codex)无需额外配置即可工作。 唯一的例外是 message.output_text.logprobs,它请求的是真实的模型输出而不是注解。GoModel 拒绝它,原因与拒绝 top_logprobs 相同。

托管工具

托管工具由上游提供商执行,而不仅仅依靠模型的文本补全。它们的负载通常引用提供商拥有的资源和运行时状态:
  • web_search 及其旧版别名 web_search_preview 依赖提供商的搜索实现和事件 schema。
  • file_search 引用提供商的向量存储,例如 vector_store_ids。
  • computer_use_preview 依赖提供商管理的计算机会话、显示环境和安全模型。
GoModel 不会将这些工具翻译为 Anthropic、Gemini 或其他聊天类提供商的工具调用。虚假的翻译会改变工具运行的位置、状态的存储方式以及适用的安全控制。因此,聊天翻译提供商会接受请求,但在分发给提供商之前省略所有非函数工具。 同一请求中受支持的函数工具仍可正常工作。 namespace 工具会作为一个整体被省略,而不是被展开。展开会改变工具名称,破坏客户端的路由约定。选择了被省略工具的 tool_choice 也会被省略。如果所有工具都被省略,parallel_tool_calls 也会从翻译后的请求中移除。 这是对能力的优雅降级,而不是对托管工具的模拟。尤其要注意,来自聊天翻译提供商的响应并不意味着发生了网页搜索、文件搜索或计算机操作。当结果依赖于这些工具的运行时,请使用原生 Responses 提供商。

Agent SDK

OpenAI Agents SDK 客户端可以通过 GoModel 与 Anthropic 和 Gemini 模型通信,适用于可移植的流程:
  • 普通的 Runner.run(...)
  • 基于 HTTP/SSE 的 Runner.run_streamed(...)
  • 本地函数工具
  • 由 SDK 管理的本地历史回放
聊天翻译提供商会忽略提供商托管的工具。服务端管理的会话状态和 WebSocket Responses 传输仍依赖于提供商的特定支持。 无状态回放同样可用。将上一轮输出条目作为输入发回的客户端(store: false、Codex、SDK 管理的历史)总是会带上 Responses API 返回的条目 id。GoModel 在调用聊天类提供商之前,会将该 id 连同其他仅 Responses 使用的条目元数据一并丢弃,因此同一份回放请求体可在所有提供商上使用。 对于 Python Agents SDK 客户端,带命名空间的 GoModel 模型 ID(例如 anthropic/claude-sonnet-4-20250514 和 gemini/gemini-2.0-flash)需要启用模型 ID 透传模式:
调用 Runner.run(...) 或 Runner.run_streamed(...) 时请使用该 run_config。

测试兼容性边界

OpenAI Agents SDK 示例包含用于测试经由 GoModel 路由到 Anthropic 的探测脚本:
Responses 探测脚本会同时验证受支持和不受支持的路径:普通 Responses 调用、函数工具、结构化输出拒绝、有状态字段拒绝、未知输入条目拒绝,以及托管工具的优雅省略。 Agents 探测脚本会验证基本运行、函数工具循环和流式函数工具循环。

路线图

未来对托管工具的支持应采用显式的提供商能力映射。也就是说,GoModel 在接受请求之前,应当知道哪个提供商、模型、API 模式和请求结构能够安全地处理每项功能。
最后修改于 2026年10月24日