OpenTelemetry (OTEL) を使用すると、Weave で Google Agent Development Kit (ADK) のエージェントとツール呼び出しをトレースできます。ADK は、AI エージェントの開発とデプロイのための柔軟でモジュール式のフレームワークです。Gemini と Google エコシステム向けに最適化されていますが、ADK は特定のモデルやデプロイ環境に依存しません。シンプルなタスクから複雑なワークフローまで、エージェント アーキテクチャの作成、デプロイ、オーケストレーションを行うためのツールを提供します。
このガイドは、ADK でエージェントを構築しており、エージェントの推論、ツール呼び出し、マルチエージェント ワークフローをエンドツーエンドで可観測にしたい開発者を対象としています。OTEL を使用して ADK のエージェントとツール呼び出しをトレースし、そのトレースを Weave で可視化する方法を説明します。必須の依存関係をインストールし、データを Weave に送信する OTEL トレーサーを設定して、ADK のエージェントとツールを計装する方法を学べます。Weave でトレースを確認できれば、エージェントの動作をデバッグし、パフォーマンスを監視し、データがエージェントやツール内をどのように流れるかを把握できます。
-
必須の依存関係をインストールします。
-
Google APIキーを環境変数に設定します。
-
Weave で OTEL トレースを設定する。
ADK から Weave にトレースを送信するには、TracerProvider と OTLPSpanExporter を使用して OTEL を設定します。エクスポーターには、認証とプロジェクトの識別に必要な正しいエンドポイントと HTTP ヘッダーを設定してください。
APIキーやプロジェクト情報などの機密性の高い環境変数は、環境ファイル (例: .env) に保存し、os.environ を使って読み込んでください。これにより、認証情報を安全に保ち、コードベースに含めずに済みます。
- Endpoint:
https://trace.wandb.ai/otel/v1/traces。Dedicated Weave インスタンスを使用している場合、URL は代わりに次のパターンになります: [YOUR-WEAVE-HOST]/traces/otel/v1/traces。
- Headers:
Authorization: W&B APIキーを使用する Basic 認証。
project_id: あなたの W&B entity/プロジェクト名 (例: myteam/myproject)。
ADK から Weave に OTEL トレースを送信する
前提条件が整ったら、span データを Weave に転送する OTEL exporter と トレーサープロバイダー を設定できます。次のコードスニペットでは、OTLP span exporter と トレーサープロバイダー を設定して、ADK アプリケーションから Weave に OTEL トレースを送信する方法を示します。
Weave が ADK を適切にトレースできるようにするには、コード内で ADK コンポーネントを使用する 前に、グローバル トレーサープロバイダー を設定してください。
トレーサープロバイダーを設定すると、自動トレースを有効にした ADK エージェントを作成して実行できます。次の例では、ツールを備えた LLM エージェントを作成し、インメモリ ランナーで実行する方法を示します。
エージェントのすべての操作は自動的にトレースされ、Weave に送信されるため、実行フローを可視化できます。モデルの Call、推論ステップ、ツール呼び出しを確認できます。
このセクションでは、エージェントが複数のツールを使用したときに、ツール呼び出しがトレースにどのように表示されるかを示します。ADK でツールを定義して使用すると、それらのツール呼び出しもトレースに取得されます。OTEL インテグレーションは、エージェントの推論プロセスと個々のツール実行の両方を自動的に計装し、エージェントの動作を包括的に把握できるようにします。
以下は、複数のツールを使用する例です。
単一エージェントのセットアップに加えて、ADK は複数のエージェントをワークフローに組み合わせることをサポートしています。同じ OTEL 設定で、追加のセットアップなしにそれらのフローをトレースできます。ADK には、より複雑なシナリオに対応するさまざまなワークフローエージェントが用意されています。ワークフローエージェントは、通常の LLM エージェントと同様にトレースできます。以下の例では SequentialAgent を使用します。
このワークフローエージェントのトレースでは、Weave で両方のエージェントが順番に実行される様子が示され、データがマルチエージェントシステム内をどのように流れるかを把握できます。