Надёжность и маршрутизация22 июня 2026 г.Flatkey Team

Платформы наблюдаемости ИИ: что они делают и как выбрать (2026)

Платформы наблюдаемости ИИ записывают промпты, токены, затраты, шаги агентов и оценки качества. Сравните Langfuse, LangSmith, Arize, Datadog, Helicone, Braintrust и Logfire по функциям и ценам на октябрь 2026 года, с примерами кода OpenTelemetry.

Платформы наблюдаемости ИИ: что они делают и как выбрать (2026)

Платформы наблюдаемости ИИ: что они делают и как выбрать (2026)

Платформа наблюдаемости ИИ (AI observability) записывает каждый вызов модели, шаг агента и вызов инструмента в вашем приложении (промпт, ответ, токены, стоимость, задержку и ошибки), чтобы вы могли отлаживать, оценивать и контролировать расходы в продакшене. Ведущие варианты на октябрь 2026 года: Langfuse, LangSmith, Arize (Phoenix и AX), Datadog LLM Observability, Helicone, Braintrust и Pydantic Logfire; большинство из них принимает трассировки OpenTelemetry. Выбирайте исходя из того, где должны храниться ваши данные, как вы оцениваете качество и сколько готовы платить за трассировку.

В этом руководстве объясняется, что такое наблюдаемость ИИ, какие сигналы собирать, как основные платформы соотносятся по функциям и опубликованным ценам и как инструментировать приложение менее чем за 30 строк кода. Цены взяты с официальных страниц тарифов каждого поставщика по состоянию на 24 октября 2026 года.

Что такое наблюдаемость ИИ?

Наблюдаемость ИИ — это практика сбора трассировок, метрик, логов и оценок качества из ИИ-систем, позволяющая в любой момент ответить на три вопроса: Что сделала модель? Был ли ответ хорошим? Сколько это стоило? Она расширяет классический мониторинг приложений, который отслеживает доступность и задержку, сигналами, важными только для языковых моделей:

  • Входы и выходы: промпт, извлечённый контекст и сгенерированный ответ.
  • Расход токенов и стоимость: входные, выходные и кэшированные токены по запросу, пользователю и функции.
  • Трассировки агентов: каждый шаг рассуждения, вызов инструмента и повтор в многошаговом выполнении.
  • Качество: оценки автоматических оценщиков, отзывы пользователей и отметки о галлюцинациях или нарушениях политик.
  • Метаданные модели и провайдера: какая модель ответила, по какому маршруту и с какими параметрами.

Традиционный мониторинг сообщит, что запрос выполнялся 9 секунд. Наблюдаемость ИИ объяснит, что он выполнялся 9 секунд, потому что агент трижды вызвал инструмент поиска, второй вызов модели получил ошибку 429, а резервная модель выдала ответ, не прошедший вашу проверку обоснованности (groundedness).

Мониторинг, наблюдаемость и оценка: в чём разница

Практика На какой вопрос отвечает Типичный результат
Мониторинг Работает ли система и укладывается ли в пороги? Дашборды, алерты по задержке и доле ошибок
Наблюдаемость Почему именно этот запрос повёл себя так? Трассировки с промптами, вызовами инструментов, токенами и метаданными
Оценка Корректен ли, безопасен и полезен ли результат? Оценки по тестам, LLM-судьям или ручной проверке

Современная платформа наблюдаемости ИИ объединяет все три подхода. Рамочная программа NIST по управлению рисками ИИ также подчёркивает необходимость постоянного измерения и мониторинга развёрнутых ИИ-систем, поэтому многие команды по управлению (governance) теперь требуют такие записи.

Открытый стандарт: соглашения OpenTelemetry GenAI

Для сбора ИИ-телеметрии больше не нужен проприетарный SDK. OpenTelemetry определяет семантические соглашения для генеративного ИИ, задающие стандартные атрибуты вызовов моделей. На октябрь 2026 года эти соглашения поддерживаются в отдельном репозитории semantic-conventions-genai и по-прежнему имеют статус «Development», поэтому некоторые названия ещё могут измениться.

