Langfuse: как видеть prompts, tool calls, стоимость и ошибки Claude, Codex и LLM-агентов
Langfuse · LLM observability · Codex · OpenTelemetry · evals

Langfuse: как видеть prompts, tool calls, стоимость и ошибки Claude, Codex и LLM-агентов

Когда AI-приложение состоит из одного вызова модели, обычного log-файла ещё может хватать. Но агент с retrieval, tools, subagents, retries и несколькими LLM быстро превращается в «чёрный ящик». Langfuse показывает всю цепочку: входной prompt, model generation, tool calls, токены, стоимость, latency, ошибки, scores, prompt version и результат каждой сессии.

4.39.0актуальный server release от 21 сентября 2026 года
Python SDK 4.15.4OpenTelemetry-based SDK, Python 3.10+
MIT coreself-hosted OSS; enterprise-код лицензируется отдельно
LLM engineering platform

Langfuse — это не model gateway и не agent framework

Langfuse находится рядом с вашим AI-приложением и получает telemetry. Он не обязан маршрутизировать запросы и не заменяет OpenAI, Ollama, LiteLLM, Claude Code или Codex. Его задача — сделать их поведение наблюдаемым и измеримым.

AI-приложениеagent · RAG · chatbot
→
Langfuse SDK / OTeltraces · spans · generations
→
LangfuseUI · analytics · evals
→
Разработчикdebug · compare · improve
01Tracing

Показывает, из каких шагов состоял один запрос или agent turn.

02Prompt management

Хранит версии prompts отдельно от application code.

03Evaluation

Позволяет сравнивать модели и prompts на фиксированном dataset.

04Cost/usage analytics

Помогает увидеть, какой step съедает токены, деньги или latency.

Trace anatomy

Один пользовательский запрос можно разложить до конкретного tool call

Trace / Turn«Исправь ошибку в plugin»
Generationмодель анализирует задачу
Toolsearch / read / shell / MCP
Generationмодель выбирает исправление
Toolapply_patch / tests
Final responseрезультат пользователю

Если итог плохой, можно определить, где именно возникла ошибка: retrieval не нашёл данные, tool вернул плохой результат, модель выбрала неверный action или prompt был слишком слабым.

Python SDK v4

Минимальная трассировка приложения

Актуальный Python SDK — 4.15.4. Он был полностью переписан на OpenTelemetry в 2026 году. Старые примеры с Langfuse().trace() уже считаются legacy.

pip install langfuse==4.15.4
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_BASE_URL=https://your-langfuse.example.com
from langfuse import get_client

langfuse = get_client()

with langfuse.start_as_current_observation(
    as_type="span",
    name="process-request"
) as span:

    span.update(input={"question": "Почему упал agent?"})

    with langfuse.start_as_current_observation(
        as_type="generation",
        name="llm-response",
        model="YOUR_MODEL"
    ) as generation:

        result = "LLM response"
        generation.update(output=result)

    span.update(output={"status": "done"})

langfuse.flush()
Для коротких CLI/jobs нужен flush().

SDK буферизует telemetry, поэтому процесс может завершиться раньше отправки событий.

Свежий официальный проект

Langfuse Codex Observability Plugin превращает Codex CLI из «чёрного ящика» в trace tree

Отдельный repository langfuse/codex-observability-plugin создан специально для Codex. Plugin читает rollout transcript после turn и отправляет структуру сессии в Langfuse.

TurnОдин prompt → final answer

Каждый Codex turn становится отдельным trace.

GenerationsВсе model responses

Включая reasoning, assistant text, model и token usage.

Toolsshell · apply_patch · MCP · web

В trace видно input, output и error status каждого action.

SubagentsВложенные agent threads

Subagent turns прикрепляются к родительскому turn.

codex plugin marketplace add langfuse/codex-observability-plugin

