AutoGen Core の基本概念に進みます。エージェントはメッセージを通して通信し、自身の状態を保持し、受信したメッセージや状態の変化に応じてアクションを実行するソフトウェア・エンティティです。AI エージェントは通常は、メッセージを解釈し、推論を実行し、アクションを実行するために、ソフトウェアスタックの一部として言語モデルを使用します。
AutoGen Core : 基本概念 : マルチエージェント App / エージェント・ランタイム環境
作成 : クラスキャット・セールスインフォメーション
作成日時 : 04/08/2025
* 本記事は github microsoft/autogen の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :
- AutoGen Core : Core Concept : Agent and Multi-Agent Applications
- AutoGen Core : Core Concept : Agent Runtime Environments
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
- sales-info@classcat.com
- ClassCatJP
AutoGen Core : 基本概念 : エージェントとマルチエージェント App
エージェントはメッセージを通して通信し、自身の状態を保持し、受信したメッセージや状態の変化に応じてアクションを実行するソフトウェア・エンティティです。これらのアクションはエージェントの状態を変更し、メッセージログの更新、新しいメッセージの送信、コードの実行や API 呼び出しのような、外部効果を生成する可能性があります。
多くのソフトウェアシステムは相互に作用する独立してエージェントのコレクションとしてモデル化できます。例えば :
- 工場のフロア上のセンサー
- Web アプリケーションを動かす分散サービス
- 複数の関係者を含むビジネス・ワークフロー
- 言語モデル (e.g., GPT-4) により動作するような AI エージェント、これはコードを記述し、外部システムと相互作用し、そして他のエージェントと通信できます。
複数の相互作用するエージェントから構成される、これらのシステムは マルチエージェント・アプリケーション と呼ばれます。
Note : AI エージェントは通常は、メッセージを解釈し、推論を実行し、アクションを実行するために、ソフトウェアスタックの一部として言語モデルを使用します。
マルチエージェント・アプリケーションの特徴
マルチエージェントでは、エージェントは以下の可能性があります :
- 同じプロセスな同じマシンで実行されます。
- 異なるマシンや組織的境界を超えて動作します。
- 多様なプログラミング言語で実装され、様々な AI モデルや指示を使用します。
- 共有された目標に向かって協調し、メッセージを通してアクションを調整します。
各エージェントは、独立的に開発、テスト、配備可能な自己完結型のユニットです。このモジュールデザインはエージェントを様々なシナリオに渡り再利用し、より複雑なシステムに組み込むことを可能にします。
エージェントは本質的には 構成可能 (composable) です : 単純なエージェントは複雑で適応可能なアプリケーションを形成するように組み合わせることが可能で、そこでは各エージェントはシステム全体に特定の機能やサービスを提供します。
AutoGen Core : 基本概念 : エージェント・ランタイム環境
基礎レベルでは、フレームワークはランタイム環境を提供します、これはエージェント間の通信を容易にし、それらの ID とライフサイクルを管理し、そしてセキュリティとプライバシーの境界を強化します。
それは 2 つの種類のランタイム環境をサポートします : スタンドアローンと分散です。両方のタイプはマルチエージェント・アプリケーションを構築するための API の共通セットを提供しますので、エージェント実装を変更することなく両方の間で切り替えることができます。各タイプはまた複数の実装を持つことができます。
スタンドアローン・エージェント・ランタイム
スタンドアローン・ランタイムは単一プロセス・アプリケーションに適しており、すべてのエージェントは同じプログラミング言語で実装されていて同じプロセスで実行されます。Python API では、スタンドアローン・ランタイムの例は SingleThreadedAgentRuntime です。
次の図はフレームワークのスタンドアローン・ランタイムを示しています。
ここで、エージェントはランタイムを通じてメッセージで通信し、ランタイムはエージェントのライフサイクルを管理します。
開発者は、routed エージェント、AI モデルクライアント、AI モデル用ツール、コード実行サンドボックス、モデルコンテキスト・ストア等を含む、提供されるコンポーネントを使用してエージェントを迅速に構築できます。独自のエージェントをゼロから実装したり、他のライブラリを使用することもできます。
分散エージェント・ランタイム
分散ランタイムはマルチプロセス・アプリケーションに適しており、エージェントは異なるプログラミング言語で実装され、異なるマシンで実行される可能性があります。
分散ランタイムは、上の図で示されるように、ホスト servicer と複数のワーカーから構成されます。ホスト servicer は、ワーカーのエージェント間の通信を容易にし、接続の状態を保持します。ワーカーはエージェントを実行し、ゲートウェイを通してホスト servicer と通信します。ワーカーはホスト servicer に実行するエージェントを通知し、エージェントのライフサイクルを管理します。
エージェントはスタンドアローン・ランタイム内と同じように動作しますので、開発者はエージェント実装を変更することなく 2 つのランタイム・タイプ間で切り替えることができます。
以上