Messages.create() メソッドを自動的に呼び出すことで実現されています。
このガイドでは、Anthropic SDK を使用する際に、トレースを取得する方法、独自の関数を op としてラップする方法、実験用に再利用可能な Model を構築する方法、ツールの使用をトラッキングする方法について説明します。これらのパターンを使用すれば、独自のログ処理コードを書かなくても、Claude を活用したアプリケーションのデバッグや比較、反復的な改善を行えます。
トレース
コードにweave.init("your-team-name/your-project-name") を追加すると、Weave は Anthropic SDK のトレースを自動的に取得します。weave.init() の引数でチーム名を指定しない場合、Weave は出力を デフォルトの W&B entity にログします。プロジェクト名を指定しない場合は、Weave の初期化に失敗します。
次の例は、Anthropic への基本的な Call に Weave を統合する方法を示しています。
- Python
- TypeScript
weave.init() を含めると、Weave はトレース情報を自動的に取得し、リンクを出力します。リンクをクリックすると、Weights & Biases UI でトレースを確認できます。
独自の Op でラップする
weave.init() だけでも Anthropic SDK の Call は取得されますが、独自の関数を Op でデコレートすると、各モデルの Call の前後にあるアプリケーションロジックも含めた、より詳細なトレースが得られます。
Weave Op は、実験を進めるたびにコードを自動的にバージョン管理し、その入力と出力を取得します。Python では @weave.op() で関数をデコレートし、TypeScript では weave.op() で関数をラップしたうえで、その関数から Anthropic.messages.create() を呼び出します。これにより、Weave が入力と出力を自動的にトラッキングします。
以下のサンプルでは、関数をトラッキングする方法を示します。
- Python
- TypeScript
weave.op() でデコレートすると、Weave はその関数のコード、入力、出力を取得します。Op を使えば、ネストされた関数も含め、任意の関数をトラッキングできます。
Model を作成して実験を効率化する
個々の Call をトレースできるようになったら、次のステップとして、関連するパラメーターをまとめて整理し、さまざまな設定を比較できるようにします。
weave.Model クラスは Weave Python SDK でのみ使用できます。TypeScript では、weave.op() ラッパーを使用して、構造化されたパラメーターを持つ関数をトラッキングしてください。Model クラスを使用すると、システムプロンプトや使用しているモデルなど、アプリの実験に関する詳細を取得して整理できます。これにより、アプリのさまざまな反復処理を整理して比較しやすくなります。
モデルは、コードのバージョン管理や入力と出力の取得に加えて、アプリケーションの動作を制御する構造化されたパラメーターも取得します。これにより、最も効果的なパラメーターを検索しやすくなります。また、Weave モデルは serve や評価と組み合わせて使用することもできます。
次の例では、model と temperature を変えながら実験できます。
JokerModel の新しいバージョンを作成してトラッキングします。これにより、トレースデータをコードの変更と関連付けられるため、ユースケースに最適な設定を判断しやすくなります。
ツール (関数呼び出し)
Weave は標準のメッセージに加えて、Anthropic のツールの使用インターフェースもインストルメントするため、エージェント型ワークフローをエンドツーエンドでトレースできます。 Anthropic は、Claude が関数の Call をリクエストできる tools インターフェースを提供しています。Weave は、会話全体を通じてツール定義、ツールの使用リクエスト、ツール結果を自動的にトラッキングします。 以下は、Anthropic のツール設定の例 (抜粋) です。- Python
- TypeScript
