我们押注 Anthropic 协议
我们选 Anthropic Messages API 作为默认协议。这里说为什么 tool_use、cache_control、thinking 是最值得原汁原味保留的 API 表面 —— 以及我们如何 shim 其余协议而不丢精度。
KL4 分钟阅读
每个网关都必须选一套默认协议,而这个选择悄悄决定了用户能表达什么、不能表达什么。我们选了 Anthropic Messages。
为什么是它
- tool_use 是一等公民 —— 不是 function-call 适配补丁。模型可以在同一条流里交错推理、工具调用与叙述。
- cache_control 是显式的。你自己决定缓存什么、多久。不会有隐式的 auto-cache 让你的账单变怪。
- thinking block 与输出分离。你可以选择展示或隐藏,可以选择计费或不计费。不管怎样,wire format 把哪段是哪段写得明明白白。
那 OpenAI 用户呢?
我们在同一个 base URL 上暴露了 Chat Completions。这层 shim 本质上有损 —— function-call schema 没法忠实表达 thinking block —— 但对已经说 Chat Completions 的代码而言,迁移成本就是改一行 base URL 加一把 key。
如果你是新写的代码,建议直接说 Anthropic 形状。等到模型可以告诉你它正在第三个工具调用的一半时,你会感谢现在的自己。