Skip to main content
AutoGen は、AI エージェントやアプリケーションを構築するための Microsoft 製フレームワークで、複雑なマルチエージェントシステムを簡単に作成できます。AutoGen には、会話型 AI 向けのコンポーネント (AgentChat) 、マルチエージェントのコア機能 (Core) 、外部サービスとのインテグレーション (Extensions) が用意されています。また、ノーコードでエージェントのプロトタイプを作成できる Studio も提供されています。詳細については、AutoGen の公式ドキュメントを参照してください。
このガイドは、AutoGen の基本を理解していることを前提としています。
Weave は AutoGen と連携し、マルチエージェントアプリケーションの実行をトレースして可視化できます。Weave を初期化すると、autogen_agentchat、autogen_core、autogen_ext 内のやり取りが自動的にトラッキングされます。このガイドでは、AutoGen で Weave を設定する方法を説明するとともに、モデルクライアント、ツールを使用するエージェント、グループチャット、メモリ、RAG ワークフロー、エージェントランタイム、逐次ワークフロー、コード実行器を扱う実践的なサンプルを紹介します。このガイドを最後まで進めると、AutoGen アプリケーションの詳細なトレースを Weave で取得し、エージェントの動作をデバッグしたり、LLM の使用状況を監視したり、複雑なワークフローにおけるエージェント間のやり取りを把握したりできるようになります。

前提条件

始める前に、AutoGen と Weave をインストールしておく必要があります。また、使用する LLM プロバイダの SDK (OpenAI や Anthropic など) もインストールしておいてください。
以降のサンプルで使用する LLM プロバイダに対してモデルクライアントが認証できるよう、APIキーを環境変数として設定します。

基本的なセットアップ

トレースの取得を開始するには、スクリプトの冒頭で Weave を初期化します。Weave を初期化すると、それ以降のスクリプト内の AutoGen の Call が自動的にインストルメントされます。
このスニペットを実行すると、Weave は autogen-demo project にトレースを送信するよう設定され、以降スクリプト内で発生する AutoGen のアクティビティはすべて Weave によって自動的に取得されます。

モデルクライアントのトレース

以下のセクションでは、AutoGen 内のモデルクライアントに直接行われた Call を Weave がどのようにトレースするかを、単一の Call、ストリーミング応答、キャッシュされた応答のそれぞれについて説明します。

クライアントの create Call のトレース

この例では、OpenAIChatCompletionClient への Call をトレースする方法を示します。
autogen-simple-client.png

ストリーミングを使用したクライアントの create Call のトレース

Weave は、ストリーミング応答のトレースもサポートしています。
autogen-streaming-client.png

キャッシュされたクライアント Call のトレース

AutoGen の ChatCompletionCache を使用することもできます。Weave はこれらのやり取りをトレースし、応答がキャッシュから返されたのか、新しい Call によるものなのかを表示します。
autogen-cached-client.png

ツール呼び出しを行うエージェントのトレース

このセクションでは、Weave がエージェントとそのツールの使用をトレースする方法を説明します。これにより、エージェントがどのようにツールを選択して実行するかを把握できます。次の例では、天気ツールを定義し、AssistantAgent に割り当てます。
autogen-agent-tools.png

ラウンドロビン方式の GroupChat のトレース

Weave は RoundRobinGroupChat などのグループチャット内のやり取りをトレースするため、エージェント間の会話の流れを追跡できます。すべてのエージェントのターンを 1 つの親トレースの下にまとめて効率よく確認するには、グループチャットの関数を @weave.op でラップします。この手順は省略可能ですが、実施することをお勧めします。
round_robin_group_chat.png

メモリのトレース

Weave は AutoGen のメモリコンポーネントをトレースできます。@weave.op() を使用してメモリ操作を 1 つのトレースにまとめると、可読性が向上します。これにより、メモリの追加や取得の Call が、それらを使用するエージェントの run と一緒に表示されるようになります。
autogen-memory.png

RAG ワークフローのトレース

Weave では、ChromaDBVectorMemory などのメモリシステムを使用したドキュメントのインデックス作成や取得を含め、取得拡張生成 (RAG) ワークフローをトレースできます。フロー全体を可視化し、インデックス作成、取得、そしてその結果として実行される LLM Call を 1 つのトレースにまとめて表示するには、RAG プロセスを @weave.op() でデコレートします。
この RAG の例を実行するには chromadb が必要です。pip install chromadb でインストールしてください。
autogen-rag.png

エージェントランタイムのトレース

Weave は、SingleThreadedAgentRuntime などの AutoGen のエージェントランタイム内の操作をトレースできます。ランタイムの実行関数を @weave.op() でラップすると関連するトレースがグループ化され、ランタイムの実行中に呼び出されるメッセージハンドラの一連の流れを全体として確認できます。
autogen-runtime.png

逐次ワークフローのトレース

エージェント間のやり取りを順に定義する、複雑なエージェントワークフローをトレースできます。@weave.op() を使用してワークフロー全体を上位レベルでトレースすると、各エージェントの処理が 1 つの親 Call の下にネストされます。次の例では、コンセプト抽出エージェント、ライターエージェント、書式設定・校正エージェント、ユーザーエージェントをチェーンとしてつなぎ、洗練されたマーケティングコピーを作成します。
autogen-sequential-workflow.png

コード実行器のトレース

Docker が必須です この例では Docker を使用してコードを実行するため、環境によっては動作しない場合があります (たとえば、Colab 上で直接実行する場合) 。試す際は、ローカルで Docker が起動していることを確認してください。
Weave は、AutoGen エージェントによるコードの生成と実行をトレースします。アシスタントエージェントが生成したコードと、そのコードを実行した際に実行器エージェントが返す出力の両方を確認できます。
autogen-codegen.png

詳細情報

Weave のトレースと Op について理解を深めるには、以下のガイドを参照してください。 このガイドでは、Weave と AutoGen の統合の基本を紹介しました。Weights & Biases の UI では、エージェントのやり取り、モデルの Call、ツールの使用に関する詳細なトレースを確認できます。
最終更新日 2026年9月30日