Перейти к содержимому

Olivares AI и LLM-шлюзы и observability (LiteLLM, Langfuse)

Распространённый, разумный self-hosted стек сочетает LLM-шлюз (например, LiteLLM) с платформой LLM observability (например, Langfuse). Если у вас он есть, вы вполне обоснованно можете спросить, нужна ли вам вообще плоскость управления (control plane). Эта страница отвечает честно — включая случаи, когда ответ нет.

Что этот стек делает хорошо (используйте его для этого)

Заголовок раздела «Что этот стек делает хорошо (используйте его для этого)»
  • LiteLLM — единый, OpenAI-совместимый шлюз перед множеством провайдеров: маршрутизация, fallback’и, повторы, виртуальные ключи, бюджеты и лимиты частоты на ключ, а также учёт стоимости вызовов моделей, которые через него проходят.
  • Langfuse — LLM-инженерия и observability: трассировки запросов/ответов, управление промптами и версионирование, оценки (evaluations), наборы данных и UI для разработчика для отладки цепочек.

Если ваша задача — «инструментировать LLM-вызовы моего приложения, отлаживать промпты и управлять доступом к моделям из одной точки», этот стек превосходен и self-hostable. Чтобы это делать, плоскость управления вам не нужна, и мы не будем притворяться, что это не так.

Измерение LLM-шлюз + observability Olivares AI
Объект внимания Вызов модели (промпт → завершение) Агент и каждый ресурс, который он читает/пишет — БД, объектные хранилища, MCP, инструменты, файлы
Точка наблюдения В пути запроса (proxy/SDK); видит, что отправляет приложение Наблюдение вне пути данных за телеметрией, нативным аудитом и резервным механизмом на уровне ядра; принуждение в пути выполнения управляемых действий
Источник истины То, что сообщает приложение/прокси Самоотчётная телеметрия, сверенная с собственным журналом системы — pgAudit (чтение vs запись), CloudTrail (доступ к объектам), резервный механизм eBPF
Ключевой вопрос «Что сделал этот промпт и сколько он стоил?» «Использует ли этот агент доступ, который никто не предоставлял?» — Дрейф Permitted-vs-Observed
Принуждение (enforcement) Шлюз может ограничивать вызовы моделей (ключи, бюджеты) Шлюзы deny-closed на действиях и доступе к ресурсам: согласования, PEP на хуках Claude Code, ограничение инструментов MCP, аварийные выключатели (kill switches)
Артефакт аудита Трассировки / логи для отладки Журнал только для добавления (append-only), сцепленный по хешу (hash-chained), подписанный Ed25519, проверяемый вне устройства (off-box), экспортируемый как пакеты доказательств OSCAL
Профиль развёртывания Self-hostable Self-hosted или air-gapped; плоскость данных никогда не покидает вашу границу; AGPL, source-available

Несущее отличие — достоверная информация (ground truth). Трассировка observability говорит вам, что приложение сказало, что оно сделало. Она не может сказать вам, что агент добрался до таблицы, которую трассировка не упоминала. Olivares AI сверяет кооперативный сигнал с плоскостью данных, так что «что агент затронул» — это сверенный факт, а не самоотчёт. См. Словарь аналитиков, почему это первая из наших трёх полос.

Это «и», а не «или» — мы поглощаем вашу телеметрию

Заголовок раздела «Это «и», а не «или» — мы поглощаем вашу телеметрию»

Карта доступа получает spans семантической конвенции OpenTelemetry GenAI от вашего шлюза или инструмента трассировки. По умолчанию вызовы моделей не используют встроенный inference-прокси Olivares AI; он применяет контроль к направленным через него вызовам, как и шлюзы MCP tools/call и делегирования A2A на своих путях.

Управляемые сессии Claude Code устанавливают хуки вызовов инструментов, которые обращаются к PEP движка, подключённому по умолчанию. Эти хуки находятся в пути выполнения и работают по принципу deny-closed: если PEP недоступен из-за отказа или перезапуска движка, каждый управляемый вызов инструмента запрещается. Поэтому доступность движка важна даже при прямых вызовах моделей у провайдера.

Чтобы использовать путь наблюдения вместе с существующим стеком:

  • Оставьте LiteLLM как ваш шлюз моделей, а Langfuse — для трассировки и работы с промптами, ориентированной на разработчика.
  • Направьте поток OTel gen-ai в Olivares AI как один из сверяющих источников и позвольте карте доступа, обнаружению дрейфа и журналу выполнять общесредовый governance-уровень поверх.

→ Поглощение OpenTelemetry GenAI · Корпоративный OTel для Claude Code

Честность работает в обе стороны. Эта плоскость управления вам, вероятно, не нужна, если:

  • Ваша единственная цель — трассировка и отладка LLM-вызовов в одном-двух приложениях, с песочницей для промптов — Langfuse сам по себе подойдёт лучше.
  • Вам просто нужен мультипровайдерный шлюз с бюджетами и отказоустойчивостью — это задача LiteLLM, и мы интегрируемся с этим паттерном, а не переизобретаем его.
  • У вас нет среды (estate) для управления: один сервис, одна модель, нет агентов, затрагивающих базы данных/объектные хранилища/MCP, и нет аудиторских или регуляторных обязательств.

Olivares AI оправдывает своё место, когда вопросы становятся общесредовыми и состязательными (adversarial): какие агенты существуют, до чего каждый из них реально может дотянуться, где доступ дрейфует от политики, могу ли я доказать это аудитору и могу ли я остановить плохое действие по принципу deny-closed — и всё это без отправки этой картины в чужое облако.