このページでは、
@weave.op デコレーターでトレースする関数の属性について説明します。Weave エージェント SDK でエージェントをインストルメントする場合は、代わりにエージェント スパン (Turn、LLM、Tool、SubAgent) に属性とイベントを設定してください。詳しくは、エージェント スパンに属性とイベントを設定するを参照してください。- デプロイメント
- テナント
- 実験
- Call ごとの属性:
weave.attributes()コンテキストマネージャーを使用して、特定の操作やコードブロックにメタデータを追加します。 - グローバル属性:
global_attributesフィールドを使用して、project 内のすべてのトレースと評価に適用される属性を初期化時に設定します。
Call ごとの属性
weave.attributes() コンテキストマネージャーを使用すると、トレース対象の特定の操作にメタデータを追加できます。特定の関数の Call や評価 run に、コンテキスト情報をタグとして付与したい場合に使用します。
- Python
- TypeScript
weave.attributes() コンテキストはネストすることもできます。同じキーがある場合は、内側のコンテキストの値で外側の値が上書きされます。
- Python
- TypeScript
グローバル属性
Weave の初期化時にグローバル属性を設定すると、project 内のすべてのトレースと評価に自動的に適用されます。環境、デプロイメントのバージョン、チーム情報など、project 全体で共通のメタデータを伝播させたい場合に便利です。- Python
- TypeScript
グローバル属性と Call ごとの属性を組み合わせる
グローバル属性と Call ごとの属性は併用できます。キーが同じ場合は、Call ごとの属性がグローバル属性を上書きします。- Python
- TypeScript
実行中に属性を取得する
実行時に、Call に適用されている属性を確認できます。これは、Weave がどのメタデータを付与しているかをデバッグしたい場合や、外側の呼び出し元が設定したコンテキスト情報に応じてコードを分岐させる必要がある場合に便利です。- Python
- TypeScript
次の例では、Weave デコレーターで 出力は次のとおりです。
process_data 関数をログするよう設定し、ログする属性を指定したうえで、実行時にそれらの属性を返します。weave.get_current_call() は、@weave.op でデコレートされた関数内でのみ動作します。op の外では None を返します。