Коли AI-фіча виходить у прод, команда дуже швидко ставить одне й те саме питання: чому модель відповіла саме так? У звичайному бекенді на це відповідають логи й метрики. У LLM-застосунку цього мало: відповідь залежить від промпту, версії моделі, документів, які знайшов RAG, викликів інструментів і попередніх кроків агента. Langfuse робить увесь цей ланцюжок видимим, а потім допомагає його покращувати.
Що таке Langfuse
Langfuse - це open-source платформа для LLM-інженерії: трасування (observability), керування промптами, оцінювання якості (evals), датасети й експерименти в одному місці. Її заснували в Берліні Марк Клінген, Макс Дайхманн і Клеменс Раверт, а на початку 2023 року команда пройшла Y Combinator. Основний код відкритий під ліцензією MIT, у репозиторію на GitHub близько 37 тисяч зірок. Платформу можна використовувати як хмарний сервіс Langfuse Cloud або розгорнути на власних серверах.
Два факти, які варто знати у 2026 році. 16 січня 2026 року Langfuse купила компанія ClickHouse, на базі даних якої Langfuse і так працював. Команда заявила, що проєкт лишається open source і доступним для self-hosting, змін у ліцензії не планується. А 17 серпня 2026 року вийшла Langfuse v4: нова модель даних, побудована навколо observations, значно швидші дашборди на великих проєктах, монітори з алертами, evaluators у вигляді коду і повнотекстовий пошук по трейсах.
Базові поняття: трейс, observation, сесія, score
Трейс - це один запит користувача від початку до кінця. Усередині нього лежать observations: generation (виклик моделі з промптом, відповіддю, токенами й вартістю), span (будь-який крок вашого коду, наприклад пошук у векторній базі) і виклики інструментів. Трейси з однієї розмови об’єднуються в сесію, а userId показує історію конкретного користувача. Score - це оцінка якості: лайк чи дизлайк від користувача, ручна розмітка експерта, вердикт LLM-as-a-judge або результат детермінованої перевірки в коді. На цих чотирьох поняттях тримається все інше.
Що вміє Langfuse
| Модуль | Що робить | Навіщо на практиці |
|---|---|---|
| Трасування | Записує кожен виклик моделі, крок агента, tool call, токени, вартість і затримку | Знайти, на якому кроці агент помилився, і скільки коштує один діалог |
| Керування промптами | Зберігає промпти з версіями й мітками production і staging, SDK кешує їх на клієнті | Змінити промпт без деплою і відкотитися за хвилину |
| Evals | LLM-as-a-judge, перевірки в коді, черги ручної розмітки, фідбек користувачів | Мати число замість відчуття «здається, стало краще» |
| Датасети й експерименти | Набори прикладів з очікуваним результатом і прогони на різних промптах і моделях | Перевірити нову модель чи промпт до релізу, а не після |
| Playground | Запуск промпту з різними моделями й параметрами прямо в інтерфейсі | Відтворити проблемний трейс і швидко перевірити виправлення |
| Дашборди й монітори | Метрики вартості, якості й затримки, алерти в Slack або на вебхук | Дізнатися про стрибок витрат чи падіння якості раніше за клієнта |
Як підключити Langfuse до проєкту
Перший трейс з’являється за пів години. Ви створюєте проєкт у Langfuse Cloud або на власному інстансі, берете пару ключів (публічний і секретний) і адресу сервера та прописуєте їх у змінні оточення. Далі ставите SDK: є офіційні для Python і TypeScript, обидва побудовані на OpenTelemetry. Тож Langfuse поєднується з наявним трасуванням, а будь-який сервіс з OTel-експортом може надсилати дані напряму на OTLP-ендпоінт.
Найпростіший шлях - готові інтеграції. Для OpenAI SDK є обгортка, яка записує кожен виклик без змін у бізнес-логіці. Для Vercel AI SDK, LangChain і LangGraph, LlamaIndex, LiteLLM, Mastra, CrewAI та десятків інших фреймворків є callback-и або OTel-інструментація. Для власного коду є декоратор observe у Python і аналогічні обгортки в TypeScript: позначаєте функцію, і вона з’являється в трейсі окремим кроком із входом, виходом і тривалістю.
Одразу додайте до трейсу userId, sessionId, середовище і версію релізу. Без цього через тиждень у вас будуть тисячі трейсів, які неможливо відфільтрувати. І пам’ятайте про serverless: SDK надсилає дані пачками у фоні, тому у Vercel Functions чи AWS Lambda треба викликати flush до завершення функції, інакше частина трейсів просто загубиться.
Langfuse Cloud чи self-hosted
| Варіант | Плюси | Мінуси | Кому підходить |
|---|---|---|---|
| Langfuse Cloud | Нічого не треба підтримувати, регіони в ЄС і США, безкоштовний тариф для старту | Промпти й дані користувачів зберігаються в сторонньому сервісі | Стартапи, MVP, команди без DevOps |
| Self-hosted | Повний контроль над даними, можна запустити в закритому контурі | Треба підтримувати й оновлювати Postgres, ClickHouse, Redis і S3-сумісне сховище | Фінтех, медицина, держсектор, суворі вимоги GDPR і NDA |
Self-hosted Langfuse - це два контейнери, веб-застосунок і воркер, плюс чотири сховища з таблиці. Для старту вистачає docker compose, для продакшну є Helm-чарт для Kubernetes і модулі Terraform для великих хмар. На новому проєкті я зазвичай починаю з хмари, а на self-hosted переходжу, коли цього вимагають дані або юристи.
Як я використовую Langfuse у проєктах
Трасування я підключаю з першого дня, ще до того, як фіча піде до користувачів: дебажити агента по трейсу в рази швидше, ніж по console.log. Промпти виношу в Langfuse з мітками production і staging, щоб продакт міг правити текст без деплою, а невдалу версію можна було відкотити за хвилину.
Коли з’являються реальні користувачі, відповіді з дизлайком або низьким score потрапляють у датасет. Так із продакшну виростає набір тестів, який відображає справжні запити, а не вигадані. Перед зміною моделі чи великою правкою промпту я запускаю експеримент на цьому датасеті й порівнюю результат з поточною версією. LLM-as-a-judge вмикаю на вибірку трафіку, а не на весь, бо суддя теж коштує грошей, і калібрую його на кількох десятках прикладів, розмічених вручну.
Окремо дивлюся на гроші: вартість на користувача, на сесію і на конкретний крок агента. Часто саме цей розріз показує, що помітну частину бюджету з’їдає один допоміжний виклик, який можна перевести на дешевшу модель без втрати якості.
Про що подумати заздалегідь
Персональні дані. У трейси потрапляє все, що користувач написав моделі. Налаштуйте маскування в SDK до відправки, обмежте строк зберігання і доступи до проєкту. Обсяг. На великому трафіку вмикайте семплінг, інакше рахунок за observability наздожене рахунок за модель. Промпти в критичному шляху. SDK кешує промпти, але в коді варто тримати запасну версію на випадок, якщо Langfuse недоступний: застосунок не має падати через систему моніторингу.
Langfuse і альтернативи
Найближчі конкуренти - LangSmith від команди LangChain, Arize Phoenix, Helicone, а також LLM-модулі великих APM-систем на кшталт Datadog. LangSmith сильний, якщо весь стек на LangChain і LangGraph, але це закритий комерційний продукт. Langfuse обирають, коли важливі відкритий код, self-hosting і незалежність від фреймворку: він однаково добре працює з чистим OpenAI SDK, Vercel AI SDK чи власним агентом на TypeScript.
Висновок
Langfuse не зробить модель розумнішою. Він показує, що відбувається між запитом користувача і відповіддю, і дає інструменти, щоб покращувати якість на основі даних: трейси, версії промптів, датасети з продакшну, експерименти й оцінки. Для AI-продукту, який вийшов за межі демо, це вже не опція, а базова гігієна, як логи й моніторинг для звичайного бекенду.
Якщо ви будуєте AI-фічу чи агента й хочете бачити, що він робить, скільки коштує і чи стає кращим, напишіть мені. Я Senior Full-Stack AI Engineer з 11+ роками в розробці: підключу трасування, налаштую промпти, evals і дашборди, а за потреби розгорну Langfuse на вашій інфраструктурі.
Дайте наступному продукту того, хто лишається.
Готовий стартувати зараз і лишитись. Довготермінові ретейнери, не злив за два тижні. Напишіть - обговоримо проєкт, вимоги і як рухатись далі.