AI・機械学習
上級

AutoGen(オートジェン)

AutoGenはMicrosoft Researchが開発したマルチエージェントフレームワークで、会話ベースのエージェント間通信によりコード生成・データ分析・問題解決などの複雑なタスクを自動化する。GitHub Star 68,000超の最も人気のあるMASフレームワーク。

0 回閲覧
0 いいね

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高レベル会話APIv0.2のGroupChatを発展
Runtimeエージェント実行環境新規(非同期イベント駆動)
Tools外部ツール統合デコレータベースに統一
Model ClientLLMアクセス抽象化マルチプロバイダ対応強化

実装例: コード生成ワークフロー

典型的なAutoGenワークフローでは、3つのエージェントが会話形式でコーディングタスクを遂行する:

  1. PlannerAgent: タスク要件を分析し、実装計画を策定
  2. CoderAgent: 計画に基づいてPythonコードを生成
  3. 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エージェントの少数精鋭構成が費用対効果のスイートスポット