Skip to main content
OpenTelemetry (OTEL) を使用すると、PydanticAI のエージェントとツール呼び出しを Weave でトレースできます。PydanticAI は Pydantic チームが開発した Python 向けのエージェントフレームワークで、生成 AI を活用した本番レベルのアプリケーションを簡単かつ型安全に構築できるように設計されています。PydanticAI は、すべてのエージェントとツール呼び出しのトレースに OTEL を使用します。
Weave での OTEL トレースの詳細については、Send OTEL Traces to Weave を参照してください。
このガイドは、PydanticAI エージェントを構築していて、エージェントとツールの実行状況を Weave で可視化したい開発者を対象としています。OTEL を使用して PydanticAI のエージェントとツール呼び出しをトレースし、そのトレースを Weave で可視化する方法を説明します。具体的には、必要な依存関係のインストール、Weave にデータを送信する OTEL トレーサーの設定、PydanticAI エージェントとツールのインストルメント方法を学びます。また、アプリケーション内のすべてのエージェントでトレースをデフォルトで有効にする方法も紹介します。

前提条件

Weave にトレースを送信するには、事前に OTEL の依存関係をインストールし、OTEL エクスポーターを設定しておく必要があります。必要な OTEL の依存関係をインストールします。
次に、Weave で 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 引数を設定することです。
エージェントへのすべての Call はトレースされ、Weave に送信されます。
基本的な PydanticAI エージェントのトレースの可視化

OTEL を使用して PydanticAI のツールをトレースする

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

デフォルトですべてのエージェントをインストルメントする

アプリケーション内のすべての PydanticAI エージェントに OTEL トレースを適用するには、Agent.instrument_all() メソッドを使用します。このメソッドは、instrument パラメーターを明示的に指定していないすべてのエージェントに対して、デフォルトの InstrumentationSettings インスタンスを設定します。
これは、同じ設定を繰り返し記述せずに、すべてのエージェントで一貫したトレースを行いたい大規模なアプリケーションで役立ちます。詳細については、PydanticAI OTEL ドキュメントを参照してください。

詳細情報

最終更新日 2026年9月30日