このページに掲載されているコードサンプルは、すべて Python です。
このページでは、エージェントベースのアプリケーションをトラッキングして分析するために、Smolagents を W&B Weave と統合する方法を説明します。Weave のトレース機能とバージョン管理機能を使って、モデル推論をログし、関数呼び出しを監視し、Experiments を整理する方法を学べます。ここで紹介する例に沿って進めることで、有用な知見を取得し、アプリケーションを効率的にデバッグし、異なるモデル設定を比較できます。これらはすべて Weave の Web インターフェース上で行えます。
Smolagents は、強力なエージェント型アプリケーションを構築するための最小限の抽象化を備えた、シンプルなフレームワークです。OpenAI、Hugging Face Transformers、Anthropic など、複数の LLM プロバイダをサポートします。
Weave は Smolagents のトレースを自動的に収集します。トラッキングを開始するには、weave.init() を呼び出し、通常どおりライブラリを使用します。
-
Smolagents を Weave で使用する前に、必要なライブラリをインストールするか、最新バージョンにアップグレードしてください。次のコマンドは、
smolagents、openai、weave をインストールまたはアップグレードし、出力を抑制します。
-
Smolagents は、OpenAI、Hugging Face Transformers、Anthropic など、複数の LLM プロバイダをサポートしています。選択したプロバイダに対応する環境変数を設定して、APIキーを指定してください。
言語モデルアプリケーションのトレースを一元管理された場所に保存することは、開発時にも本番環境でも不可欠です。これらのトレースはデバッグに役立つだけでなく、アプリケーション改善のための貴重なデータセットにもなります。
Weave は Smolagents のトレースを自動的にキャプチャします。トラッキングを開始するには、weave.init() を呼び出して Weave を初期化し、その後は通常どおりライブラリを使用します。
次の例では、ツールを使用する LLM エージェントの推論 call を Weave でログする方法を示します。このシナリオでは、次のことを行います。
- Smolagents の
OpenAIServerModel を使用して、言語モデル (OpenAI の gpt-4o) を定義します。
- 必要に応じてエージェントが呼び出せる検索ツール (
DuckDuckGoSearchTool) を設定します。
- ツールとモデルを渡して、
ToolCallingAgent を構築します。
- 検索ツールをトリガーするクエリをエージェント経由で実行します。
- Weave は各関数とモデルの呼び出しをログし、Web インターフェースで確認できるようにします。
コードサンプルを実行したら、Weave プロジェクトのダッシュボードにアクセスして、トレースを確認します。
smolagents の @tool で関数をデコレートするか、smolagents.Tool クラスを継承することで、agentic ワークフロー用のカスタムツールを定義できます。
Weave は、Smolagents ワークフロー内のカスタムツールの call を自動的にトラッキングします。次の例では、Weave でカスタム Smolagents ツールの call をログする方法を示します。
- カスタムの
get_weather 関数を定義し、Smolagents の @tool でデコレートすることで、エージェントが推論プロセスの一部としてこの関数を呼び出せるようにします。
- この関数は、location と、摂氏で出力するための optional フラグを受け取ります。
OpenAIServerModel を使用して言語モデルをインスタンス化します。
- カスタムツールとモデルを使って
ToolCallingAgent を作成します。
- エージェントがクエリを実行すると、
get_weather ツールを選択して呼び出します。
- Weave は、モデルの推論とカスタムツールの呼び出しの両方を、argument と Return Value を含めてログします。
コードサンプルを実行したら、Weave プロジェクトのダッシュボードにアクセスしてトレースを確認します。