Agno エージェントやツール呼び出しは、OpenTelemetry (OTEL) を使用して Weave でトレースできます。Agno は、共有メモリ、知識、推論を備えたマルチエージェントシステムを構築するための Python フレームワークです。軽量でモデル非依存であり、テキスト、画像、音声、動画処理を含むマルチモーダル機能をサポートします。
このガイドでは、OTEL を使用して Agno エージェントとツール呼び出しをトレースし、そのトレースを Weave で可視化する方法を説明します。必要な依存関係のインストール方法、Weave に OTEL トレースを送信するトレーサーの設定方法、そして Agno エージェントとツールの計装方法を学びます。
-
必要な依存関係をインストールします:
-
OpenAI API キー (または他のモデルプロバイダー) を環境変数として設定します:
-
Weave で OTEL トレーシングを構成する。
Agno から Weave にトレースを送信するには、TracerProvider と OTLPSpanExporter を使って OTEL を設定します。エクスポーターには、認証とプロジェクト識別のための 正しいエンドポイントと HTTP ヘッダー を指定します。
APIキーやプロジェクト情報などの機密性の高い環境変数は、.env などの環境ファイルに保存し、os.environ を使って読み込んでください。これにより、認証情報を安全に保ち、コードベースに含めずに済みます。
以下の Endpoint と Headers を使用して、OTLP exporter を設定します。
- Endpoint:
https://trace.wandb.ai/otel/v1/traces
- Headers:
Authorization: W&B APIキーを使用した Basic 認証。
project_id: W&B エンティティ / project名 (たとえば、myteam/myproject)。
Agno から Weave に OTEL トレースを送信する
前提条件 を完了したら、Agno から Weave に OTEL トレースを送信できます。次のコードスニペットでは、Agno アプリケーションから Weave に OTEL トレースを送信するために、OTLP span exporter と tracer provider を構成する方法を示します。
Weave が Agno を正しくトレースできるようにするために、コード内で Agno のコンポーネントを使用する 前に グローバル tracer provider を設定してください。
OTEL で Agno エージェントをトレースする
tracer provider をセットアップしたら、自動トレース付きで Agno エージェントを作成して実行できます。Weave がその後のすべてのエージェントのアクティビティを取得できるように、エージェントを作成する前に Agno をインストルメンテーションしてください。次の例は、ツールを使ったエージェントの作成方法を示しています。
Weave はすべてのエージェント操作を自動的にトレースするため、実行フロー、モデル呼び出し、推論ステップ、ツールの呼び出しを可視化できます。
Agno でツールを定義して使用すると、トレースはこれらのツール呼び出しも取得します。OTEL インテグレーションは、エージェントの推論プロセスと個々のツール実行の両方を自動的にインストルメンテーションし、エージェントの挙動を包括的に把握できるようにします。
複数のツールを用いた例を次に示します。
OTEL でマルチエージェント チームをトレースする
Agno のマルチエージェント アーキテクチャを使うと、連携しながらコンテキストを共有できるエージェント チームを作成できます。Weave は、こうしたチーム内のやり取りも、すべてトレースします:
このマルチエージェントのトレースは、Weave 内のさまざまなエージェント間の連携を示しており、タスクがエージェントチーム全体にどのように分担されて実行されるかを可視化します。
Agno には、エージェントが問題を順を追って処理できるようにする組み込みの推論機能があります。トレースもこれらの推論プロセスを取得します。
トレースには、エージェントが複雑な問題をどのように分解し、判断を下すかを示す推論のステップが表示されます。
Agno エージェントは、メモリを保持し、ナレッジベースにアクセスできます。これにより、エージェントはやり取りをまたいでコンテキストを保持できます。Weave はこれらの操作もトレースします。
会話履歴の保存や取得を含むメモリ操作は、トレース内に表示されます。