LLM Observability / LLMOps

LLM アプリケーション・エージェントの挙動(プロンプト、トークン、tool 呼び出し、レイテンシ、コスト)を計測・追跡する分野。MLOps の LLM 版という位置づけ。

トレーシングの選択肢

  • OpenTelemetry (OTel) 統一路線: opentelemetry-observability の Span 属性 / Event に GenAI 用の semantic conventions を設定し、Cloud Trace 等に生成 AI 情報を表示する。ただし semantic conventions は策定途上で、span 属性として送るか Event として送るか議論の最中。ADK・OSS 実装でもこれらの定義はまだほとんど使われていない。
  • 独自トレース: OpenAI Agents SDK は OTel ではない独自のトレース機能を持つ。

主要ツール

  • langfuse: LLM observability プラットフォーム。OTel 経由のトレース取り込みと、OpenAI Agents SDK 連携の両方をサポート(2026/2 に対応)。Dataset 機能で入力と期待出力の集合を持ち性能評価に使う。
  • traceloop/openllmetry (MCPInstrumentor): OTel instrumentation ライブラリ。patch_mcp_server() / patch_mcp_client()model-context-protocol の通信を計測する PR が進行。

MCP への OTel 導入

MCP エコシステムでは OTel trace support 導入が複数の issue/discussion で並行議論されている(modelcontextprotocol #269、python-sdk #421、open-telemetry/semantic-conventions #2043、openllmetry #2662)。エージェントが server/client をまたいで tool を連鎖実行するため、分散トレースの意義が大きい。

評価との関係

実行トレースの観測だけでなく、promptfoo のようなプロンプト/モデルの評価ツールと組み合わせて品質を回す。

関連

MCP の OpenTelemetry トレース計装

model-context-protocol (MCP) サーバ/クライアント間のやり取りを opentelemetry-observabilityTrace として可視化する取り組み。LLM アプリケーションは「クライアント → MCP サーバ → 外部 API → LLM」と多段に処理が流れるため、どこで時間がかかったか・どんな引数で Tool が呼ばれたかを分散トレースで追いたい、という動機がある。

プロトコル側の議論

標準化に向けた提案・Issue が複数走っている。

  • modelcontextprotocol#269 — MCP への OpenTelemetry Trace サポート追加提案。
  • python-sdk#421 — MCP SDK への OpenTelemetry 導入。
  • traceloop/openllmetry#2662 — OpenLLMetry の MCP 対応リクエスト。
  • open-telemetry/semantic-conventions#2043 — MCP 向けの semantic conventions(span 名・属性の標準化)。

MCP は仕様面で LSP に似ている(リクエスト/レスポンスの構造)という指摘があり、計装の設計でもこの類似が参照される。

未対応・課題

  • Sampling(サーバ → クライアント方向のリクエスト、LLM 補完を逆方向に要求する機能)のトレースは未対応。
  • 独自に OTel 計装した事例はあるが、semantic conventions が固まっていないため属性の付け方が実装依存になる。

A2A への接続

リモート MCP や A2A (Agent2Agent) プロトコルが普及すると、エージェント間通信もトレース対象になる。MCP がツール接続(垂直方向)を、A2A がエージェント協調(水平方向)を担うという整理がなされている。

関連: model-context-protocolopentelemetry-observabilityllm-observabilityrust-opentelemetry-tracing