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