Як працює LLM-шлюз? Практичний посібник для інженерних команд
LLM-шлюз — це зворотний проксі, який маршрутизує, автентифікує, кешує та логує ваші виклики моделей; у цьому посібнику ми простежимо шлях запиту через шлюз, розглянемо ризики для безпеки й надійності, які варто врахувати, і порівняємо варіанти: власну розробку, самостійне розгортання, керовані сервіси та API-шлюзи.

LLM-шлюз розташовується між вашими застосунками та постачальниками моделей, яких ви підключаєте через нього, і дає вам єдине місце для керування обліковими даними та відстеження використання.
«Наразі це повне г**но», — написав на Reddit у r/LLMDevs один інженер у вересні 2026 року.
«У кожного свій набір ключів для Claude, OpenAI, AWS Bedrock та всіх інших постачальників інференсу, якими ми користуємося».
У матеріалі BigGo про llm-proxy-tk — легкий шлюз на базі FastAPI — таку схему порівнюють із перетворенням LLM на «корпоративну водопровідну воду», де шлюз виконує роль головного вентиля будівлі.
Але перш ніж настільки довіряти цьому «водопроводу», погляньмо, що саме ви встановлюєте.
Що таке LLM-шлюз?
LLM-шлюз — це зворотний проксі для викликів моделей. Ваші застосунки надсилають запити йому, а не безпосередньо OpenAI, Anthropic, Google чи іншим постачальникам LLM, якими ви користуєтеся. Шлюз пересилає ці запити далі, застосовуючи до них ваші правила.
Кожен постачальник LLM має власний API: свою структуру запитів, свою автентифікацію та свій спосіб повернення помилок. У кожного також окремі ліміти запитів і власні сценарії збоїв. Якщо перед ними немає спільного рівня, кожен застосунок, що звертається до постачальника, робить усе сам — і щоразу трохи по-своєму.
Аналогія з водопроводом має свої межі, але до цього моменту вона працює: постачальників підключають один раз — на шлюзі. Відтак кожен застосунок отримує власне під’єднання з лічильником, тож ви бачите, хто що використовує, і можете перекрити будь-яку окрему лінію, не зачіпаючи інших.
Шлюзи LLM, ШІ, MCP та API: у чому різниця?
Шлюз | Перед чим він розташований? | Що він вирішує? | Межі його видимості |
API-шлюз | Ваші сервіси та інші бекенд-API | Чи автентифікований цей клієнт і чи не перевищує він ліміт запитів? | Може перевіряти тіла запитів, але для обліку токенів та інших специфічних для моделей засобів контролю потрібна додаткова підтримка. |
LLM-шлюз | Постачальники моделей | Яка модель отримає цей запит, хто за нього платить і чи надійшла відповідь? | Бачить виклики інструментів, запропоновані у відповідях моделі, але не їхнє виконання, якщо тільки цей трафік також не проходить через нього. |
MCP-шлюз | Інструменти та джерела даних, до яких агент підключається через MCP | Чи може цей агент викликати цей інструмент із цими аргументами? | Не бачить автоматично виклик моделі, який породив запит до інструмента. |
Усе, що постачальник об’єднав у пакет: моделі, а також, можливо, інструменти й трафік між агентами | Поєднання наведеного вище — залежно від продукту | Залежить від того, які з’єднання він обробляє. |
Як працює LLM-шлюз?
Простежмо шлях одного запиту від вашого застосунку до моделі й назад.
- Запит надходить на шлюз: ваш застосунок надсилає звичайний на вигляд запит до чату, часто у форматі, сумісному з OpenAI, на ендпоінт шлюзу. З погляду застосунку, це адреса, за якою він звертається до моделі.
- Шлюз перевіряє, хто надсилає запит і що йому дозволено: перш ніж переслати запит, він перевіряє облікові дані. Часто це віртуальний ключ, виданий команді або продукту. Якщо ви налаштували запобіжники для вхідних даних, промпти також можна сканувати на наявність конфіденційних даних або спроб перевизначити інструкції моделі.
- Шлюз перевіряє, чи не має він уже готової відповіді: якщо ввімкнено кешування, придатний запит, що збігається з попереднім, можна обслужити збереженою відповіддю без нового виклику постачальника. Деякі шлюзи також пропонують семантичне кешування, яке шукає не ідентичні, а достатньо схожі запити. Це може підійти для трафіку на кшталт FAQ.
- Шлюз обирає, куди спрямувати запит: у запиті може бути вказано конкретну модель або псевдонім. Шлюз шукає відповідний маршрут у вашій конфігурації. Також можна налаштувати резервний маршрут: якщо постачальник A не відповідає вчасно, шлюз може спробувати постачальника B.
- Шлюз готує виклик і повертає відповідь: шлюз перетворює ваш запит на формат обраного постачальника й автентифікує вихідний виклик. Щойно надходить відповідь, шлюз перетворює її на формат, потрібний вашому застосунку.
- Шлюз фіксує, що сталося: коли ввімкнено журналювання, шлюз записує подробиці, зокрема хто здійснив виклик, яка модель його обслужила, кількість токенів, затримку та вартість. Саме такого журналу бракувало інженерові з Reddit, якого ми згадали на початку.
4 речі, які потрібно знати, перш ніж запускати шлюз у продакшн
Усе, описане в розділі вище, можливо тому, що шлюз бачить кожен запит, який через нього проходить. У цьому й полягає головний аргумент на його користь. Але водночас це й опис поверхні атаки та залежності від постачальника, які потрібно врахувати під час планування.
Тепер шлюз — найцінніший вузол у вашому ШІ-стеку
Шлюз централізує доступ. А отже, він також зосереджує в межах досяжності одного сервісу чимало облікових даних. Команда безпеки Microsoft перелічує, що може зберігати або отримувати розгортання LiteLLM: API-ключі постачальників, власний майстер-ключ, записи віртуальних ключів, рядки підключення до бази даних, налаштування маршрутизації та політики тенантів.
У жовтні 2026 року Check Point Research оприлюднила інформацію про дві вразливості високого рівня ризику в LiteLLM:
- CVE-2026-35029 дозволяла автентифікованим користувачам, зокрема тим, що мають лише права на читання, отримувати доступ до адміністративних функцій і перебирати контроль над екземпляром.
- CVE-2026-59823 дозволяла користувачам перенаправляти запити на підконтрольний їм сервер і перехоплювати ключі постачальників.
Обидві вразливості виправлено у версії 1.83.9. Застосунок, який використовує шлюз, не повинен мати змоги змінювати його налаштування.
Вашим запобіжникам потрібна політика на випадок збою
Огляд Pillar Security від 4 жовтня 2026 року документує інтеграції сторонніх запобіжників у провідних шлюзах, зокрема LiteLLM, Kong, TrueFoundry, Portkey, Azure API Management та Apigee. (Pillar продає запобіжники, тож майте це на увазі, читаючи її рекомендації.)
Хук — це точка на шляху запиту (зазвичай перед тим, як промпт надходить до моделі, або після повернення відповіді), де шлюз може передати вміст зовнішньому сканеру для отримання вердикту. Блокувальна перевірка чекає на цей вердикт, перш ніж пропустити трафік далі. У документації Portkey їх називають before_request_hooks і after_request_hooks; у TrueFoundry їх чотири: додано перевірки до і після викликів інструментів MCP.
Тепер варто перевірити дві речі:
- Що станеться, якщо відмовить сам сканер? Якщо ви заблокуєте запит, то зупините неперевірений трафік, але можете перервати роботу застосунку. Якщо пропустите — застосунок працюватиме далі без цієї перевірки. Журнал збоїв згодом покаже, що перевірки не було, і це корисно, але не те саме, що справді її виконати.
- Чи можна замінити сканер? Якщо інший постачальник не підтримується, можливо, доведеться оновити застосунок або використати інший проксі для підключення.
MCP-хуки TrueFoundry розширюють охоплення шлюзу із запитів до моделей на виклики інструментів. Але шлюз може перевіряти лише той трафік, що проходить через нього. Агент для програмування, який виконує команду на комп’ютері розробника, може опинитися поза цим полем зору.
Інструмент Perplexity з відкритим кодом Numbat працює саме з цього боку. Numbat підключається до підтримуваних агентів через локальні хуки й може перевіряти заплановані дії, як-от команди оболонки чи запис файлів, до їх виконання. Функція блокування необов’язкова й за замовчуванням вимкнена. Шлюз бачить трафік моделей, що маршрутизується через нього. Numbat дає змогу побачити, що агент робить з отриманою відповіддю.
Потрібно знати, де закінчується контроль шлюзу
Forkast News виокремлює три лінії розвитку, що підходять до шлюзу з різних боків:
- Шлюзи, орієнтовані на LLM: LiteLLM і Portkey починали з викликів моделей: перетворення запитів між форматами різних постачальників, маршрутизації запитів і відстеження токенів. Тепер вони додають засоби контролю для викликів інструментів.
- Платформи керування API: Kong, Apigee від Google та Azure API Management починали з автентифікації, дозволів і керування трафіком, а згодом додали підтримку моделей і специфічних для ШІ правил.
- Інфраструктура, створена для агентів: наприклад, agentgateway побудовано навколо взаємодії агентів із моделями, інструментами та іншими агентами, зокрема через MCP і A2A.
Ключове питання для вибору — що саме ви маршрутизуєте:
- Лише виклики моделей? Шлюз, орієнтований насамперед на LLM, — добра відправна точка.
- Виклики моделей у компанії, де вже повно правил для API? Почніть із платформи, яка у вас уже є.
- Агенти викликають інструменти, які викликають моделі? Перевірте, чи охоплено й ці з’єднання.
Ви створюєте спільну точку відмови
Припустімо, ваш чат-бот підтримки використовує OpenAI, а дослідницький інструмент — Anthropic, і обидва підключаються через той самий шлюз. Але якщо цей шлюз перестане працювати, обидва інструменти втратять доступ до своїх моделей, навіть якщо OpenAI та Anthropic працюють у штатному режимі.
Таке справді траплялося. Під час збою 12 червня 2025 року частка помилок AI Gateway від Cloudflare сягнула піку в 97%. Шлюз зберігав налаштування в сервісі Workers KV від Cloudflare, і саме цей сервіс давав збій.
Якщо ви самі розгортаєте шлюз, тримайте запущеною ще одну копію, яка зможе перебрати навантаження, якщо одна з них вийде з ладу. Якщо ваш шлюз розміщує хтось інший, запитайте, як вони забезпечують його роботу під час збоїв і що відбувається з вашими запитами під час відновлення.
Ключові функції, на які варто звертати увагу в LLM-шлюзах
Ви надаєте шлюзу доступ до облікових даних усіх користувачів, тож варто бути вимогливими до того, що він дає натомість.
- Один API для кількох постачальників: ваш код використовує один формат, часто сумісний з OpenAI, а шлюз виконує перетворення. Постачальники LLM також ідуть назустріч. Наприклад, Agent API від Perplexity підтримує інтерфейс Responses API від OpenAI, тож команди можуть повторно використовувати наявні клієнтські бібліотеки OpenAI.
- Віртуальні ключі з прив’язаними правилами: кожна команда чи продукт отримує власний ключ із правилами щодо дозволених моделей, лімітів запитів і витрат.
- Маршрутизація та резервування: шлюз спрямовує запити до моделей відповідно до ваших налаштувань, які можуть надавати перевагу вартості, швидкості або певному постачальнику. Якщо виклик не вдається, шлюз може спробувати іншу модель. Agent API від Perplexity дає змогу вказати до п’яти моделей, зокрема від різних постачальників, у бажаному порядку.
- Кешування: збережена відповідь може позбавити вас ще одного виклику постачальника. Деякі шлюзи зіставляють ідентичні запити; інші також можуть зіставляти запити зі схожим значенням. Перевірте, чи можна розмежовувати кешовані відповіді за користувачами або командами і чи можна вимкнути кешування для персоналізованих або чутливих до часу відповідей.
- Потокова передача та узгоджені помилки: відповіді надходять у міру генерування, а помилки постачальників перетворюються у формат, який ваш застосунок може обробити. Перевірте, що відбувається, коли ви додаєте ШІ-запобіжники.
- Журналювання та розподіл витрат: шлюз фіксує, хто здійснив виклик, яка модель його обслужила, скільки токенів використано, скільки часу це зайняло, а також орієнтовну вартість. Перевірте, чи містять журнали промпти й відповіді та скільки часу вони зберігаються.
- Хуки для запобіжників: це точки на шляху запиту, де шлюз може надіслати вміст зовнішньому сканеру для отримання вердикту. Зазвичай вони розташовані перед запитом до моделі або після її відповіді. Перевірте, чи запити зупиняються, чи проходять далі, коли сканер дає збій, і чи можна підключити інший сканер.
- Адміністративний інтерфейс, доступ до якого можна обмежити: шлюз керує доступом до облікових даних постачальників і правил, якими користуються всі. Переконайтеся, що адміністративний доступ можна обмежити окремо від трафіку застосунків і що користувачі з правами лише на читання не можуть змінювати налаштування. Головному вентилю потрібен замок.
Які інструменти можна використати для створення LLM-шлюзу?
Списки функцій на ринку перетинаються. В одному треді на Reddit про внутрішній доступ до моделей автор запитав: який шлюз не вимагатиме окремого інженера?
На нашу думку, це правильне запитання, і на нього є чотири відповіді — залежно від того, яку частину роботи ви готові взяти на себе.
Напишіть власний шлюз
Мінімальний шлюз виконує короткий перелік завдань: приймає запити, перевіряє ключ того, хто звертається, додає облікові дані постачальника, пересилає виклик і записує результат у журнал. Але підтримка різних форматів постачальників додає роботи. Як і підтримання всієї системи в робочому стані.
Якщо ви вже використовуєте Envoy, його фільтр зовнішньої обробки дає змогу підключити сервіс, який перевіряє та змінює запити й відповіді. Проте цей сервіс усе одно доведеться створити й підтримувати самостійно.
У треді r/LLMDevs про те, чи зменшує шлюз витрати, u/QuanTradin розповів, що журналювання токенів і прапорця влучання в кеш для кожного виклику допомогло виявити два завдання, які платили повну ціну за ідентичні промпти.
«...виправлення цього дало більше, ніж дав би будь-який рівень маршрутизації».
Це досвід, про який розповів користувач, і з нього добре почати. З’ясуйте, за що ви платите, перш ніж вибудовувати складні способи маршрутизації.
Розгорніть шлюз з відкритим кодом на власній інфраструктурі
LiteLLM — поширений вибір у цьому випадку: сумісний з OpenAI, підтримує широкий спектр постачальників і має велику спільноту. Bifrost — альтернатива, створена з розрахунку на низькі накладні витрати на кожен запит. На Helicone варто звернути увагу, якщо спостережуваність — головний пункт у вашому списку вимог.
LiteLLM, як і будь-який продукт, має обмеження для деяких команд. У треді r/aiagents про альтернативи власній розробці u/Own_Bar_920 розповів, що LiteLLM добре справлявся з маршрутизацією, але не задовольнив їхніх потреб щодо версіонування промптів між командами та безперервного оцінювання під час заміни моделей, тож їм довелося перейти на окремий інструмент.
Ці потреби виходять за межі базової маршрутизації шлюзу, і саме в цьому суть: якщо головна потреба — маршрутизація, LiteLLM їм цілком підійшов.
Ви отримуєте готовий набір функцій (частина з яких залежить від редакції) і залишаєте шлюз у межах своєї мережі. Водночас на вас лягає встановлення патчів — наочно це показали згадані раніше повідомлення Check Point про вразливості — і доступність шлюзу, що проілюстрував розділ про спільну точку відмови.
Але закладіть у бюджет людину, яка за нього відповідатиме. В одному з тредів r/LLMDevs про шлюзи для внутрішнього доступу одним із побоювань було обслуговування. u/Informal-Writer9685 хотів щось, що «не потребує окремого інженера для підтримки», і запитував, чи є нестабільність LiteLLM під час оновлень, про яку повідомляють користувачі, реальною проблемою в їхньому масштабі, чи це стосується лише продакшну.
Використовуйте керований шлюз
Cloudflare AI Gateway, Vercel AI Gateway, OpenRouter і хостинговий шлюз Portkey забезпечують роботу сервісу за вас. Щоб сумісний застосунок надіслав перший запит, може знадобитися лише змінити URL-адресу та додати API-ключ.
Компроміс полягає в тому, що кожен промпт тепер проходить через третю сторону, перш ніж потрапити до постачальника. Це ще один обробник даних у вашій документації з комплаєнсу, а збій самого шлюзу — інцидент постачальника, і виправляти його — не ваше завдання.
Наприклад, 17 і 19 лютого 2026 року в OpenRouter сталися збої тривалістю 38 і 35 хвилин відповідно після відмови залежності, що відповідає за кешування. Деякі клієнти отримували помилки «User not found» і витрачали час на налагодження цілком дійсних API-ключів. Проблема була в інфраструктурі шлюзу.
Утім, OpenRouter варто віддати належне: компанія опублікувала докладний розбір інциденту й додала захист, щоб збій кешу не перевантажував її базу даних. Керований шлюз на кшталт OpenRouter може спростити доступ, але, як зазначає u/QuanTradin на r/LLMDevs, об’єднання рахунків саме по собі не зменшує витрат.
Розширте наявний API-шлюз
Якщо ваші сервіси вже обслуговує Kong, Apigee або Azure API Management, кожен із них має специфічні для ШІ можливості: Kong AI Gateway, політики ШІ-шлюзу Apigee та ШІ-шлюз Azure API Management. Ви можете спиратися на вже наявні автентифікацію, мережеві правила й операційні процедури, додаючи засоби контролю моделей за допомогою плагінів або політик.
У великій компанії це може бути шлях найменшого організаційного опору. Проте ШІ-функції тут молодші, ніж в окремих шлюзах. Обов’язково протестуйте обмеження частоти запитів на основі токенів і потокову передачу з повним набором плагінів або політик, які плануєте використовувати.
Тож неодмінно встановіть головний вентиль — всемогутній шлюз. Утім, інженер зі вступу має рацію: доступ компанії до моделей не повинен залежати від того, у кого випадково лежить потрібний ключ у шухляді.
Шлюз розв’язує цю проблему, беручи ці ключі під централізований контроль, а отже, відчинена шухляда стає ще ризикованішою. Тож треба знати, чия це шухляда.
Поширені запитання про LLM-шлюзи
Чи є LLM-шлюз безкоштовним?
Якщо йдеться про категорію загалом, то деякі LLM-шлюзи мають безкоштовні версії.
LLM-шлюзи бувають різні: від безкоштовного програмного забезпечення з відкритим кодом до платних тарифів приблизно від 50 $ на місяць та індивідуальних цін для корпоративних розгортань. А деякі натомість стягують відсоток: наприклад, тариф Standard в OpenRouter додає 5,5% до вартості придбаних кредитів.
Який LLM-шлюз найкращий?
Яку роботу ви готові взяти на себе?
- Зверніть увагу на Bifrost або Helicone, якщо хочете розгорнути шлюз на власній інфраструктурі й самостійно керувати конфігурацією.
- Керований варіант, як-от OpenRouter або Vercel AI Gateway, підійде командам, які хочуть, щоб сервіс обслуговував хтось інший.
- Якщо ви вже використовуєте Kong або Azure API Management, спершу перевірте їхні можливості для роботи зі ШІ.
Протестуйте шлюзи з короткого списку на власних запитах, зокрема перевірте, що відбувається, коли постачальник дає збій.
Чи є в AWS LLM-шлюз?
Так. Amazon Bedrock AgentCore Gateway підтримує виклики моделей через те, що AWS називає «inference targets» (цілі інференсу). Вони дають змогу застосункам звертатися через одну кінцеву точку до постачальників, зокрема Amazon Bedrock, OpenAI та Anthropic, а шлюз бере на себе облікові дані постачальників і маршрутизацію.