Tracing plugin включается в ~/.codex/config.toml либо в project-local .codex/config.toml. Текущая package-версия — 0.1.0; требуется Node.js 22+ и Codex 0.143+.

Observability plugin видит фактически всю agent session.

Shell output, prompts, tool arguments и subagent text могут содержать секреты.

Не только Codex

Для OpenCode есть отдельный observability plugin

{
  "experimental": {
    "openTelemetry": true
  },
  "plugin": [
    "@langfuse/opencode-observability-plugin@latest"
  ]
}

Plugin трассирует user turns, assistant generations, tool calls, retries, reasoning, compaction и failed generation steps. Актуальная package line на момент проверки — 0.3.0.

OpenTelemetry-native

Langfuse v4 строится вокруг OTel, а не собственного закрытого tracing protocol

Актуальные SDK используют OpenTelemetry. Это позволяет подключать существующую instrumentation ecosystem, объединять LLM spans с обычными application traces и не привязывать код к одному vendor-specific формату.

PythonLangfuse SDK v4

OTel-based tracing и native Langfuse helpers.

JS/TSLangfuse SDK v5

Текущая JavaScript/TypeScript линия.

Other languagesPure OpenTelemetry

Можно отправлять traces без специального Langfuse SDK.

Existing stackOTel collector

Langfuse можно встроить в существующий observability pipeline.

Token & cost analytics

Можно увидеть, какой конкретно шаг съел бюджет

InputPrompt tokens

Сколько контекста отправили модели.

OutputCompletion tokens

Сколько сгенерировала модель.

AgentНесколько generations

Видны повторные reasoning/tool loops.

CostРазбивка по model/provider

Можно сравнивать execution paths.

Prompt management

Prompt можно версионировать отдельно от кода и связывать с traces

VersioningКаждое изменение — новая версия

Можно сравнить качество до и после изменения instructions.

Labelsproduction / staging / experiment

Переключать активную версию без изменения application code.

Trace linkingКакой prompt дал этот результат

У trace сохраняется связь с конкретной prompt version.

Client cacheНет обязательного latency на каждый запрос

SDK кеширует prompts локально.

Не доверять одному красивому примеру

Datasets + Experiments позволяют проверять модель и prompt на одинаковом наборе задач

Dataset — это набор inputs и expected outputs. Один и тот же dataset можно прогнать через несколько моделей, prompts или версий application logic и сравнить scores.

OfflineДо deployment

Regression tests на фиксированном dataset.

OnlineProduction traces

Оценивать реальные пользовательские запросы.

ManualHuman score

Эксперт вручную оценивает ответ.

AutomatedLLM-as-a-judge

Автоматическая проверка больших выборок.

Это способ не «чувствовать», а измерять улучшение.

Новый prompt может быть лучше на двух примерах и хуже на остальных сорока восьми.

Self-hosted

Langfuse можно держать полностью на своей инфраструктуре

git clone --depth=1 https://github.com/langfuse/langfuse.git
cd langfuse
docker compose up
Langfuse Web

UI и API.

Langfuse Worker

Асинхронная обработка events.

Postgres

Transactional data.

ClickHouse

Traces, observations и analytics.

Redis/Valkey

Queue/cache.

S3/Blob Storage

Events, multimodal data и exports.

Это уже не «один SQLite-файл».

Для production нужно планировать backups, updates и monitoring каждого storage component.

Open source vs Enterprise

Core Langfuse — MIT, но repository содержит отдельный enterprise-код

Всё вне enterprise directories доступно по MIT, а содержимое ee/, web/src/ee/ и worker/src/ee/ использует отдельную Enterprise License.

OSSTracing, evals, prompts, datasets и APIs

Core features доступны self-hosted.

EnterpriseGovernance features

Audit logs, data retention policies, project-level RBAC и management APIs.

Telemetry содержит чувствительные данные

Langfuse нужно защищать не слабее основной application database

1Redact до отправки

Не логировать passwords, tokens, cookies и API keys.

