Распространённый и разумный self-hosted стек сочетает LLM gateway (например, LiteLLM) с платформой LLM observability (например, Langfuse). Если он у вас есть, вы можете обоснованно спросить, нужен ли вам control plane вообще. Эта страница отвечает на это честно — включая случаи, когда ответ — нет.
TL;DR: LiteLLM и Langfuse занимаются вызовами моделей, которые делает ваше приложение: маршрутизировать их, трассировать, управлять промптами, учитывать стоимость на вызов. Olivares AI занимается каждым агентом в вашем парке и всем, что он читает или пишет — базы данных, object stores, MCP-серверы, инструменты, файлы — и тем, соответствует ли это разрешённому политикой. Разная высота. Они компонуются; мы принимаем тот же OpenTelemetry gen-ai сигнал, который они генерируют и потребляют.
Что этот стек делает хорошо (используйте его для этого)
- LiteLLM — унифицированный, OpenAI-совместимый gateway перед многими провайдерами: маршрутизация, fallbacks, retries, виртуальные ключи, бюджеты и rate limits на ключ, и учёт стоимости вызовов моделей, проходящих через него.
- Langfuse — LLM-инженерия и observability: трассы запросов/ответов, управление и версионирование промптов, оценки, datasets и интерфейс для разработчиков для отладки цепочек.
Если ваша задача — «инструментировать LLM-вызовы моего приложения, отлаживать промпты и управлять доступом к моделям из одного endpoint», этот стек отлично подходит и может быть self-hosted. Вам не нужен control plane для этого, и мы не будем утверждать обратное.
Где Olivares AI структурно отличается
| Измерение | LLM gateway + observability | Olivares AI |
|---|---|---|
| Единица интереса | Вызов модели (prompt → completion) | Агент и каждый ресурс, который он читает/пишет — БД, object stores, MCP, инструменты, файлы |
| Точка наблюдения | На пути запроса (proxy/SDK); видит, что приложение отправляет | Вне канала, read-first; наблюдает телеметрию, native audit и backstop на уровне ядра — никогда на пути данных |
| Источник истины | Что приложение/proxy сообщает | Self-reported телеметрия, подтверждённая собственными записями системы — pgAudit (чтение vs запись), CloudTrail (доступ к объектам), eBPF backstop |
| Ключевой вопрос | «Что сделал этот промпт и сколько он стоил?» | «Этот агент использует доступ, который никто ему не выдавал?» — Drift Permitted-vs-Observed |
| Enforcement | Gateway может блокировать вызовы моделей (ключи, бюджеты) | Deny-closed шлюзы на действия и доступ к ресурсам: одобрения, Claude Code hooks PEP, gating инструментов MCP, kill switches |
| Артефакт аудита | Трассы / логи для отладки | Append-only, hash-chained, Ed25519-signed ledger, верифицируемый off-box, экспортируемый как OSCAL evidence packages |
| Модель развёртывания | Self-hostable | Self-hosted или air-gapped; data plane никогда не покидает ваш периметр; AGPL, source-available |
Несущее отличие — источник истины. Трасса observability говорит вам, что приложение сказало, что оно сделало. Она не может сказать вам, что агент обратился к таблице, которую трасса никогда не упоминала. Olivares AI перекрёстно проверяет кооперативный сигнал по data plane, так что «к чему агент обратился» — это подтверждённый факт, а не self-report.
Это «и», а не «или» — мы принимаем вашу телеметрию
Olivares AI — не замена вашему gateway или вашему инструменту трассировки, и он не стремится занять путь запроса, который они занимают. Он потребляет тот же сигнал: control plane принимает spans OpenTelemetry GenAI semantic conventions, ту же gen-ai телеметрию, которую эти инструменты генерируют и потребляют. Поэтому здоровая конфигурация такова:
- Оставьте LiteLLM как ваш gateway моделей и Langfuse для трассировки, ориентированной на разработчиков, и работы с промптами.
- Направьте OTel gen-ai поток на Olivares AI как один подтверждающий источник, и позвольте access map, обнаружению drift и ledger обеспечить управление на уровне всего парка сверху.
Когда вам не стоит обращаться к Olivares AI
Честность работает в обе стороны. Вам, вероятно, не нужен этот control plane, если:
- Ваша единственная цель — трассировать и отлаживать LLM-вызовы в одном-двух приложениях, с playground промптов — Langfuse отдельно подходит лучше.
- Вам просто нужен multi-provider gateway с бюджетами и failover — это задача LiteLLM, и мы интегрируемся с этим паттерном, а не переимплементируем его.
- У вас нет парка для управления: один сервис, одна модель, нет агентов, обращающихся к базам данных / object stores / MCP, и нет обязательств по аудиту или регулированию.
Olivares AI оправдывает своё место, когда вопросы становятся масштабными и состязательными: какие агенты существуют, к чему каждый реально может обратиться, где доступ отклоняется от политики, могу ли я доказать это аудитору, и могу ли я остановить плохое действие deny-closed — всё без отправки этой картины в чужое облако.