tokrouterdocs
使用指南

协议互转

四种入站协议(OpenAI / Anthropic / Gemini / DashScope)在同一 base URL 上互通,以及跨协议时的字段映射边界。

网关接受四种入站协议,并按请求体里的 model 选择上游厂商。入站协议与目标厂商互相独立 —— 这是「用 Anthropic SDK 调 Claude」「用 Anthropic SDK 调 GPT」「用 OpenAI SDK 调 Gemini」都能成立的原因。

端点速查

协议端点典型客户端
OpenAI Chat CompletionsPOST /v1/chat/completionsOpenAI SDK、绝大多数第三方客户端
OpenAI ResponsesPOST /v1/responsesOpenAI Responses API
Anthropic MessagesPOST /v1/messages@anthropic-ai/sdk、Claude Code
GeminiPOST /v1beta/models/{model}:generateContentgoogle-genai
DashScopePOST /v1/services/aigc/text-generation/generation阿里云 DashScope SDK(去掉 /api 前缀)

映射的三条规则

  1. 消息结构按入站协议解释。Anthropic 的 system 顶层字段、Gemini 的 contents[].parts、 OpenAI 的 messages[] 各自解析,不要求你改写请求体。
  2. 能力按目标模型判定。目标模型不支持工具调用时,即使入站协议里带了 tools,也返回错误, 不会静默丢弃工具定义。
  3. 响应按入站协议返回。用 Anthropic 协议调用 GPT 模型,拿到的是 Anthropic Messages 结构的响应; 客户端不需要按上游厂商分支。

已知边界

场景行为
流式四种协议都支持 SSE;/v1/systemone 不支持
工具调用取决于目标模型是否支持
视觉输入取决于目标模型;不同协议的图片字段形态不同,网关负责换算
音频 / 实时双向当前不在文档承诺范围内

不要依赖未文档化的字段透传

跨协议时,厂商独占字段(例如 OpenAI 的 logprobs、Anthropic 的 cache_control)不保证在映射后仍然生效。 需要这些能力时,用目标厂商的原生协议入口。

System One 不属于互转体系

/v1/systemone 是 Jev 决策模型的同协议透传:请求体是 {state, questions}, 响应是带概率的类型化决策(choice / score / noul)。它没有 messages 概念, 不支持流式,也不参与上面四种协议的互转。