Обзор Langfuse 2026: open-source платформа для трассировки и оценки LLM-агентов

Трейсинг, промпты, evals и метрики для AI-приложений — self-hosted или cloud

📝 2677 words
🔭

Обзор Langfuse 2026: open-source платформа для трассировки и оценки LLM-агентов

Langfuse — это опенсорсная платформа полной наблюдаемости для приложений на больших языковых моделях. Она решает ключевую проблему production-разработки: понимание того, что именно происходит внутри LLM-цепочек и агентов. Трассировка каждого вызова, управление версиями промптов, автоматическая и ручная оценка качества ответов, работа с тестовыми датасетами и детальная аналитика стоимости — всё это доступно в едином self-hosted решении, которое разворачивается через Docker Compose. Проект распространяется под лицензией MIT, имеет облачную версию для быстрого старта и активно поддерживается сообществом из тысяч разработчиков по всему миру.

★ 18 000+ GitHub 🐳 Self-hosted ⚖ MIT License ☁ Cloud Available
⭐ GitHub → langfuse/langfuse

Архитектура Langfuse

🤖 LLM-приложение (Python / JS / TS) 📡 Langfuse SDK @observe / .trace() langfuse.openai LANGFUSE Next.js API Server → Traces / Spans / Generations → Prompts (versioned) → Evals / Scores / Datasets → Cost & Latency Metrics 🗄 PostgreSQL + ClickHouse (metadata + analytics) 📊 Дашборд UI / Аналитика langfuse = Langfuse() trace = langfuse.trace(...) span = trace.span(name="llm") langfuse.flush() 🔗 OpenAI SDK 🦜 LangChain / 🦙 LlamaIndex 🔷 Anthropic / Vercel AI SDK 🐳 Docker Compose

Зачем нужна наблюдаемость LLM-приложений

Разработка на базе больших языковых моделей фундаментально отличается от классического программирования. В традиционном коде вызов функции детерминирован: одинаковые входные данные всегда дают одинаковый результат. LLM-приложения, напротив, недетерминированы по своей природе — один и тот же промпт может возвращать разные ответы, агент может выбирать разные цепочки инструментов, а стоимость каждого вызова измеряется токенами и деньгами. Без инструментов наблюдаемости разработчик буквально летит вслепую: невозможно понять, почему агент повёл себя некорректно, сколько стоил конкретный пользовательский запрос, и как изменение промпта повлияло на качество ответов.

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

Ключевые возможности Langfuse

Langfuse не ограничивается одной функцией — это полноценная платформа, объединяющая несколько критически важных компонентов жизненного цикла LLM-приложения. Каждый компонент может использоваться независимо, но максимальная ценность достигается при их совместном применении.

🔍 ▸ Трассировка (Tracing)

Полная наблюдаемость цепочек LLM-вызовов с автоматическим сбором spans, generations и events через SDK. Поддержка декоратора @observe для любой Python-функции — одна строка кода добавляет трассировку. Визуализация деревьев вызовов в дашборде с таймлайнами, вложенностью и детализацией до каждого отдельного вызова модели. Все данные структурированы и доступны для последующего анализа.

📝 ▸ Управление промптами

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

✅ ▸ Оценка качества (Evals)

Встроенная система оценки ответов: LLM-as-judge, человеческая разметка и произвольные скоринговые функции. Поддержка рубрик и кастомных метрик. Возможность оценивать как отдельные трассы в production, так и результаты экспериментов на датасетах. Все оценки агрегируются и визуализируются для отслеживания динамики качества.

📊 ▸ Метрики стоимости и latency

Автоматический подсчёт токенов и стоимости для OpenAI, Anthropic и десятков других провайдеров. Дашборды с графиками latency, стоимости и объёмов запросов в разрезе моделей, пользователей, окружений и версий приложения. Позволяет мгновенно замечать аномалии: резкий рост стоимости или деградацию времени ответа.

🗂 ▸ Датасеты и эксперименты

Создание тестовых датасетов прямо из production-трасс — один клик в интерфейсе, и запрос пользователя с контекстом превращается в тестовый кейс. Запуск экспериментов: прогон одного и того же датасета через разные модели или версии промптов с автоматическим сравнением результатов по выбранным метрикам. Итеративное улучшение без риска регрессий.

🔌 ▸ Богатая экосистема интеграций

Нативные интеграции с LangChain, LlamaIndex, OpenAI, Anthropic, Vercel AI SDK, Haystack, DSPy, Flowise, LiteLLM, Instructor и многими другими фреймворками. Python SDK, JavaScript SDK и REST API — данные попадают в Langfuse из любого технологического стека. Единый источник правды для всех LLM-вызовов в организации.

