Мой блог
Обзор Agentgateway: централизация и контроль работы с ИИ
Современные инфраструктурные задачи требуют централизации запросов к искусственному интеллекту, для чего применяется специальное open-source-решение — открытый шлюз для управления ИИ, написанный на языке Rust компанией Solo.io в рамках экосистемы Linux Foundation.
Программный продукт Agentgateway (AGW) выполняет роль универсального оркестратора трафика, обеспечивая взаимодействие с различными поставщиками моделей, протоколами агентских коммуникаций и механизмами безопасности.












Что представляет собой Agentgateway
Инструмент проектировался как специализированный шлюз, способный закрывать сразу несколько ключевых потребностей при работе с современными языковыми моделями. Официальная документация определяет базовый функционал платформы через следующие направления:
- организация шлюза для подключения к внешним LLM-провайдерам;
- обработка трафика по протоколам MCP и A2A (Agent-to-Agent);
- расширенное управление сетевыми и информационными потоками;
- направление инференса запросов.
Блок управления трафиком отвечает за ограничение расхода токенов, формирование лимитов, модификацию HTTP-заголовков (добавление или удаление), а также за детальную проверку содержимого передаваемых сообщений. Развертывание платформы поддерживается в двух основных вариантах: в виде автономного standalone-модуля или в кластере Kubernetes.

Причины выбора и сравнение с аналогами
Перед внедрением инструмент проходил предварительную оценку наряду с другими решениями, включая lunar.dev и MCPJungle. Анализ docker-образов, тестовое развертывание и проверка базовых сценариев показали, что альтернативные инструменты часто страдают излишней сложностью первоначальной настройки или требуют обязательного постоянного подключения к интернету, а в некоторых случаях содержат встроенные учетные данные и внешние хосты для телеметрии.
Благодаря рекомендациям профильных специалистов выбор был сделан в пользу AGW, что позволило в дальнейшем применять проверенные инженерные практики при развертывании.
Процесс запуска standalone-версии
Для практического развертывания автономного экземпляра версии 1.5.0 требуется установленная среда Docker. Первым шагом выполняется загрузка официального контейнера с помощью команды:
docker pull cr.agentgateway.dev/agentgateway:v1.5.0
Затем создается локальная директория для маппинга данных, где будут храниться файл конфигурации config.yaml и база данных SQLite:
mkdir agw-config
Следующим этапом запускается контейнер. Привязка к адресу 127.0.0.1 ограничивает внешний доступ к панели управления до завершения настройки первичной авторизации:
docker run -d --name agentgateway --user "$(id -u):$(id -g)" -v "$PWD/agw-config:/config" -p 127.0.0.1:4000:4000 cr.agentgateway.dev/agentgateway:v1.5.0

После успешной инициализации в логах фиксируется готовность компонентов, после чего пользователь может открыть графический интерфейс в браузере по адресу http://localhost:4000/ui, активировать необходимые блоки для работы с LLM и MCP и продолжить настройку системы.
Основные архитектурные понятия
Архитектура платформы строится на нескольких взаимосвязанных сущностях, определяющих логику прохождения запросов.
Gateways и Listeners
Ворота (Gateway) представляют собой точку входа в шлюз, задаваемую именованным портом, набором эндпоинтов и сетевым протоколом (HTTP, HTTPS, TCP, TLS) с поддержкой сертификатов. Каждый объект шлюза содержит как минимум одного слушателя (Listener). Несколько слушателей задействуются в ситуациях, когда к шлюзу привязано несколько доменных имен, требующих раздельных TLS-сертификатов.
Routes и Backends
Дороги (Routes) обрабатывают и перенаправляют поступающий трафик, определяясь на верхнем уровне и привязываясь к воротам по имени. Бэкенды (Backends) отвечают за дальнейшую отправку запросов конкретному IP-адресу, хосту, LLM-провайдеру или специализированному MCP-серверу.
Policies
Политики безопасности и мониторинга применяются на разных этапах обработки трафика. Существуют правила для ворот и слушателей (проверка JWT, базовая аутентификация, API-ключи до выбора маршрута), политики для дорог, а также бэкенд-политики (управление TLS, авторизация, изменение заголовков после определения конечного узла).
Интеграция LLM и MCP
Добавление новых поставщиков моделей осуществляется в разделе управления провайдерами (Providers), где после выбора нужного сервиса задаются параметры моделей в соответствующем разделе (Models).
Интеграция Model Context Protocol (MCP) поддерживает три транспортных протокола: современный Streamable HTTP, устаревший SSE и вариант передачи через командную строку (Command Line).
Лучшие практики эксплуатации
Для безопасной и стабильной работы шлюза в производственной среде рекомендуется следовать ряду проверенных рекомендаций.
Безопасность панели управления и OIDC
Доступ к веб-интерфейсу административной панели должен быть ограничен. Интеграция с корпоративными системами идентификации, такими как GitLab, реализуется через протокол OIDC в разделе настроек Settings → OIDC, а конкретные права доступа пользователей настраиваются в блоке Settings → Authorization.
Конфигурация и шифрование
Интерфейс управления шлюзом позволяет изменять параметры в реальном времени, записывая их в файл config.yaml. Для предотвращения нежелательных правок через UI можно перевести конфигурационный файл в режим только для чтения (read-only). Для защиты внешних подключений обязательно задействуется протокол HTTPS с валидными сертификатами.

Конфиденциальные заголовки и API-ключи
Во избежание утечки конфиденциальных данных в системные логи используется маскирование заголовков. Параметр sensitiveHeaders задается непосредственно в файле конфигурации, после чего требуется перезапуск шлюза:

config:
sensitiveHeaders:
- x-api-key
- cookie
- x-tenant-secret
Шлюз скрывает указанные значения в трассировке и отладке, сохраняя при этом возможность чтения реальных данных на бэкенде через выражения CEL.

Дополнительно для пользователей настраивается авторизация по API-ключам с привязкой лимитов потребления токенов и ограничением доступных моделей. Для корректной работы лимитов и построения графиков расхода в системе задается детальный ценовой прайсинг в USD для каждой модели (включая затраты на ввод, вывод и кэширование).


