Messages.create() メソッドを自動的に呼び出すことでこれを実現します。
このガイドでは、トレースを取得する方法、独自の関数を op としてラップする方法、実験向けに再利用可能な Model を構築する方法、さらに Anthropic SDK の使用時にツールの使用をトラッキングする方法を紹介します。これらのパターンを使用すると、カスタムのロギングコードを記述しなくても、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 はトレース情報を自動的に取得してリンクを出力します。リンクをクリックすると、Weave UI でトレースを表示できます。
独自の op でラップする
weave.init() だけでも Anthropic SDK の Call は取得できますが、独自の関数を op でデコレートすると、各 model call の前後にあるアプリケーション ロジックを含む、より豊富なトレースを取得できます。
Weave の op は、実験を進める中でコードを自動的にバージョン管理し、入力と出力を取得します。Anthropic.messages.create() を呼び出す関数を、Python では @weave.op() でデコレートし、TypeScript では weave.op() でラップすると、Weave がその入力と出力をトラッキングします。
以下の例は、関数をトラッキングする方法を示しています。
- Python
- TypeScript
weave.op() でデコレートすると、Weave はその関数のコード、入力、出力を取得します。op を使用すれば、ネストされた関数を含め、トラッキングしたい任意の関数をトラッキングできます。
実験をしやすくするために Model を作成する
weave.Model クラスは Weave Python SDK でのみ利用できます。TypeScript では、weave.op() ラッパーを使用して、構造化されたパラメーターを持つ関数をトラッキングします。Model クラスを使用すると、system prompt や使用しているモデルなど、アプリの実験に関する詳細を取得して整理できます。これにより、アプリの異なるイテレーションを整理して比較しやすくなります。
コードのバージョン管理や入力と出力の取得に加えて、モデルはアプリケーションの動作を制御する構造化されたパラメーターも取得します。これにより、どのパラメーターが最も効果的かを検索しやすくなります。Weave モデルは、serve や 評価 と組み合わせて使用することもできます。
次の例では、model と temperature を使って実験できます。
JokerModel の新しいバージョンを作成してトラッキングします。これにより、Trace Data をコードの変更に関連付けることができ、どの設定がユースケースに最も適しているかを判断するのに役立ちます。
ツール (関数呼び出し)
- Python
- TypeScript
