はじめに
最近のAIエージェントツール(例:GitHub Copilot Agent、Claude Code、Clineなど)の登場により、エンジニアリングの開発体験は急速に進化しています。
本記事では、こうした AIエージェントを支えるアプリケーションやLLM呼び出しの内部で「何が起きているか」を可視化・トレースする方法 を整理します。
特に、LiteLLM を中心としたトレース構成に注目し、OpenTelemetry / OpenLLMetry / Langfuse / Instana といったツールの使い分けや連携パターンについて解説します。
LLMアプリのトレース設計まとめ
LLMアプリケーション開発におけるLiteLLM、OpenLLMetry、Langfuse、Instanaの役割と使い分けを整理しました。
目的
- LLM呼び出しのトレース
- アプリ全体の可観測性の向上
ツール比較
ツール | カテゴリ | 主な役割 | トレース範囲 |
---|---|---|---|
LiteLLM | SDK・Proxy | LLM呼び出し、Span自動生成 | LLM呼び出しのみ |
OpenLLMetry | Tracer(SDK) | LLM+アプリ用のSpan生成 | LLM+アプリ全体 |
OpenTelemetry | Tracer(SDK) | 一般的なアプリのSpan生成 | アプリ全体 |
Langfuse | Tracer(SDK)・Backend | プロンプト分析、応答の分析、Span生成・可視化 | LLM内部+アプリ全体 |
Instana | Backend・Tracer(Agent) | トレース分析・可視化、Instana Agentで通常アプリ用Tracer提供(LLM用にはOpenLLMetry利用) | アプリ全体 |
トレース送信の仕組み
各ツールの詳細
LiteLLM
- OpenAI/Azure OpenAI/Claude/Bedrockへの呼び出し
- ProxyとSDKモードあり
- Spanを自動生成、OpenLLMetryと連携
OpenLLMetry
- OpenTelemetryのLLM特化型SDK
- Span自動生成・送信
- LiteLLMとの親和性が高い
Langfuse
- プロンプトや応答の詳細分析
- 品質改善、A/Bテスト用途
- Span生成・可視化
Instana
- トレース分析・可視化プラットフォーム
- 通常アプリはInstana AgentをTracerとして提供
- LLM特化用途ではOpenLLMetryを利用
OpenTelemetry
- オープンソースのトレースフレームワーク
- アプリ全体のトレース生成と送信
構成パターン例
(1) LiteLLM + OpenLLMetry
- LiteLLMでSpan生成
- OpenLLMetryでInstanaに送信
(2) OpenTelemetry単体
- アプリ内で直接設定
- InstanaやLangfuseへ送信
(3) Langfuse SDK
- LLM特化の分析用途
- プロンプト、応答の詳細分析に適する
よくある誤解
-
LiteLLM単体でInstana送信可能
- 実際はExporter設定が別途必要
-
Gatewayが必須
- アプリ内Exporterでも十分可能
用途別の推奨構成
用途 | 推奨構成 |
---|---|
LLMとアプリ全体のトレース | LiteLLM+OpenLLMetry+Instana |
一般的なアプリのトレースのみ | OpenTelemetry+Instana または Instana Agent+Instana |
LLM特化のプロンプトや応答の詳細分析 | LiteLLM+Langfuse |
LLMアプリ開発の参考としてご活用ください。