
LangfuseとはLLMOpsの記録と評価をするOSS
LangfuseはAIアプリの実行を1件ずつ記録し、プロンプト管理と評価まで同じ場所で使うことができるオープンソースの基盤です。 LangfuseのREADMEは、チームがAIアプリを共同で開発・監視・評価・デバッグするのを助ける基盤だとしています。運営元は2026年1月にClickHouseの傘下となりました。
LLMOpsは、大規模言語モデル(LLM)を使ったアプリを公開後も運用し続けるための作業全般を指す言葉です。回答の質を見ながら直し続ける段階では、実行の記録と評価をLangfuseが引き受けます。
中心になる機能はリクエスト1件ごとの記録を残すトレースです。1件のトレースには、モデルへ送信したプロンプト・モデルの応答・トークン使用量・レイテンシ(応答が出力されるまでの時間)と、モデルが途中で呼んだツールや検索が記録されます。チャット画面では最終的な回答しか表示されませんが、トレースを開けば途中の経過まで順番に確認できるようになっています。

可観測性(observability)とは、出力からシステム内部で何が発生したかを把握できる性質のことです。トレースは可観測性を実現する手法の1つで、リクエストの流れと各操作の因果関係を記録します。Langfuseの公式ドキュメントによると、生成AIはもともと非決定的(同じ入力でも出力が毎回同じとは限らない性質)で、可観測性のツールを使わないデバッグは当てずっぽうに近いとのこと。
汎用のAPM(アプリの稼働監視ツール)と異なり、Langfuseはトークン使用量・モデルパラメータ・プロンプトと応答の組・評価スコアを最初から記録の対象として備えています。トークン使用量を確認できるので、コストの分析にも使うことができます。機能は次の6つです。
- トレース: LLMの呼び出しと検索・埋め込み・エージェントの行動を記録する
- プロンプト管理: プロンプトの一元管理とバージョン管理と共同での改良を行う
- 評価: LLM-as-a-judge・コード評価器・ユーザーフィードバック・手動ラベリングに対応する
- データセット: テストセットとベンチマークとして使い、デプロイ前のテストや実験に回す
- プレイグラウンド: プロンプトとモデル設定を試す。出力に問題があったトレースから、そのまま開ける
- API: OpenAPI仕様とPython・JS/TSの型付きSDKがある
おかしな回答をトレースで見つけたら、そのままプレイグラウンドでプロンプトを試行することができます。6つの機能が1つのアプリにまとまっているので、別のツールへ切り替える必要はありません。
Langfuseの基本情報
| 観点 | Langfuseの場合 |
|---|---|
| 位置づけ | オープンソースのLLMエンジニアリング基盤 |
| 運営元 | ClickHouse(2026年1月から) |
| 主な機能 | API・プレイグラウンド・データセット・評価・プロンプト管理・トレース |
| 提供形態 | クラウド版とセルフホスティング |
| 無料枠 | Hobbyプラン(月50,000ユニット・データ参照30日・ユーザー2人) |
| ライセンス | MIT Expat(ee/系のディレクトリだけ別ライセンス) |
| 外部連携 | OpenTelemetry / LangChain / LlamaIndex / LiteLLM / Vercel AI SDKほか |
ライセンスはリポジトリ全体で共通ではありません。ee/・web/src/ee/・worker/src/ee/の3ディレクトリはee/LICENSEで定める別ライセンスで、残りのディレクトリはMIT Expatです。組み込まれたサードパーティ部品は、各部品のライセンスに従います。



