AutoGenにおけるMulti-AgentアーキテクチャとModel Context設計
はじめに
AutoGenは、Microsoftが提供するタスク駆動型マルチエージェントフレームワークであり、複数のAIエージェントが協調しながら高度な処理を実行する環境を提供する。本記事では、代表的なエージェントの種類、モデルコンテキストの設定、並列処理、ツール反映制御、構成パターンまでを網羅的に解説する。
1. エージェントの種類と機能
AutoGenにおけるエージェントは、明確な責務を持つプロセス単位であり、以下のようなクラスが提供されている。
| クラス名 | 概要 |
|---|---|
AssistantAgent | 通常のチャットエージェント。モデルとの会話生成の基本機能を担う。 |
CustomAgent | BaseChatAgent を継承してカスタムロジックを実装した独自エージェント。 |
UserProxyAgent | ユーザー入力を受け取り、チャット内で返信として返すシンプルな中継者。 |
CodeExecutorAgent | Pythonコードの実行が可能なエージェント。検証・演算用途に有効。 |
OpenAIAssistantAgent | OpenAIの「Assistant API」と連携するエージェント。独自ツールも利用可。 |
MultimodalWebSurfer | Web検索・閲覧が可能なマルチモーダルエージェント。 |
FileSurfer | ローカルファイルの探索・読み取りに特化したエージェント。 |
VideoSurfer | 動画コンテンツを視聴し情報抽出するエージェント(実験的機能)。 |
2. モデルコンテキストの設定:model_context
モデルコンテキスト(model_context)は、LLMが保持・参照する会話履歴の範囲を制御する設定機構である。
コンテキストタイプ
| モード名 | 説明 |
|---|---|
UnboundedChatCompletionContext | 全会話履歴を渡す(デフォルト)。記憶制限なし。 |
BufferedChatCompletionContext | 直近n個のメッセージのみを送信。buffer_sizeで設定可能。 |
TokenLimitedChatCompletionContext | トークン数上限で履歴を制御。会話履歴を最大トークン数以内に限定。 |
構造図
plaintextCopyEdit[AssistantAgent]
|
└── uses → model_context: ChatCompletionContext
↑
├─ UnboundedChatCompletionContext
├─ BufferedChatCompletionContext
└─ TokenLimitedChatCompletionContext
3. 高度機能:ツール呼び出しと並列処理
AutoGenでは、複数ツールを制御するための以下の設定が提供されている。
| 機能 | 説明 |
|---|---|
parallel_tool_calls | 複数のツールを並列に呼び出す。パフォーマンス向上に寄与。 |
reflect_on_tool_use | ツール出力を自然言語で要約して反映させる。可読性向上。 |
tool_iterations | 複数回連続してツールを実行する回数を制御(例:最大3回など)。 |
4. Multi-Agentの構成パターン
AutoGenでは目的に応じた複数の構成パターンが用意されており、柔軟なタスクフロー設計が可能である。
| パターン名 | 構成概略 | 使用例 |
|---|---|---|
| 分業型 | 各Agentが専門ツールを持ち分担 | 例:データ収集 → 解析 → 要約 |
| 階層型 | 上位Agentが下位Agentをツール的に呼ぶ | 例:オーケストレーション・監督型構成 |
| 自律型 | Agentが自身で必要なツールを探索し連携 | 例:AutoGPT的な自己完結タスク遂行 |
おわりに
AutoGenのMulti-Agent設計は、タスクごとの責務分離・対話履歴の制御・ツール連携の柔軟性という三本柱に支えられている。特に、モデルコンテキストを活用することで、エージェントの推論効率や計算コストを制御可能であり、大規模LLMの運用設計において極めて実用的である。


コメント