Компоненты и интеграции

Langfuse состоит из нескольких логических компонентов, каждый из которых закрывает определённый аспект работы с LLM. Серверная часть написана на Next.js и работает с PostgreSQL для хранения метаданных и ClickHouse для аналитических запросов. Такая архитектура обеспечивает высокую производительность даже при миллионах наблюдений в день.

Компонент Назначение Интеграции / Технологии
Python SDK Декоратор @observe, трассировка, промпты, evals langfuse PyPI, langfuse.openai
JS/TS SDK Трассировка в Node.js, Edge Runtime и браузере langfuse npm, Vercel AI SDK
LangChain / LlamaIndex Автоматическая трассировка цепочек, агентов и индексов langfuse-langchain, callbacks
Self-Hosted Server Развёртывание на собственной инфраструктуре docker compose, Postgres, ClickHouse
REST API Программный доступ к трассам, промптам, evals OpenAPI, langfuse-client

Установка и запуск

Langfuse можно развернуть двумя способами. Первый — self-hosted через Docker Compose, что рекомендуется для production-сред и случаев, когда критична приватность данных. Второй — облачная версия на cloud.langfuse.com, удобная для быстрого старта и небольших проектов. Self-hosted вариант поднимает пять контейнеров: сервер Langfuse на Next.js, PostgreSQL для метаданных, ClickHouse для аналитики, Redis для очередей и кэширования, а также MinIO для хранения артефактов. Весь стек управляется одним файлом docker-compose — от клонирования репозитория до работающего дашборда проходит буквально пять минут.


# 1. Клонируем репозиторий и запускаем Docker Compose
git clone https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up -d

# 2. Устанавливаем Python SDK
pip install langfuse

# 3. Устанавливаем переменные окружения
export LANGFUSE_SECRET_KEY="sk-lf-..."
export LANGFUSE_PUBLIC_KEY="pk-lf-..."
export LANGFUSE_HOST="http://localhost:3000"

Пример трассировки на Python

Ниже — полноценный пример, демонстрирующий ключевые концепции Langfuse: создание trace как корневого контекста, открытие span для группировки вызовов, автоматическое логирование вызова OpenAI как generation (дочернего элемента span), а также добавление оценки качества через score. Модуль langfuse.openai является прозрачной обёрткой над стандартным OpenAI-клиентом — весь код, использующий обычный openai.chat.completions.create, продолжает работать, но теперь каждый вызов автоматически трассируется.


# langfuse_tracing_demo.py
import os
from langfuse import Langfuse
from langfuse.openai import openai

# Инициализация клиента
langfuse = Langfuse(
    secret_key=os.environ["LANGFUSE_SECRET_KEY"],
    public_key=os.environ["LANGFUSE_PUBLIC_KEY"],
    host=os.environ["LANGFUSE_HOST"],
)

# Создаём trace — корневой объект трассировки
trace = langfuse.trace(
    name="support-chatbot",
    user_id="user-42",
    metadata={"channel": "web"},
)

# Открываем span для группировки вызовов
span = trace.span(
    name="generate-response",
    input={"question": "Как работает Langfuse?"},
)

# Вызов OpenAI — автоматически логируется как generation
completion = openai.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "Объясни Langfuse кратко"},
    ],
    langfuse_observation=span,  # ← связываем с trace
)

answer = completion.choices[0].message.content

# Завершаем span с output-данными
span.update(output={"answer": answer})
span.end()

# Score — оценка качества (LLM-as-judge или ручная)
trace.score(
    name="relevance",
    value=0.92,
    comment="Ответ релевантный и точный",
)

# Отправляем данные в Langfuse
langfuse.flush()
print("✅ Трассировка завершена — проверьте дашборд Langfuse")

Декоратор @observe: минималистичная трассировка

Самый быстрый способ обернуть любую функцию в трассировку — декоратор @observe(). Входные аргументы и возвращаемое значение автоматически попадают в trace, а вложенные вызовы декорированных функций образуют иерархию spans. Это особенно удобно для быстрого прототипирования и случаев, когда не хочется вручную управлять trace и span объектами. Декоратор работает и для асинхронных функций, поддерживает кастомные имена и передачу метаданных.


from langfuse.decorators import observe
from openai import OpenAI

client = OpenAI()

@observe()
@observe
def answer_question(question: str) -> str:
    """Любой вызов этой функции → trace в Langfuse"""
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": question}],
    )
    return response.choices[0].message.content

# Вызов — автоматически трассируется
result = answer_question("Что такое observability в LLM?")
print(result)

Сравнение Langfuse с аналогами

