このページのコードサンプルはすべて Python で記述されています。
このページでは、Smolagents を W&B Weave と統合し、エージェント型アプリケーションをトラッキングおよび分析する方法について説明します。エージェント型ワークフローを構築しており、モデルやツールの呼び出しを可視化したい開発者を対象としています。Weave のトレース機能とバージョン管理機能を使用して、モデルの推論をログし、関数の Call をモニターし、実験を整理する方法を学びます。このページのサンプルに沿って進めることで、有益なインサイトを取得し、アプリケーションを効率的にデバッグし、さまざまなモデルの設定を比較できます。これらはすべて Weave の Web インターフェース上で行えます。
Smolagents は、エージェント型アプリケーションを構築するための最小限の抽象化を提供するフレームワークです。OpenAI、Hugging Face Transformers、Anthropic などの複数の LLM プロバイダをサポートしています。
Weave は Smolagents のトレースを自動的に取得します。トラッキングを開始するには、weave.init() を呼び出してから、通常どおりライブラリを使用してください。
前提条件
始める前に、必要なライブラリをインストールし、選択した LLM プロバイダへのアクセスを設定する必要があります。
-
Smolagents を Weave で使用する前に、必要なライブラリをインストールするか、最新バージョンにアップグレードする必要があります。次のコマンドは
smolagents、openai、weave をインストールまたはアップグレードし、出力を抑制します。
-
Smolagents は、OpenAI、Hugging Face Transformers、Anthropic など複数の LLM プロバイダをサポートしています。Smolagents がモデルを呼び出す際に認証できるように、選択したプロバイダーの APIキーを設定します。対応する環境変数を設定してください。
基本的なトレース
このセクションでは、基本的な Smolagents ワークフローのトレースを Weave が自動的に取得する仕組みを説明します。
言語モデルアプリケーションのトレースを一元管理することは、開発環境でも本番環境でも欠かせません。トレースはデバッグに役立つだけでなく、アプリケーションを改善するためのデータセットとしても活用できます。
Weave は Smolagents のトレースを自動的に取得します。トラッキングを開始するには、weave.init() を呼び出して Weave を初期化し、あとは通常どおりライブラリを使用するだけです。
次の例では、ツールを使用する LLM エージェントへの推論 Call を Weave でログする方法を示します。このシナリオでは、次の処理を行います。
- Smolagents の
OpenAIServerModel を使用して、言語モデル (OpenAI の gpt-4o) を定義します。
- エージェントが必要に応じて呼び出せる検索ツール (
DuckDuckGoSearchTool) を設定します。
- ツールとモデルを渡して
ToolCallingAgent を構築します。
- 検索ツールが呼び出されるクエリを、エージェント経由で実行します。
- Weave は関数およびモデルの各 invocation をログし、Weave の Web インターフェースで確認できるようにします。
コードサンプルを実行したら、Weave プロジェクトのダッシュボードにアクセスしてトレースを確認します。
組み込みツールに加えて、カスタムツールでエージェントを拡張し、それらのツール呼び出しも Weave でトレースできます。
smolagents の @tool で関数をデコレートするか、smolagents.Tool クラスを継承することで、エージェント型ワークフロー用のカスタムツールを宣言できます。
Weave は、Smolagents ワークフローにおけるカスタムツール呼び出しを自動的にトラッキングします。次の例は、Weave でカスタム Smolagents ツールの呼び出しをログする方法を示しています。
- カスタムの
get_weather 関数を定義し、Smolagents の @tool でデコレートします。これにより、エージェントは推論プロセスの中でこの関数を呼び出せるようになります。
- この関数は、場所と、摂氏で出力するかどうかを指定するオプションのフラグを受け入れます。
OpenAIServerModel を使用して言語モデルをインスタンス化します。
- カスタムツールとモデルを指定して
ToolCallingAgent を作成します。
- エージェントがクエリを実行すると、
get_weather ツールが選択されて呼び出されます。
- Weave は、モデルの推論とカスタムツールの invocation の両方を、引数と戻り値も含めてログします。
コードサンプルを実行したら、Weave プロジェクトのダッシュボードにアクセスしてトレースを確認してください。