認証
スパンを次のエンドポイントに送信できます:- Path:
/agents/otel/v1/traces - メソッド:
POST - Content-Type:
application/x-protobuf - ベース URL: Multi-tenant Cloud の場合
https://trace.wandb.ai
opentelemetry-exporter-otlp-proto-http (Python) や @opentelemetry/exporter-trace-otlp-proto (TypeScript) などの protobuf HTTP エクスポーターを使用してください。このエンドポイントは gzip および deflate のコンテンツエンコーディングもサポートします。
エンドポイントで認証するには、W&B APIキー を OTLPSpanExporter の設定に次のいずれかの値で指定してください:
wandb-api-key: W&B APIキーを値として使用します。Authorization: ユーザー名をapi、パスワードを W&B APIキーとする HTTP Basic 認証を使用します。この形式は、エクスポーターまたはコレクターが標準の認証ヘッダーのみサポートする場合に便利です。
project のルーティング
Weave は、OTel リソース属性またはリクエストヘッダーを使用して、スパンを project にルーティングします。- リソース属性 (推奨) :
TracerProviderリソースで、wandb.entityに CoreWeave Forge のチーム名またはユーザー名を、wandb.projectにプロジェクト名を設定します。 project_idヘッダー: 値を[YOUR-TEAM]/[YOUR-PROJECT]に設定します。
Agents ビュー向けにスパンを整形する
Weave はあらゆる OTel スパンを受け入れ、そのすべての属性を保存しますが、Agents ビューがレンダリングするのは OTel GenAI セマンティック規約 に準拠したスパンです。各スパンにgen_ai.operation.name を設定して、そのスパンが何を表すかを Weave に伝えます。
グループ化を制御する属性がほかに 2 つあります。
gen_ai.conversation.id: ターンを会話単位にグループ化します。会話の有効期間中は固定の ID を使用してください。gen_ai.agent.name: Agents タブで、会話を名前付きのエージェントごとにグループ化します。
gen_ai.request.model、gen_ai.usage.input_tokens、gen_ai.usage.output_tokens など、その他の GenAI セマンティック規約の属性を設定すると、モデル名やトークン数が表示に追加されます。ただし、これらは必須ではありません。これらのスパンが対応するエージェントのデータモデルについては、エージェントをトレースする を参照してください。
環境変数のみで設定する
アプリケーションまたはコレクターが標準の OTel エクスポーター環境変数を読み取る場合は、次の変数を設定するだけで、コードを変更せずにスパンを Weave にルーティングできます。例: Weave SDK を使用せずにエージェント スパンを出力する
次の例では、OTel パッケージのみを使用して、最小構成のエージェントのターンをインストルメントします。ターンに対してinvoke_agent スパン、LLM Call に対して chat スパン、ツール呼び出しに対して execute_tool スパンを出力し、それらを Weave のエージェントエンドポイントにエクスポートします。
まず、必要な依存関係をインストールします。
WANDB_API_KEY、ENTITY、PROJECT の値を設定し、実行します。
gen_ai.conversation.id を持つ invoke_agent スパンをさらに出力します。各ターンはそれぞれのトレースのルートスパンであるため、ターン間で親スパンを共有する必要はありません。
アプリケーションがスパンをエクスポートしたら、Weave プロジェクトの Agents タブを開きます。