Когда у тебя не один AI-агент, а несколько, и каждый может обращаться к разным моделям и провайдерам, быстро надоедает раскладывать API-ключи и лимиты по каждому сервису отдельно. Так в лабе появился OmniRoute — self-hosted шлюз, который даёт единую точку входа к 230+ провайдерам ИИ с поддержкой MCP и A2A.
Один шлюз вместо десятка ключей
Разворачивал его через минимальный профиль без лишних зависимостей — диск на тот момент был ограничен, так что выбор пал на самый компактный вариант установки. После первого старта применяются собственные миграции базы, и сервис становится доступен по внутреннему адресу — а дальше нужно было решить вопрос с доменом.
OmniRoute стал первым сервисом, для которого я обкатал file-provider паттерн подключения к Traefik — то есть маршрутизацию для сервиса, который физически не находится в докер-сети реверс-прокси. Оказалось, что этот паттерн отлично работает и подхватывается без перезапуска — с тех пор я использую его как шаблон для новых сервисов на других хостах лабы.
Headroom: экономия токенов через компрессию контекста
Второй кусок этой истории — Headroom, прокси-слой, который сжимает трафик, попадающий в LLM: логи, вывод инструментов, файлы, чанки для RAG. На практике это давало сжатие на 60–95% в зависимости от типа данных, причём компрессия обратима — при необходимости можно запросить оригинал обратно.
Развёртывание не обошлось без археологии: на диске обнаружились сразу три параллельные установки разных версий, а системный сервис незаметно продолжал использовать старую. Причина оказалась прозаичной — новая версия требовала набор процессорных инструкций, которого не было на конкретном узле кластера. Иногда самая полезная часть работы с инфраструктурой — это не развёртывание нового, а честная ревизия того, что уже стоит.
Как это связано вместе
Headroom проксирует запросы дальше — в OpenRouter, а не напрямую к провайдеру, и таким же образом мои внутренние агенты в n8n используют его как OpenAI-совместимый эндпоинт. В итоге получилась связка: один шлюз для доступа к моделям (OmniRoute), один слой для экономии токенов на входящих данных (Headroom) — и обе части работают прозрачно для остальной агентной платформы, которая просто стучится по знакомому OpenAI-совместимому API.
Чему это меня научило
- Единая точка входа к моделям — это не роскошь, а практическая необходимость, когда агентов становится больше одного.
- Обратимая компрессия контекста ощутимо снижает счета за токены на «шумных» данных вроде логов и вывода инструментов.
- Перед тем как разворачивать новую версию сервиса, стоит проверить, что железо вообще её потянет — иначе легко потратить вечер на диагностику совершенно не той проблемы.
Комментарии