"Langfuse is an <strong>open source LLM engineering</strong> platform."/"It helps teams collaboratively develop, monitor, evaluate, and debug AI applications."/"since January 2026 we're part of ClickHouse"(README 冒頭の2文/冒頭の告知ブロック)— Langfuse 公式リポジトリより公式情報を見る →
"Generative AI systems are inherently non-deterministic. Therefore, debugging your application without any observability tool is more like guesswork."/"The core of this is application tracing — structured logs of every request that capture the exact prompt sent, the model's response, token usage, latency, and any tools or retrieval steps in between."(Observability Overview 冒頭2段落)— Langfuse 公式ドキュメントより公式情報を見る →
"Instrument your app and start ingesting traces to Langfuse, thereby tracking LLM calls and other relevant logic in your app such as retrieval, embedding, or agent actions."/"helps you centrally manage, version control, and collaboratively iterate on your prompts"/"It supports LLM-as-a-judge, Code evaluators, user feedback collection, manual labeling, and custom evaluation pipelines via APIs/SDKs."/"They support continuous improvement, pre-deployment testing, structured experiments, flexible evaluation"/"is a tool for testing and iterating on your prompts and model configurations, shortening the feedback loop and accelerating development."/"OpenAPI spec, Postman collection, and typed SDKs for Python, JS/TS are available."(Core Features の Observability・Prompt Management・Evaluations・Datasets・LLM Playground・Comprehensive API の各項)— Langfuse 公式リポジトリより公式情報を見る →
"All content that resides under the "ee/", "web/src/ee/", and/or "worker/src/ee/" directories of this repository, if these directories exist, is licensed under the license defined in "ee/LICENSE"."/"Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below."(LICENSE の適用範囲2項)— Langfuse 公式リポジトリより公式情報を見る →
Langfuseの導入方法とDockerでのセルフホスト
導入の手順はクラウド版とセルフホストの2経路で、選ぶ基準は処理するデータを自社の外へ出せるかどうかです。 出せるならクラウド版が最も手数の少ない選択肢で、出せないならLangfuseをご自身のサーバーに立てます。
導入経路の比較
| 経路 | 立ち上げ | 適する用途 | 補足 |
|---|---|---|---|
| クラウド版 | アカウント登録 | 試用・個人開発 | Hobbyのデータ参照は30日 |
| Docker Compose | ご自身のPC1台で5分 | ローカルでの検証 | 本番の推奨はHelm |
| VM | 単一の仮想マシンでCompose | 1台のサーバーで動作させる場合 | 構成は仮想マシン1台 |
| Kubernetes(Helm) | クラスタへ導入 | 本番運用(公式推奨) | Kubernetesクラスタ上で動作させる |
| Terraform | AWS・Azure・GCP | 既存の構成管理に組み込む場合 | クラウドごとのテンプレートを使う |
クラウド版の導入は無料のHobbyで試せる
クラウド版はHobbyプランなら無料で、クレジットカードの登録も必要ありません。 Langfuseのチームが運用するマネージド版なので、サーバーを用意せずに利用することができます。手順は次の3つです。
- アカウントを作る
- プロジェクトを作る
- プロジェクト設定でAPIの認証情報を発行する
発行した公開鍵(pk-lf-…)と秘密鍵(sk-lf-…)を、以降の送信すべてに使います。鍵はコードに書き込まず環境変数で設定します。
データの置き場所はHobbyならUS・EU・JPから選ぶことができます。切り替えは環境変数LANGFUSE_BASE_URLの接続先で行います。設定する値は、EUがhttps://cloud.langfuse.com、USがhttps://us.cloud.langfuse.com、日本がhttps://jp.cloud.langfuse.comです。

