【AutoGen0.6.4】Multi-Agent : 2025/7/21

エージェント

AutoGenにおけるMulti-AgentアーキテクチャとModel Context設計

はじめに

AutoGenは、Microsoftが提供するタスク駆動型マルチエージェントフレームワークであり、複数のAIエージェントが協調しながら高度な処理を実行する環境を提供する。本記事では、代表的なエージェントの種類、モデルコンテキストの設定、並列処理、ツール反映制御、構成パターンまでを網羅的に解説する。


1. エージェントの種類と機能

AutoGenにおけるエージェントは、明確な責務を持つプロセス単位であり、以下のようなクラスが提供されている。

クラス名概要
AssistantAgent通常のチャットエージェント。モデルとの会話生成の基本機能を担う。
CustomAgentBaseChatAgent を継承してカスタムロジックを実装した独自エージェント。
UserProxyAgentユーザー入力を受け取り、チャット内で返信として返すシンプルな中継者。
CodeExecutorAgentPythonコードの実行が可能なエージェント。検証・演算用途に有効。
OpenAIAssistantAgentOpenAIの「Assistant API」と連携するエージェント。独自ツールも利用可。
MultimodalWebSurferWeb検索・閲覧が可能なマルチモーダルエージェント。
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の運用設計において極めて実用的である。

コメント

タイトルとURLをコピーしました