Skip to main content
PydanticAIエージェントとツールの呼び出しをOpenTelemetry (OTEL). PydanticAIはPydanticチームによって構築されたPythonエージェントフレームワークで、生成AIを使用した本番環境グレードのアプリケーションを簡単かつ型安全に構築することができます。エージェントとツールの呼び出しをすべてトレースするためにOTELを使用しています。
Weaveでのトレーシングの詳細については、以下を参照してください OTELトレースをWeaveに送信する.
このガイドでは、OTELを使用してPydanticAIエージェントとツールの呼び出しをトレースし、それらのトレースをWeaveで視覚化する方法を説明します。必要な依存関係のインストール方法、Weaveにデータを送信するためのOTELトレーサーの設定方法、PydanticAIエージェントとツールの計測方法について学びます。また、アプリケーション内のすべてのエージェントでデフォルトでトレースを有効にする方法も紹介します。

前提条件

始める前に、必要なOTEL依存関係をインストールしてください:
次に、WeaveでOTELトレースを設定する.

WeaveでOTELトレースを設定する

PydanticAIからWeaveにトレースを送信するには、OTELをTracerProviderOTLPSpanExporterで設定します。エクスポーターを認証とプロジェクト識別のための正しいエンドポイントとHTTPヘッダーに設定します。
APIキーやプロジェクト情報などの機密性の高い環境変数は、環境ファイル(例:.env)に保存し、os.environを使用してロードすることをお勧めします。これにより、認証情報を安全に保ち、コードベースから分離することができます。

必要な設定

  • Endpoint: https://trace.wandb.ai/otel/v1/traces
  • Headers:
    • Authorization:W&B APIキーを使用した基本認証
    • project_id:W&Bのエンティティ/プロジェクト名(例:myteam/myproject

セットアップ例

以下のコードスニペットは、PydanticAIアプリケーションからWeaveにOTELトレースを送信するためのOTLPスパンエクスポーターとトレーサープロバイダーを設定する方法を示しています。

OTELでPydanticAIエージェントをトレースする

PydanticAIエージェントをトレースしてトレースデータをWeaveに送信するには、InstrumentationSettingsオブジェクトをトレーサープロバイダーで設定してAgent constructorに渡します。これにより、すべてのエージェントとツールの呼び出しがOTEL設定に従ってトレースされます。 以下の例は、トレースを有効にした簡単なエージェントを作成する方法を示しています。重要なステップは、エージェントを初期化するときにinstrument引数を設定することです:
エージェントへのすべての呼び出しがトレースされ、Weaveに送信されます。 A trace visualization of a simple PydanticAI agent

OTELでPydanticAIツールをトレースする

WeaveはOTELで計測されたPydanticAIの操作をすべてトレースできます。これにはエージェントとツールの呼び出しの両方が含まれます。つまり、エージェントがツール(例えば@agent.tool_plainでデコレートされた関数)を呼び出すとき、ツールの入力、出力、モデルの推論を含む相互作用全体がキャプチャされ、Weaveで視覚化されます。 以下の例は、システムプロンプトとツールを持つエージェントを作成する方法を示しています。トレースはエージェントとツールの両方に対して自動的に有効になります:
A trace visualization of a tool call エージェントの呼び出しとツールの呼び出しの両方がWeaveでトレースされ、アプリケーションの完全な推論と実行パスを検査できます。

すべてのエージェントをデフォルトで計測する

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

詳細情報