Атрибут Значение
gen_ai.operation.name Операция, например chat или embeddings (обязательный)
gen_ai.provider.name Провайдер, например openai или anthropic (обязательный)
gen_ai.request.model Модель, запрошенная вашим кодом
gen_ai.response.model Модель, которая фактически ответила
gen_ai.usage.input_tokens / gen_ai.usage.output_tokens Количество токенов
gen_ai.response.finish_reasons Причина остановки генерации
gen_ai.conversation.id Группирует реплики одного диалога

Один раз инструментируйте код с этими атрибутами — и сможете отправлять те же трассировки в Langfuse, Arize Phoenix, Datadog, Logfire, Grafana Tempo или любой другой OTLP-совместимый бэкенд. Передача контекста между сервисами выполняется по стандарту W3C Trace Context.

Сравнение платформ наблюдаемости ИИ

Платформа Развёртывание Сильные стороны Опубликованная стартовая цена (окт. 2026)
Langfuse Открытый код (self-host) или облако Трассировка, управление промптами, оценки; ядро под лицензией MIT Hobby бесплатно (50 тыс. единиц/мес.); Core $29/мес.; Pro $199/мес.
LangSmith Облако, гибрид или self-host в Enterprise Глубокая интеграция с LangChain и LangGraph, оценки Developer $0/место (5 тыс. базовых трассировок); Plus $39/место
Arize Phoenix и AX Phoenix с открытым кодом; AX в облаке Нативная трассировка OTel, оценки, анализ дрейфа Phoenix бесплатно при self-host; AX Pro $50/мес. (50 тыс. спанов)
Datadog LLM Observability Облако (часть Datadog) Связывает трассировки LLM с APM, логами и инфраструктурой По использованию; расчёт через Datadog
Helicone Облако или self-host Логирование через прокси одной строкой настройки, кэширование Hobby бесплатно (10 тыс. запросов); Pro $79/мес.; Team $799/мес.
Braintrust Облако Процесс, ориентированный на оценку, эксперименты, скоринг Starter $0 (1 ГБ обработки, 10 тыс. оценок); Pro $249/мес.
Pydantic Logfire Облако Универсальная OTel-наблюдаемость с сильной поддержкой Python и агентов Personal бесплатно (10 млн записей/мес.); Team $49/мес.

Как читать эту таблицу:

  • Данные должны оставаться в вашей среде? Начните с Langfuse или Arize Phoenix — оба можно развернуть у себя.
  • Уже платите за Datadog? Его продукт LLM Observability держит ИИ-трассировки рядом с вашим APM и логами.
  • Работаете на LangChain или LangGraph? LangSmith требует минимальной настройки.
  • Главный приоритет — оценка качества? Braintrust и LangSmith лидируют по экспериментам и процессам скоринга.
  • Нужно обойтись без изменений кода? Инструменты-прокси вроде Helicone или логи вашего ИИ-шлюза собирают трафик на сетевом уровне.

На что смотреть при выборе платформы наблюдаемости ИИ

Используйте этот чек-лист во время пробного периода:

  1. Поддержка OpenTelemetry. Может ли платформа принимать трассировки OTLP с атрибутами gen_ai.* и можно ли экспортировать данные обратно?
  2. Трассировка агентов и инструментов. Показывает ли она вложенные спаны для каждого шага, вызова инструмента и повтора, а не только финальный вызов модели?
  3. Учёт затрат. Рассчитывает ли она стоимость каждого запроса по токенам и вашим реальным ценам, включая кэшированные токены и скидки на пакетную обработку?
  4. Оценки. Можно ли запускать автоматические проверки (LLM-судья, регулярные выражения, эталонные ответы) на продакшен-трассировках и получать алерты при падении оценок?
  5. Контроль приватности. Можно ли маскировать или хешировать промпты, задавать сроки хранения и ограничивать доступ к исходному содержимому?
  6. Единица тарификации. Поставщики берут плату за трассировку, спан, «единицу», ГБ или место. Перед сравнением оцените свой месячный объём в каждой единице.
  7. Self-hosting. Если речь о регулируемых данных, убедитесь, что есть вариант с развёртыванием у себя, и узнайте стоимость его эксплуатации.

