AutoGen(オートジェン)
AutoGenはMicrosoft Researchが開発したマルチエージェントフレームワークで、会話ベースのエージェント間通信によりコード生成・データ分析・問題解決などの複雑なタスクを自動化する。GitHub Star 68,000超の最も人気のあるMASフレームワーク。
AutoGen(オートジェン)は、Microsoft Researchが2023年に公開したオープンソースのマルチエージェントフレームワークである。LLMベースの複数エージェントが「会話」を通じて協調しタスクを遂行する設計思想を持ち、2026年時点でGitHub Star 68,000超を記録する最も人気のあるMASフレームワークの一つ。
概要
AutoGenの中核概念はConversableAgent(会話可能エージェント)で、各エージェントがメッセージを送受信しながら処理を進める。2024年のAutoGen 0.4(旧称AutoGen 0.2 → AG2への名称変更を経て統合)では、アーキテクチャが刷新され、イベント駆動型の非同期処理、プラグイン型ツール統合、マルチモデルサポートが強化された。
従来のv0.2系ではAssistantAgent(LLM駆動)とUserProxyAgent(人間代理 or コード実行)の2種類が基本だったが、v0.4ではより汎用的なAgentプロトコルとランタイムの分離により、カスタムエージェントの作成が容易になった。
主な特徴・仕組み
- 会話ベースアーキテクチャ: エージェント間の通信を「会話」として抽象化。1対1チャット・GroupChat(多者間会話)・ネストチャット(サブ会話)を組み合わせ可能
- GroupChat: 複数エージェントが参加するグループ会話。発言順はラウンドロビン・ランダム・LLM選択(next speaker selection)から選べる
- コード実行: DockerコンテナまたはE2Bサンドボックス内でPython/Bashコードを安全に実行。
CodeExecutorAgentが出力を次のエージェントにフィードバック - ヒューマンインザループ:
UserProxyAgentのhuman_input_mode設定(ALWAYS/TERMINATE/NEVER)で、人間の介入レベルを制御 - マルチモデル対応: OpenAI GPT-4o・Anthropic Claude 3.5・Azure OpenAI・Ollama・LiteLLM経由のローカルモデルを混在利用可能
- ツール統合: Python関数をデコレータ
@register_functionでツールとして登録。エージェントが自律的にツールを選択・実行 - キャッシュ: LLM応答のキャッシュにより、同一プロンプトの再実行コストを削減(DiskCacheまたはRedis)
- テレメトリ: OpenTelemetry対応で、エージェント間通信のトレース・レイテンシ計測・コスト追跡が可能
AutoGen v0.4 主要コンポーネント
| コンポーネント | 役割 | v0.2からの変更点 |
|---|---|---|
| Agent Protocol | エージェントの基本インターフェース | 新規(ConversableAgent統合) |
| AgentChat | 高レベル会話API | v0.2のGroupChatを発展 |
| Runtime | エージェント実行環境 | 新規(非同期イベント駆動) |
| Tools | 外部ツール統合 | デコレータベースに統一 |
| Model Client | LLMアクセス抽象化 | マルチプロバイダ対応強化 |
実装例: コード生成ワークフロー
典型的なAutoGenワークフローでは、3つのエージェントが会話形式でコーディングタスクを遂行する:
- PlannerAgent: タスク要件を分析し、実装計画を策定
- CoderAgent: 計画に基づいてPythonコードを生成
- ReviewerAgent: コードの品質・セキュリティ・テストカバレッジを評価
GroupChatのnext speaker selectionにLLMを使い、コードが不合格の場合はCoderAgentに戻るループを形成する。max_round=10で無限ループを防止。
CrewAI・LangGraphとの比較
- AutoGen vs CrewAI: AutoGenは会話ベースで柔軟性が高く、動的なエージェント構成変更が得意。CrewAIは役割ベースで設計が直感的だが、固定的なワークフロー向き
- AutoGen vs LangGraph: AutoGenはエージェント間の自然言語メッセージパッシングが中心。LangGraphはプログラマティックな状態管理と条件分岐が中心。複雑な分岐ロジックはLangGraph、自由度の高い対話はAutoGenが適する
よくある質問(FAQ)
Q1: AutoGen v0.2とv0.4はどちらを使うべきか? A: 新規プロジェクトではv0.4一択。v0.2はメンテナンスモードに移行しており、新機能追加は行われていない。v0.2からの移行ガイドが公式ドキュメントに用意されている。
Q2: AutoGenでローカルLLMを使えるか? A: LiteLLM統合により、Ollama・LM Studio・vLLM等で動作するローカルモデルを利用可能。Qwen3-8BやGemma4-12Bクラスで動作実績がある。ただし推論速度がボトルネックになるため、GPU(RTX 4090以上)またはApple Silicon M4 Pro以上を推奨。
Q3: AutoGenのGroupChatで最適なエージェント数は? A: Microsoft Researchの論文では3-5エージェントが最適とされる。それ以上はコミュニケーションオーバーヘッドが増大し、発言順制御も困難になる。特定タスクに特化した少数精鋭の構成が効果的。
まとめ
- AutoGenはMicrosoft Research発のマルチエージェントフレームワーク、GitHub Star 68,000超
- 会話ベースのエージェント間通信でGroupChat・ネストチャット・コード実行を統合
- v0.4で非同期イベント駆動アーキテクチャに刷新、マルチモデル対応を強化
- 3-5エージェントの少数精鋭構成が費用対効果のスイートスポット