Skip to main content
Weave Op は、すべての Call を自動的にログする、バージョン管理された関数です。このガイドは、Weave を使用してコードをインストルメントする開発者向けに、Op の作成、Weights & Biases UI での表示のカスタマイズ、Weave がログするデータの制御、サンプリングと削除の管理方法を説明します。
Op を作成するには、Python 関数に weave.op() デコレーターを付けます。
Op を呼び出すと、前回の呼び出しからコードが変更されている場合は新しい Op バージョンが作成され、関数の入力と出力がログされます。@weave.op() デコレーターを付けた関数は、呼び出す前に weave.init('your-project-name') を呼び出さなければ、通常どおりに動作します (コードのバージョン管理やトラッキングは行われません) 。Weave toolbelt を使用して、Op をサーブまたはデプロイできます。

表示名をカスタマイズする

カスタム表示名を使用すると、Weights & Biases UI で Op を特定しやすくなります。特に、関数名が一般的または自動生成されている場合に便利です。
Op の表示名をカスタマイズするには、@weave.op デコレーターの name パラメーターを設定します:

kind とカラーを適用する

Weights & Biases UI で Op を整理しやすくするには、コード内の @weave.op デコレーターに kind 引数と color 引数を追加して、カスタムの kind とカラーを適用します。たとえば次のコードでは、親関数に LLM の kind と blue の color を、ネストされた関数に tool の kind と red の color を適用しています。
これにより、Weights & Biases UI 上の Op に次のようにカラーと kind が適用されます。
LLM kind と blue カラーが適用された親 Call と、tool kind と red カラーが適用されたネストされた Call が表示された Weights & Biases UI。
kind に指定できる値は次のとおりです。
  • agent
  • llm
  • tool
  • search
color に指定できる値は次のとおりです。
  • red
  • orange
  • yellow
  • green
  • blue
  • purple

ログされる入力と出力のカスタマイズ

元の関数を変更せずに、Weave がログするデータを変更するには (機密データを隠す場合など) 、Op デコレーターに postprocess_inputs と postprocess_output を渡します。postprocess_inputs は、キーが引数名、値が引数の値である dict を受け取り、変換後の入力を格納した dict を返します。postprocess_output は、関数が通常返す任意の値を受け取り、変換後の出力を返します。

サンプリング率の制御

Weave が Op の Call をトレースする頻度を制御するには、@weave.op デコレーターの tracing_sample_rate パラメーターを設定します。Call の一部だけをトレースする必要がある高頻度の Op に使用します。エージェントの開発中はすべてのトレースを収集し、エージェントの動作の調整と理解に役立てます。本番では、トレースのサンプリングを設定して、エージェントの動作の可観測性を維持しながらコストを削減します。Weave は最も外側の Op にのみサンプリング率を適用します。ネストされた Op にサンプリング率が設定されていても、親 Op が先に呼び出されてその Op を呼び出す場合、Weave はネストされた Op のサンプリング率を無視します。
Weave が Op の Call をサンプリング対象に選ばない場合:
  • 関数は通常どおり実行されます。
  • Weave はトレースデータを受信しません。
  • Weave はその Call の子 Op をトレースしません。
サンプリング率は 0.0 以上 1.0 以下である必要があります。
デフォルトでは、Weave は各 Call をログする際に、その Call へのリンクを出力します。ログする際に Call リンクの出力を抑制するには、環境変数 WEAVE_PRINT_CALL_LINK を false に設定します。この設定を使用すると、ログの冗長な出力を減らし、見やすくできます。

Op を削除する

Op のバージョンを削除すると、project からそのバージョンが削除されます。古くなったバージョンや不要なバージョンの整理に使用してください。
Op のバージョンを削除するには、Op の ref で .delete() を呼び出します。
削除された Op にアクセスすると、エラーが返されます。
最終更新日 2026年9月30日