Инструментирование вызова LLM на Python с OpenTelemetry

Этот пример записывает один chat completion со стандартными атрибутами GenAI и экспортирует его в любой OTLP-эндпоинт (Langfuse, Phoenix, Logfire или локальный коллектор). Модели вызываются через OpenAI-совместимый эндпоинт, поэтому один и тот же код работает с GPT, Claude, Gemini или DeepSeek.

pip install openai opentelemetry-sdk opentelemetry-exporter-otlp
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"   # your collector or vendor endpoint
export FLATKEY_API_KEY="sk-..."
import os, time
from openai import OpenAI
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter

provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
trace.set_tracer_provider(provider)
tracer = trace.get_tracer("support-bot")

client = OpenAI(api_key=os.environ["FLATKEY_API_KEY"],
                base_url="https://router.flatkey.ai/v1")

def answer(question: str, model: str = "claude-sonnet-5-5") -> str:
    with tracer.start_as_current_span(f"chat {model}") as span:
        span.set_attribute("gen_ai.operation.name", "chat")
        span.set_attribute("gen_ai.provider.name", "flatkey")
        span.set_attribute("gen_ai.request.model", model)
        t0 = time.time()
        r = client.chat.completions.create(
            model=model, max_tokens=300,
            messages=[{"role": "user", "content": question}])
        span.set_attribute("gen_ai.response.model", r.model)
        span.set_attribute("gen_ai.usage.input_tokens", r.usage.prompt_tokens)
        span.set_attribute("gen_ai.usage.output_tokens", r.usage.completion_tokens)
        span.set_attribute("gen_ai.response.finish_reasons", [r.choices[0].finish_reason])
        span.set_attribute("app.latency_ms", int((time.time() - t0) * 1000))
        return r.choices[0].message.content

print(answer("How do I reset my password?"))
provider.shutdown()  # flush spans before exit

В Node.js схема та же, с @opentelemetry/sdk-node:

import OpenAI from "openai";
import { trace } from "@opentelemetry/api";

const tracer = trace.getTracer("support-bot");
const client = new OpenAI({ apiKey: process.env.FLATKEY_API_KEY, baseURL: "https://router.flatkey.ai/v1" });

export async function answer(question, model = "gpt-6.1-sol") {
  return tracer.startActiveSpan(`chat ${model}`, async (span) => {
    span.setAttributes({ "gen_ai.operation.name": "chat", "gen_ai.request.model": model });
    const r = await client.chat.completions.create({ model, messages: [{ role: "user", content: question }] });
    span.setAttributes({
      "gen_ai.response.model": r.model,
      "gen_ai.usage.input_tokens": r.usage.prompt_tokens,
      "gen_ai.usage.output_tokens": r.usage.completion_tokens,
    });
    span.end();
    return r.choices[0].message.content;
  });
}

Не помещайте тела промптов и ответов в атрибуты спанов, если это не разрешено вашей политикой конфиденциальности; многие команды вместо этого логируют хеш или обезличенную копию. В нашем руководстве по логированию payload описаны шаблоны маскирования.

Ваш ИИ-шлюз — тоже источник наблюдаемости

Если приложение вызывает модели через ИИ-шлюз или роутер, шлюз уже видит каждый запрос, поэтому начинать с него дешевле всего. Он собирает данные даже по сервисам, которые ещё не инструментированы. Например, логи использования Flatkey фиксируют для каждого вызова время, модель, входные и выходные токены, стоимость, замаскированный API-ключ и статус; их можно экспортировать в CSV или JSON, а также задавать месячные лимиты расходов и квоты по группам (документация Flatkey по использованию, октябрь 2026 года).