Рынок observability-инструментов для LLM активно развивается, и у Langfuse есть несколько заметных конкурентов. Главные из них — LangSmith от создателей LangChain, Helicone (лёгкий API-прокси с мониторингом) и Arize Phoenix (open-source наблюдаемость для ML-моделей). Каждый инструмент имеет свою специализацию, и выбор зависит от конкретных потребностей команды. Ниже — детальное сравнение по ключевым критериям.

Критерий Langfuse LangSmith Helicone Arize Phoenix
Лицензия MIT (open-source) Proprietary Proprietary Apache 2.0
Self-hosted ✅ Docker Compose ❌ Нет ❌ Нет ✅ Docker
Prompt Management ✅ Встроенный ✅ Hub ❌ Нет ❌ Нет
Evals / Scoring ✅ Встроенные ✅ Встроенные ❌ Нет ✅ Встроенные
Датасеты ✅ Полноценные ✅ Эксперименты ❌ Нет ✅ Базовая поддержка
Фокус LLM Observability LangChain-экосистема API Gateway + мониторинг ML Observability

Когда выбирать Langfuse

Langfuse оптимален для команд, которые строят production LLM-приложения и нуждаются в комплексном решении, а не в точечном инструменте для одной задачи. Если вам нужна одновременно трассировка, управление промптами, оценка качества и эксперименты с датасетами — и всё это на собственной инфраструктуре с полным контролем над данными — Langfuse практически не имеет альтернатив. LangSmith может быть предпочтительнее для команд, глубоко интегрированных в экосистему LangChain и готовых платить за облачный сервис. Helicone хорош как лёгкий прокси для мониторинга API-вызовов, если не нужны evals и промпт-менеджмент. Arize Phoenix интересен командам с фоновым ML-мониторингом, выходящим за рамки чисто LLM-задач.

Langfuse в цифрах

18k+
GitHub Stars
MIT
Лицензия
Self-Hosted (бесплатно)
30+
Интеграций

Плюсы и минусы

✅ ПЛЮСЫ
  • Полноценный open-source (MIT) — полный контроль над данными, никакого vendor lock-in
  • Self-hosted за пять минут через Docker Compose — Postgres, ClickHouse, Redis, MinIO
  • Бесплатный cloud-план для старта — до пятидесяти тысяч наблюдений в месяц
  • Единая платформа: traces + prompts + evals + datasets — не нужно собирать зоопарк инструментов
  • Декоратор @observe() — добавляет наблюдаемость одной строкой кода
  • Нативная интеграция с OpenAI SDK через langfuse.openai — прозрачная подмена клиента
  • Версионирование промптов в UI — разделение обязанностей инженеров и промпт-дизайнеров
  • Активное сообщество: восемнадцать тысяч звёзд на GitHub, быстрые релизы, отзывчивые мейнтейнеры
❌ МИНУСЫ
  • Самостоятельная эксплуатация self-hosted требует DevOps-компетенций: ClickHouse, бэкапы, мониторинг
  • Не является API-прокси как Helicone — трассировка только через SDK, а не прозрачный перехват HTTP-трафика
  • Cloud-версия хранит данные на серверах Langfuse — для соответствия GDPR и строгим требованиям приватности нужен self-hosted
  • Бесплатный план cloud ограничен пятьюдесятью тысячами наблюдений в месяц — для высоконагруженных проектов нужен платный тир или self-hosted
  • Относительно молодой продукт (основан в 2023 году) — некоторые фичи в активной разработке, API может меняться между мажорными версиями
  • Нет встроенной системы A/B-тестирования промптов в production — только через эксперименты на датасетах
✅ Вердикт

Langfuse — лучший open-source инструмент для полной наблюдаемости LLM-приложений по состоянию на начало 2026 года. Он закрывает полный цикл разработки: от трассировки каждого вызова и централизованного управления промптами до систематической оценки качества и экспериментов с датасетами. MIT-лицензия и возможность self-hosted-развёртывания через Docker Compose делают его безальтернативным выбором для команд, которые ценят контроль над данными, отсутствие вендорной привязки и возможность аудита кода платформы. LangSmith остаётся сильным конкурентом в экосистеме LangChain, но проприетарная лицензия и невозможность self-hosted — критический минус для многих организаций. Helicone хорош как лёгкий API-прокси для мониторинга, но не предлагает оценку качества и управление промптами. Arize Phoenix близок по философии open-source, но уступает в зрелости и широте функциональности. Для стартапов, строящих первые LLM-продукты, и для enterprise-команд, запускающих сложных агентов в production, Langfuse — это обоснованный выбор по умолчанию.

Рекомендация: ★★★★★ (4.5 / 5)
🌐 САЙТ LANGFUSE
⭐ GitHub 📖 Документация ☁ Cloud