Говорите на одном протоколе. Запускайте любую модель.
Приложение сохраняет один SDK и один формат передачи. Шлюз переводит между четырьмя семействами чат-протоколов и нормализует стриминг, вызовы инструментов и ошибки — поэтому добавление провайдера или смена модели не затрагивает бизнес-код.
На что жалуется сообщество
«Мы добавили второго провайдера и теперь поддерживаем два пути SDK, два парсера стриминга и два формата вызова инструментов». «Claude Code говорит только на Anthropic, поэтому мы не могли перевести его на другую модель». «Каждый прокси, который называет себя OpenAI-совместимым, где-нибудь ломается».
Реальная стоимость модели — это вызов API плюс код, написанный вокруг него. Вторая часть не появляется в счёте — она появляется в спринтах и умножается с каждым добавленным провайдером.
Как это делает GateLLM
Четыре семейства протоколов с обеих сторон — OpenAI, Anthropic, Gemini, DashScope — переводят любой-в-любой. Клиент только на Anthropic (Claude Code, claude-code-action) достигает нативной модели Qwen или DeepSeek без изменений клиента; помимо четырёх семейств, по матрице интероперабельности покрыты ещё 15 форматов вышестоящих протоколов.
Слой нормализации возможностей обрабатывает то, что на самом деле стоит смены протокола: формы чанков стриминга, отображение вызовов и результатов инструментов, изображения и мультимодальные части, а также семантику ошибок. Ключи, политика и атрибуция затрат действуют одинаково при любой паре протоколов.
5 рычагов, которые реально работают
- Один SDK, один парсер стриминга, один формат вызова инструментов в клиенте — новый провайдер это изменение в консоли
- Агенты только на Anthropic могут запускать любую поддерживаемую модель; без форка и адаптера
- Смена моделей остаётся внутри шлюза, поэтому код приложения и его тесты не меняются
- Нативный egress: каждый провайдер получает свой протокол вместо повторно переведённого конверта OpenAI
- Одна и та же поверхность ключей, бюджета и политики для любой пары протоколов