协议转换
任何模型都可用于任何端点,并说明哪些内容会原样转发,以及转换无法承载的少数内容。
每个端点都可以调用任何模型。通过 /v1/responses 请求 Claude 模型,
或通过 /v1/messages 请求 GPT 模型,都是受支持的请求。
因此,只支持一种协议的客户端也能使用采用另一种协议的供应商模型, 而无需运行第二个网关。
| 端点 | 协议 | 常用客户端 |
|---|---|---|
/v1/chat/completions |
OpenAI Chat Completions | OpenAI SDK、OpenClaw、Hermes、大多数编辑器 |
/v1/messages |
Anthropic Messages | Anthropic SDK、Claude Code |
/v1/responses |
OpenAI Responses | Codex、较新的 OpenAI SDK |
凭据可以通过 Authorization: Bearer、x-api-key 或 api-key 提交,
因为不同客户端采用的发送方式并不一致。
无需转换时
如果你的端点与模型供应商已经使用相同的协议,请求正文会直接转发, 而不会重新构建。只有模型 ID 会被改写。
缓存断点、推理签名以及 Webway 从未见过的字段都会原样送达供应商; 即使某项供应商功能在本页成文后才发布,也能在发布当天正常使用。
转换无法承载的内容
在上述直通路径以外,少数内容在目标协议中无处可放:
- 缓存断点会在目标为聊天补全时被丢弃,因为聊天补全没有
cache_control。相关供应商会隐式缓存,因此损失的是控制能力, 而不是金钱。 - 推理签名是供应商用来证明思考块未经修改便返回的凭证。它们仅适用于 签发它们的供应商,无法带入另一家供应商的协议,因此会被丢弃,而不是 伪造。
previous_response_id会被拒绝并返回400。Webway 不存储 对话状态;请发送完整的input数组。忽略该字段会在不作提示的情况下 丢失你的历史记录。
工具、工具结果、图像、系统提示词、停止原因、流式传输顺序和 token 计数 在双向转换中都会完整保留。
Token 计数
所有模型都支持 /v1/messages/count_tokens,包括供应商本身不提供该功能的
模型,因此 Claude Code 的上下文计量器在所有模型上都能工作。对于这些模型,
计数为估算值。
缓存输入按缓存费率计费,写入缓存按写入费率计费。在用量进入你的账单前,
系统会对其进行归一化:Anthropic 从 input_tokens 中排除缓存 token,
而 OpenAI 将其计入 prompt_tokens,GET /v1/models 会分别公布各项费率。