前提条件
Weave にトレースを送信するには、事前に OTEL の依存関係をインストールし、OTEL エクスポーターを設定しておく必要があります。必要な OTEL の依存関係をインストールします。Weave で OTEL トレースを設定する
PydanticAI から Weave にトレースを送信するには、TracerProvider と OTLPSpanExporter を使用して OTEL を設定します。エクスポーターには、認証と project の識別に必要な正しいエンドポイントと HTTP ヘッダーを指定してください。
APIキーや project 情報などの機密性の高い環境変数は環境ファイル (例: .env) に保存し、os.environ で読み込みます。こうすることで、認証情報を安全に管理し、コードベースから切り離しておくことができます。
必須の設定
- エンドポイント:
https://trace.wandb.ai/otel/v1/traces - ヘッダー:
Authorization: W&B APIキーを使用した Basic 認証。project_id: W&B の entity 名とプロジェクト名 (例:myteam/myproject) 。
セットアップ例
次のコードスニペットでは、OTLP スパンエクスポーターとトレーサープロバイダーを設定して、PydanticAI アプリケーションから Weave に OTEL トレースを送信する方法を示します。tracer_provider の準備ができました。これを PydanticAI エージェントに渡すと、エージェントの OTEL トレースを Weave に送信できます。
OTEL を使用して PydanticAI エージェントをトレースする
PydanticAI エージェントをトレースしてトレースデータを Weave に送信するには、トレーサープロバイダーを設定したInstrumentationSettings オブジェクトを Agent コンストラクターに渡します。これにより、エージェントのすべての Call とツール呼び出しが OTEL の設定に従ってトレースされます。
次の例では、トレースを有効にした基本的なエージェントを作成する方法を示します。重要なのは、エージェントの初期化時に instrument 引数を設定することです。

OTEL を使用して PydanticAI のツールをトレースする
Weave は、OTEL でインストルメントされた PydanticAI のあらゆる操作をトレースできます。これには、エージェントの呼び出しとツール呼び出しの両方が含まれます。つまり、エージェントがツール (たとえば、@agent.tool_plain でデコレートされた関数) を呼び出すと、ツールの入力と出力、モデルの推論を含むやり取り全体が取得され、Weave で可視化されます。
次の例では、システムプロンプトとツールを備えたエージェントを作成する方法を示します。トレースは、エージェントとツールの両方で自動的に有効になります。

デフォルトですべてのエージェントをインストルメントする
アプリケーション内のすべての PydanticAI エージェントに OTEL トレースを適用するには、Agent.instrument_all() メソッドを使用します。このメソッドは、instrument パラメーターを明示的に指定していないすべてのエージェントに対して、デフォルトの InstrumentationSettings インスタンスを設定します。