"Managed deployment by the Langfuse team, generous free-tier, no credit card required."/"Create Langfuse account"/"Create new API credentials in the project settings"/"# 🇪🇺 EU region"(README / Langfuse Cloud 節/Quickstart の手順とサンプル環境変数のコメント)— Langfuse 公式リポジトリより公式情報を見る →
"Other Langfuse data regions include"(OpenTelemetry ページのエンドポイント一覧に添えられたコメント。US・Japan・HIPAA の各URLがこれに続く)— Langfuse 公式ドキュメントより公式情報を見る →
Docker Composeでの試用、本番はHelm
Docker Composeはご自身のPC1台で試す方法で、本番にはKubernetes(Helm)が推奨されています。ただし、手順自体は最新のコミットだけを取得してリポジトリをクローンし、Composeを起動するだけです。
# Get a copy of the latest Langfuse repository
git clone --depth=1 https://github.com/langfuse/langfuse.git
cd langfuse
# Run the langfuse docker compose
docker compose up
立ち上げまでは5分ほどです。単一の仮想マシン(VM)で同じComposeを動作させる方法もあります。KubernetesのクラスタへHelmで導入する方法が本番の推奨です。Terraformのテンプレートは、AWS・Azure・GCPの3つが用意されています。
"Run Langfuse on your own machine in 5 minutes using Docker Compose."/"Run Langfuse on a Kubernetes cluster using Helm. This is the preferred production deployment."/"Terraform Templates: AWS, Azure, GCP"(README / Self-Host Langfuse 節の各項目)— Langfuse 公式リポジトリより公式情報を見る →
Pythonでの導入は@observe()の追加が中心
Pythonで最初のトレースを出すときに変更する対象は、import文と追加するデコレータだけです。 既存の処理には手を入れません。まずパッケージをインストールします。
pip install langfuse openai
接続先と鍵は3つの環境変数で指定します。セルフホストの場合、LANGFUSE_BASE_URLの値はご自身で立てたサーバーのURLです。
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_BASE_URL="https://cloud.langfuse.com"
@observe()を追加した関数では、1回の実行が1件のトレースになります。OpenAIを使っている場合はimportを次のコードへ替えるだけで、モデルの設定値まで自動で記録されます。
from langfuse import observe
from langfuse.openai import openai
OpenAI以外のモデルやフレームワークの記録方法は、公式ドキュメントに掲載されています。SDKはトレースのデータをバックグラウンドで非同期に送信します。イベントはアプリ内のキューに溜められてからまとめて送信されるので、記録を追加してもアプリの応答時間は伸びません。
"makes it easy to trace any Python LLM application"/"to automatically capture all model parameters"(README / Quickstart の @observe() デコレータと OpenAI 統合の説明文)— Langfuse 公式リポジトリより公式情報を見る →
"No. Langfuse SDKs send tracing data asynchronously in the background. Trace events are queued locally and flushed in batches, so your application's response time is not affected."(Observability Overview の FAQ「Does Langfuse add latency to my application?」)— Langfuse 公式ドキュメントより公式情報を見る →
LangChainとOpenTelemetryで記録を残せる
OpenAIやLangChainなど主な連携先は、SDKの置き換えやコールバックハンドラの追加で記録でき、SDKが無い言語にはOpenTelemetry経由で記録を送信できます。ここで言うOpenTelemetryとは、システムの動きを記録して送信する業界標準の仕組みです。主な連携は次のとおりです。
- OpenAI(Python・JS/TS): SDKの置き換えで自動計測する
- LangChain(Python・JS/TS): コールバックハンドラを追加する
- LlamaIndex・Haystack(Python): 連携が用意されている
- LiteLLM(Python): JS/TSはプロキシ経由のみ
- Vercel AI SDK・Mastra(JS/TS): 連携が用意されている
- そのほか: Instructor・DSPy・Ollama・Amazon Bedrock・CrewAI・Dify・Flowise・Langflowなどの連携パッケージがある
SDKが用意されていない言語では、/api/public/otelの受け口へOTLP(OpenTelemetry標準の転送形式)で送信します。PythonかJavaScript/TypeScriptなら、OpenTelemetryのAPIを直接使うよりLangfuse SDKを使うのが公式の勧めです。JavaやGoは、OpenLLMetryやOpenLITなどのライブラリを挟めば記録できます。
認証はBasic認証です。公開鍵と秘密鍵をコロンで連結してbase64でエンコードした値をAUTH_STRINGとし、送信側では環境変数を2つ設定します。
echo -n "pk-lf-1234567890:sk-lf-1234567890" | base64
OTEL_EXPORTER_OTLP_ENDPOINT="https://cloud.langfuse.com/api/public/otel"
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic ${AUTH_STRING},x-langfuse-ingestion-version=4"
ヘッダx-langfuse-ingestion-version: 4を追加しないと、直接送信したデータが画面に反映されるまで最大10分かかることがあります。HTTP/JSONで送信するデータの中身を読みやすく整えたいときは、JSON整形ツールを使うことができます。
"Langfuse can receive traces on the /api/public/otel (OTLP) endpoint."/"Langfuse uses Basic Auth to authenticate requests."/"directly ingested OpenTelemetry data can be delayed by up to 10"(OpenTelemetry endpoint 節/認証の説明/Enable real-time ingestion in Langfuse v4 節)— Langfuse 公式ドキュメントより公式情報を見る →
OpenTelemetryの属性はPythonで全スパンへ
userIdやsessionIdでフィルタするには、ルートスパンだけでなく、トレース内の全スパン(1本のトレースを構成する個々の処理)にこれらの属性を設定します。 フィルタや集計の対象にできる属性はuserId・sessionId・metadata・version・release・tagsです。
Langfuseが推奨する方法は、OpenTelemetryのBaggage(処理をまたいで値を運ぶ仕組み)とBaggageSpanProcessorです。Langfuse SDKを使う場合は、Pythonのpropagate_attributes()を使えば、属性が全スパンへ自動で伝わります。TypeScriptではpropagateAttributes()を使います。
Baggageはサービスの境界をまたいで外部のAPIにも伝わるので、パスワード・APIキー・個人データは入れないでください。
メタデータでフィルタできるのは第1階層のキーだけです。OpenTelemetry標準SDKのままでは属性がmetadata.attributesに格納され、フィルタに使うことができません。属性名にlangfuse.trace.metadata.かlangfuse.observation.metadata.の接頭辞を追加すると、その属性でフィルタできます。
"certain trace-level attributes should be propagated to all spans within a"/"The recommended approach for propagating these attributes across all spans is"/"Do not include sensitive"/"Langfuse only supports filtering on top-level keys within the metadata of an event."(Important: Propagating Trace Attributes to All Spans 節/Recommended: Use OpenTelemetry Baggage for Propagation 節/Security Consideration の注記/メタデータの節)— Langfuse 公式ドキュメントより公式情報を見る →
プロンプト管理のバージョンごとにLLM評価で変更前後を比較
プロンプト管理は文面のバージョンを保存し、LLM評価は変更の前後を採点するので、2つを組み合わせると改善の根拠を数字で示せます。 日々の手直しも、「良くなった気がする」で終わらせずに記録と採点で判断できるようになります。
プロンプト管理は文面の一元管理・バージョン管理・共同での改良に対応し、プロンプトの取得回数にも上限がありません。サーバー側とクライアント側の両方でキャッシュ(取得した内容を保存して使い回す仕組み)が効くので、プロンプトをLangfuseから取得してもアプリの応答は遅くなりません。評価の手段は次の4つです。
- LLM-as-a-judge: LLMに出力を採点させる
- コード評価器: 出力が条件を満たすかをプログラムで判定する
- ユーザーフィードバック: ユーザーからの高評価・低評価を集める
- 手動ラベリング: 担当者が出力を見てラベルを登録する
APIとSDKを使えば独自の評価パイプラインも組むことができます。トレースで悪い結果を見つけた場合は、プレイグラウンドで文面とモデル設定を試行し、データセットに入れて変更の前後を比較する流れです。データセットはテストセットとして使うことができ、デプロイ前のテストや構造化された実験にも回せます。
プロンプト管理と評価の役割
| 機能 | 解決する問題 | 効果 |
|---|---|---|
| プロンプト管理 | 文面のバージョンが分からなくなる | 一元管理・バージョン管理・共同改良 |
| 評価 | 変更の良し悪しを数字で言えない | 4種類の方法で採点する |
| データセット | 良い例と悪い例が散らばる | テストセットとして繰り返し使う |
| プレイグラウンド | 修正したプロンプトをすぐ試行できない | トレースから開いて、その場で試行する |
プロンプトのバージョン管理・キャッシュ・評価・データセット・プレイグラウンドは、無料のHobbyを含む全プランにあります。保護されたデプロイラベルだけはProではTeamsアドオンが必要で、Enterpriseでは標準です。
"helps you centrally manage, version control, and collaboratively iterate on your prompts"/"It supports LLM-as-a-judge, Code evaluators, user feedback collection, manual labeling, and custom evaluation pipelines via APIs/SDKs."(Core Features の Prompt Management・Evaluations の各項)— Langfuse 公式リポジトリより公式情報を見る →
Langfuseの料金は無料から月2,499ドルの4プラン
クラウド版の料金は、無料のHobbyから月2,499ドル(約39万8,300円)のEnterpriseまでの4プランです。 ユニットはLangfuseが使用量を測る単位で、月ごとにカウントします。月に含まれるユニット数はプランごとに異なります。
クラウド版の料金プラン
| プラン | 月額 | 含まれるユニット | データ参照期間 | ユーザー数 |
|---|---|---|---|---|
| Hobby | 無料 | 50,000 | 30日 | 2 |
| Core | 29ドル(約4,622円) | 100,000 | 90日 | 無制限 |
| Pro | 199ドル(約3万1,720円) | 100,000 | 3年 | 無制限 |
| Enterprise | 2,499ドル(約39万8,300円) | 100,000 | 3年 | 無制限 |
Core・Pro・Enterpriseに含まれる100,000ユニットを超えた分は、100,000ユニットあたりの単価で課金されます。単価は量に応じて次のように低下します。
- 100,000〜1,000,000ユニット: 8ドル(約1,275円)
- 1,000,000〜10,000,000ユニット: 7ドル(約1,116円)
- 10,000,000〜50,000,000ユニット: 6.5ドル(約1,036円)
- 50,000,000ユニット超: 6ドル(約956円)
トレース・セッション追跡・ユーザー追跡・トークンとコストの追跡は全プランにあります。料金プランごとに異なる主な条件は、ユニット数・参照期間・ユーザー数・取り込み上限です。
割引の制度もあります。初期段階のスタートアップは初年度が50%オフで、研究・学生は最大100%オフです(制限あり)。非営利団体には月199ドル(約3万1,720円)分のクレジットが付与され、オープンソースのプロジェクトには初年度に月300ドル(約4万7,820円)分のクレジットが付与されます。
どの割引も申請先はsupport@langfuse.comです。料金はいずれも、2026年10月時点でクラウド版に設定されていた値となります。
料金プランと無料枠の差はデータを遡れる日数に出る
無料のHobbyでデータを遡って見られるのは30日までで、有料プランより短いです。 Coreは90日に延びます。Pro以上は3年まで遡れます。
Hobbyでは、30日より前に発生した問題の原因を遡って調べることができません。過去のトレースを見返す使い方なら、Hobbyの30日で十分かを先に確認しておくといいでしょう。取り込みの上限とアラートの本数にも差があります。
プラン別の上限
| プラン | 取り込み上限 | アラート | アノテーションキュー | 一般APIの上限 |
|---|---|---|---|---|
| Hobby | 1,000リクエスト/分 | 2本 | 1本 | 30リクエスト/分 |
| Core | 4,000リクエスト/分 | 20本 | 3本 | 100リクエスト/分 |
| Pro | 20,000リクエスト/分 | 50本 | 上限は非公表 | 1,000リクエスト/分 |
| Enterprise | カスタム | 非公表 | 上限は非公表 | カスタム |
Proには、SOC2とISO27001のレポートとHIPAA対応リージョンが含まれます。ProにTeamsアドオン(月300ドル(約4万7,820円))を追加すると、Oktaなどを使うEnterprise SSOときめ細かいRBACを使うことができます。Enterpriseで加わる主なものは、監査ログ・SCIM API・稼働率とサポートのSLA・専任のサポートエンジニアです。