2Projects/environments

Не смешивать test и production traces без причины.

3Protect API keys

Ключи Langfuse хранить в env/secrets store.

4Обновлять self-host

Security policy рекомендует latest version.

5Закрыть management UI

HTTPS, access control и private network.

6Retention

Не хранить бесконечно traces, которые больше не нужны.

В апреле 2026 года был исправлен access-control issue, где project member мог заставить систему отправить сохранённый provider API key на attacker-controlled endpoint. Уязвимы были старые версии 3.68.0–3.166.x, исправление — 3.167.0. Текущая 4.39.0 существенно новее.

Где он находится в AI-стеке

Langfuse не заменяет LiteLLM, OpenHands или Mem0

ЗадачаПроектРоль
Маршрутизация моделейLiteLLMAI Gateway
Долгосрочная памятьMem0Memory layer
Управление coding agentsOpenHandsAgent control plane
Web extractionFirecrawlWeb data layer
Traces, costs, evalsLangfuseObservability/evaluation
Ограничения

Observability не исправляет agent автоматически

01Telemetry нужно добавить

Без instrumentation UI будет пустым.

02Self-host stack тяжёлый

Postgres, ClickHouse, Redis и object storage требуют обслуживания.

03Traces чувствительны

Логи иногда опаснее основной business database.

04LLM-as-a-judge ошибается

Evaluator тоже модель, а не абсолютная истина.

05Custom model pricing

Self-hosted модели могут требовать собственных cost rules.

06Наблюдаемость не равно решение

Причину плохого trace всё равно нужно анализировать.

Практические сценарии

Где Langfuse особенно полезен

01Codex debugging

Понять лишние tool calls и расход tokens.

02RAG quality

Отделить проблемы retrieval от проблем модели.

03Prompt regression

Сравнить prompt version на dataset до deployment.

04Cost optimization

Найти самый дорогой step внутри agent loop.

05Production monitoring

Следить за latency, failures и score trends.

06Multi-model experiments

Сравнить quality/cost/latency разных providers.

Первоисточники

Langfuse: server, SDK, Codex plugin, self-host и security

Материал проверен 21 сентября 2026 года.

Server — 4.39.0, Python SDK — 4.15.4, core — MIT/open core.

Вывод

Langfuse нужен тогда, когда одного log-файла уже недостаточно объяснить поведение AI

Для простого локального чата observability platform может быть лишней. Но когда появляются tools, RAG, retries, subagents, несколько моделей и реальные пользователи, trace tree начинает экономить часы диагностики.

Особенно интересна свежая интеграция с Codex: можно увидеть, какой model call предшествовал действию, какую команду агент запустил, сколько tokens потратил и где именно возникла ошибка.

FAQ

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

Что такое Langfuse простыми словами?

Платформа наблюдаемости и evaluation для LLM-приложений: traces, model calls, tools, tokens, cost, prompts и scores.

Langfuse работает с Codex?

Да. Есть официальный Codex observability plugin.

Можно ли self-host Langfuse?

Да. Docker Compose — для local/single-VM, Kubernetes/Helm — для production.

Langfuse open source?

Core — MIT. Отдельные enterprise directories используют коммерческую Enterprise License.

Можно ли использовать Langfuse с Ollama?

Да. Backend-модель может быть локальной Ollama, LM Studio, vLLM или облачным provider.

Чем Langfuse отличается от LiteLLM?

LiteLLM маршрутизирует LLM requests. Langfuse трассирует, анализирует и оценивает работу приложения.

Что использовать в новом Python-коде?

Python SDK v4 с get_client(), @observe и start_as_current_observation().

Какие версии актуальны?

На 21 сентября 2026 года server — 4.39.0, Python SDK — 4.15.4.

LLM observability

Нужно понять, куда уходят токены и почему AI-agent делает лишние шаги?

Можно построить tracing, cost tracking и regression datasets для локальной или облачной AI-системы.