初级开发 + 平台工程
客户端只说一种协议,网关接任意模型
应用只保留一个 SDK、一种线上格式。网关在四大对话协议族之间互译,并归一化流式分片、工具调用与错误语义 —— 加厂商、换模型,业务代码一行不动。
社区真正在抱怨什么
「多接一家厂商,就多一套 SDK 路径、一个流式解析器、一种工具调用格式。」「Claude Code 只认 Anthropic 协议,想把它挂到别家模型上根本接不上。」「号称 OpenAI 兼容的代理,换一个场景就崩。」
一个模型的真实成本 = API 调用 + 围着它写的代码。后一笔从不出现在账单上,只出现在排期里,而且每多一家厂商就翻一倍。
GateLLM 怎么做
入口与出口各四种协议族 —— OpenAI / Anthropic / Gemini / DashScope —— 任意 A→B 互译。Anthropic-only 客户端(Claude Code、claude-code-action)不改一行就能用 Qwen、DeepSeek 原生模型;四大协议族之外另有 15 种上游协议形态,按互通矩阵配对。
能力归一化层处理协议切换真正的代价:流式分片形态、工具调用与工具结果的映射、图像与多模态片段、错误语义。不管请求跨的是哪一对协议,密钥、策略与成本归因都走同一套治理面。
落地的 5 个手段
- 客户端只有一个 SDK、一个流式解析器、一种工具调用格式 —— 接新厂商是控制台里的一次配置
- Anthropic-only 的 agent 能跑任意受支持的模型,不用 fork、不用写适配层
- 换模型留在网关内部,应用代码与它的测试都不用动
- 原生出口:每个上游收到的是自己的协议,而不是被二次转换的 OpenAI 信封
- 任意协议对之间,密钥、预算与策略是同一套