opensmith の紹介:ローカルファーストでオープンソースの LangSmith 代替ツール

可観測性は、信頼性の高い大規模言語モデル(LLM)アプリケーションを開発する上での基盤です。LangSmith のようなツールは、複雑な LLM パイプラインのトレースとデバッグの標準を確立していますが、しばしば大きなトレードオフを伴います。つまり、クラウドホストのインフラとアカウントが必要になる点です。データプライバシーを重視したり、ローカルでの開発を優先したり、単にクラウド設定の手間を避けたい開発者にとって、これらの障壁は制約となります。

opensmith は、開発者のマシン上で直接可観測性を提供することを目的とした、新しいオープンソースのローカルファースト LLM パイプライントレーサーです。クラウドを排除することで、opensmith はアカウントやホストサービス、複雑な Docker 設定なしでトレースを確認できるようにします。

ローカルファーストの哲学

opensmith の主な動機は、クラウド依存を排除することです。作者の shivnathtathe が Hacker News で述べたように:

LangSmith では自分のトレースを見るためにクラウドアカウントが必要だったので、これを作りました。

ローカルの SQLite データベース(デフォルトでは ~/.opensmith/traces.db に保存)を利用することで、opensmith はトレースデータがユーザーのマシンから外部に出ることがないことを保証します。このアプローチはプライバシーとセキュリティを向上させるだけでなく、デバッグデータを閲覧するためにインターネット接続が不要になることで開発サイクルを簡素化します。

コア機能と実装

opensmith は統合の容易さを念頭に設計されており、Python の LLM パイプラインを計測するための主な 3 つの方法を提供します。

1. @trace デコレータ

細かい制御が必要な場合、開発者は任意の Python 関数を @trace デコレータでラップできます。これにより関数の入力と出力が記録され、RAG(Retrieval-Augmented Generation)パイプラインや複雑なエージェントワークフローにおけるデータの流れを簡単に追跡できます。

2. コンテキストマネージャ

単一の関数に収まりきらないコードブロックに対しては、trace コンテキストマネージャを使用してパイプライン内の特定のイベントや変数を手動で記録できます。

3. コード不要の autopatch()

迅速なプロトタイピングにおいて最も強力な機能は autopatch() かもしれません。この関数により、opensmith はビジネスロジックを手動で変更することなく、一般的な LLM およびベクトルデータベースのバックエンドを自動的に計測できます。

現在、サポートされているバックエンドは以下の通りです:

  • LLMs: OpenAI、Anthropic、LiteLLM
  • Vector Databases: Qdrant、ChromaDB、Pinecone

トレースの分析:ダッシュボードと CLI

トレースはデータが簡単にアクセスできる場合にのみ有用です。opensmith は取得したデータとやり取りするための主な 2 つの方法を提供します。

ローカルダッシュボード

opensmith ui を実行すると、開発者は http://localhost:7823 にローカルダッシュボードを起動します。これにより、トレースを視覚的に探索し、パイプラインのステップを検査し、LLM 呼び出しのパフォーマンスを分析できるインターフェースが提供されます。

コマンドラインインターフェース(CLI)

ターミナルを好むユーザー向けに、CLI はいくつかのユーティリティコマンドを提供します。

  • opensmith traces: 最近のトレースを一覧表示します。
  • opensmith stats: トレース、ステップ、トークン、コストに関する集計統計を提供します。
  • opensmith clear: ローカルデータベースを削除してリセットします。

設定と柔軟性

opensmith は、現在の作業ディレクトリにある opensmith.json ファイルを通じて高度に設定可能です。開発者はカスタムデータベースパスを指定したり、コンソールモード(結果をリアルタイムでターミナルに出力)を切り替えたり、どのバックエンドを autopatch するか、除外するかを定義できます。

結論

まだアルファ段階(v0.1.2)にありますが、opensmith は、よりアクセスしやすく、プライベートで軽量な LLM 可観測性への転換を示しています。「クラウド不要、セットアップ不要」の体験に焦点を当てることで、クラウドアカウントやデータ流出の負担なしに LangSmith スタイルのトレース機能を求める開発者にとって、シンプルな代替手段を提供します。

Sources