"Get started on the Hobby plan for free. No credit card required."/"50k units / month included"/"30 days data access"/"2 users"/"Community support via GitHub"/"$29 / month"/"90 days data access"/"$199 / month"/"3 years data access"/"SOC2 & ISO27001 reports, HIPAA-ready region"/"$2499 / month"/"100k units / month included, additional: $8/100k units."(Pricing ページ/Hobby・Core・Pro・Enterprise の各カード内に別々の行として並ぶ項目)— Langfuse 公式サイトより公式情報を見る →
制約はOpenTelemetryのgRPC非対応と統計送信
導入前に確認しておきたいのは、OTLPのgRPC非対応・セルフホスト版が送信する利用統計・ライセンスの分割・OpenTelemetryの受け口が対応するバージョンの4つです。この4つはどれも、ご自身の環境と照らし合わせれば影響の有無を判断できます。
- OTLPはHTTPのみでgRPC未対応です。 HTTP/JSONとHTTP/protobufには対応しますが、gRPCは使うことができません。いま使っている仕組みがgRPC前提なら、収集側を作り直します。
- セルフホスト版はデフォルトで基本的な利用統計を送信します。 送信先は中央サーバー(PostHog)で、生のトレース・プロンプト・観測・スコア・データセットの中身は含まれません。OSS版は環境変数
TELEMETRY_ENABLED=falseで無効にできます。 - ライセンスがディレクトリで異なります。
ee/系のディレクトリだけが別ライセンスなので、セルフホストで手を入れる前提なら、改変する対象がどのディレクトリかを先に調べておきます。 - OpenTelemetryの受け口はv3.22.0以降です。 ローカル配備の受け口は
http://localhost:3000/api/public/otelです。セルフホストで4xxのエラーが出るなら、最新版へ更新します。
外へ出る通信を制限している社内の環境では、利用統計の送信が想定外の通信になります。起動前にTELEMETRY_ENABLED=falseを設定しておけば避けられます。
"Please note that Langfuse currently supports OTLP over HTTP with both HTTP/JSON and HTTP/protobuf"/"gRPC is not supported yet."/"If you encounter 4xx errors while self-hosting Langfuse, please upgrade your deployment to the latest version."(対応プロトコルの注記/セルフホスト時の注記)— Langfuse 公式ドキュメントより公式情報を見る →
"By default, Langfuse automatically reports basic usage statistics of self-hosted instances to a centralized server (PostHog)."/"The telemetry does not include raw traces, prompts, observations, scores, or dataset contents."/"For Langfuse OSS, you can opt out by setting TELEMETRY_ENABLED=false"(README / Telemetry 節の各文)— Langfuse 公式リポジトリより公式情報を見る →
先に判断すべきは遡れる日数とgRPCの要否
LangfuseはAIアプリの実行記録・プロンプト管理・評価を、1か所で使うことができるオープンソースの基盤です。 プロンプト・応答・トークン使用量・レイテンシ・途中のツール呼び出しは、1件ごとのトレースに記録されています。Langfuseでは改善の流れを、プレイグラウンドとデータセットまで同じ場所で確認することができます。
導入の手順はクラウド版に登録する方法と、Docker Composeでご自身のPCに立てる方法の2経路で、選ぶ基準は処理するデータを自社の外へ出せるかどうかです。本番にはKubernetes(Helm)が推奨されています。
先に判断しておくのは遡れる日数とgRPCの要否です。無料のHobbyは30日までしか遡れず、gRPC前提の仕組みはそのままでは使うことができません。まずはDocker Composeでご自身のPCにLangfuseを立ち上げ、トレースを1件送信してみてください。必要な情報が記録されているかは、そのまま画面で確認できます。
FAQ
- Langfuseは無料で使うことができますか?
- 無料で使うことができます。クラウド版にはHobbyプランがあり、クレジットカードの登録なしで始められます。含まれるのは月50,000ユニット・データ参照30日・ユーザー2人と、GitHub経由のコミュニティサポートです。
- Langfuseのライセンスは何ですか?
- リポジトリ全体が1つのライセンスにそろっているわけではありません。`ee/`・`web/src/ee/`・`worker/src/ee/`の各ディレクトリだけが`ee/LICENSE`に定義された別ライセンスで、残りのディレクトリはMIT Expatです。セルフホスティングで改変や再配布を考えるなら、触る対象が`ee/`系のディレクトリかどうかを先に調べておきます。
- Langfuseを入れるとアプリの応答は遅くなりますか?
- 遅くなりません。SDKはトレースのデータをバックグラウンドで非同期に送信します。イベントはいったんアプリ内のキューに溜められてから、まとめて送信されます。アプリの応答時間には影響しません。
- セルフホスティングにはどのくらい手間がかかりますか?
- ご自身のPC1台で試すだけならDocker Composeで5分程度です。最新のコミットだけを取得してリポジトリをクローンし、`docker compose up`を実行すればLangfuseが起動します。本番運用としてLangfuseが推奨しているのはKubernetes(Helm)で、AWS・Azure・GCP向けのTerraformテンプレートも用意されています。
- SDKを使わない言語からでも記録を送信できますか?
- 送信できます。Langfuseは、OTLP形式のOpenTelemetryのデータを`/api/public/otel`で受信します。OpenLLMetryやOpenLITのようなライブラリを挟めば、JavaやGoからも記録できます。ただし対応しているのはHTTP経由のOTLPだけで、gRPCはまだ使うことができません。