Практичная схема сочетает оба уровня:

Уровень Что он видит лучше всего Пример использования
Логи шлюза Каждый вызов модели, стоимость, статус, ошибки провайдера, фолбэки Расходы по ключу или команде, доля 429 и 5xx, сбои провайдеров
Трассировки приложения Бизнес-контекст, шаги агента, извлечение данных, вызовы инструментов Почему запрос конкретного пользователя завершился ошибкой или плохим ответом
Оценки Качество ответов во времени Выявление регрессий после смены промпта или модели

Свяжите оба уровня общим идентификатором запроса: передавайте trace ID в заголовке или поле метаданных при каждом вызове модели, чтобы переходить от строки лога шлюза к полной трассировке приложения. Рекомендуемый набор метрик см. в статье наблюдаемость LLM API: метрики, трассировки и затраты, а компоновку графиков — в KPI-дашборде ИИ-шлюза.

Метрики, которые важны в продакшене

Метрика Почему важна Идея алерта
Задержка p50 / p95 по моделям Пользователи ощущают хвостовую задержку p95 выше SLO в течение 10 минут
Время до первого токена Качество стриминга Рост TTFT у одного провайдера
Доля ошибок по статусам (429, 5xx, таймаут) Проблемы провайдера или квот Доля 429 выше 2%
Доля фолбэков Скрытые проблемы надёжности Число фолбэков удвоилось за сутки
Стоимость на запрос и на пользователя Контроль бюджета Дневные расходы выше прогноза
Токены на запрос Раздутые промпты и неконтролируемые агенты Выполнения агентов сверх лимита токенов
Оценка качества Регрессии качества Падение оценки после деплоя

Распределяйте затраты по командам и окружениям, чтобы у финансового отдела были ответы; схемы тегирования описаны в руководстве по атрибуции затрат и статье об учёте затрат по окружениям. План внедрения — в чек-листе внедрения наблюдаемости ИИ.

Частые вопросы

Что такое наблюдаемость ИИ?

Наблюдаемость ИИ — это сбор трассировок, метрик, логов и оценок качества из ИИ-приложений, позволяющий понять, что сделала модель или агент, был ли результат хорошим и сколько он стоил. Она добавляет к традиционному мониторингу промпты, токены, вызовы инструментов и оценки.

Какая платформа наблюдаемости ИИ лучшая?

Единственной лучшей платформы нет. Langfuse и Arize Phoenix подойдут командам, которым нужны открытый код и self-hosting, LangSmith — пользователям LangChain, Datadog — командам, уже работающим с Datadog, а Braintrust — процессам с упором на оценку. Протестируйте два варианта на собственных трассировках.

Есть ли бесплатная платформа наблюдаемости ИИ?

Да. На октябрь 2026 года бесплатны Langfuse Hobby (50 тыс. единиц в месяц), LangSmith Developer (5 тыс. базовых трассировок), Helicone Hobby (10 тыс. запросов), Braintrust Starter и Logfire Personal (10 млн записей), а Langfuse и Arize Phoenix можно развернуть у себя без платы за лицензию.

Чем мониторинг LLM отличается от наблюдаемости ИИ?

Мониторинг отслеживает заранее заданные пороги, например задержку и долю ошибок. Наблюдаемость позволяет детально исследовать любой отдельный запрос, включая промпты, вызовы инструментов, расход токенов и оценки качества.

Работает ли наблюдаемость ИИ с OpenTelemetry?

Да. Семантические соглашения OpenTelemetry GenAI определяют стандартные атрибуты, такие как gen_ai.request.model и gen_ai.usage.input_tokens, и большинство платформ принимает трассировки OTLP. На октябрь 2026 года соглашения всё ещё имеют статус Development.

Что такое наблюдаемость генеративного ИИ?

Это та же практика применительно к генеративным моделям: сбор промптов, выходных данных, затрат на токены, шагов агентов и результатов оценки, чтобы команды могли отлаживать и улучшать функции генеративного ИИ в продакшене.

Источники