Re Reference AI

エージェント

AutoGenとは

複数のAIエージェントによる対話(カンバセーション)を通じてタスクを協調的に解決する、Microsoft発のフレームワーク

フレームワークマルチエージェント

ひとことで言うと

複数のAIエージェント同士に会話させながらタスクを解かせる、Microsoftのツール。

概要

AutoGen(オートジェン)とは、Microsoft Researchが開発する、複数のAIエージェント間の対話(カンバセーション)を通じてタスクを協調的に解決するためのオープンソースフレームワーク。 エージェント同士がメッセージをやり取りしながら、コードの生成・実行・修正や、人間を交えたレビューといったプロセスを進められるよう設計されており、複数のエージェントに柔軟な対話パターンを持たせたいケースで利用される。 人間をエージェントの1人として対話に参加させる設定も可能で、AIエージェントの提案に人間が介入・承認するヒューマンインザループのワークフローを組み込みやすい設計になっている。 コード生成タスクでは、あるエージェントが書いたコードを別のエージェントが実行・レビューし、エラーがあれば修正を依頼するといった開発者同士のペアプログラミングに似たやり取りを自動化できる。

背景

複雑なタスクを1つのエージェントに任せるのではなく、複数のエージェントが対話しながら役割を果たすことで、より柔軟に問題を解決できるという発想から、Microsoft ResearchはAutoGenを開発した。

歴史

2023年: Microsoft ResearchがAutoGenを公開し、複数エージェント間の対話に基づくマルチエージェントフレームワークとして展開している。

アーキテクチャ

エージェントに役割やシステムプロンプトを設定し、エージェント同士、あるいはエージェントと人間との間でメッセージをやり取りするグループチャット形式の対話を軸に処理を進める。 コード実行機能を持つエージェントを組み込み、生成したコードをその場で実行・検証するといった構成も可能。

コード例

ConversableAgentによる対話(概念例)

from autogen import ConversableAgent

assistant = ConversableAgent(
    name="assistant",
    llm_config={"config_list": [{"model": "gpt-4o-mini"}]},
)
user_proxy = ConversableAgent(name="user_proxy", human_input_mode="NEVER")

user_proxy.initiate_chat(assistant, message="RAGについて説明して")

利点

欠点

  • 対話パターンが柔軟な分、意図した挙動になるよう設計・調整する難易度が上がりやすい
  • エージェント数や対話のターン数が増えるほど、デバッグや挙動を把握しづらくなる
  • CrewAIのような役割ベースのフレームワークと比べ、構成の見通しがやや立てにくい

比較

  • マルチエージェントAutoGenは、対話ベースのマルチエージェントシステムを構築するための代表的なフレームワーク
  • CrewAICrewAIとAutoGenは、いずれも複数のAIエージェントを協調させるためのフレームワーク

関連用語

マルチエージェントCrewAIAIエージェントOpenAI Agents SDK

よくある質問

AutoGenはMicrosoftの製品専用?

いいえ。 オープンソースで公開されており、OpenAI・Azure OpenAI以外のLLMプロバイダとも組み合わせて利用できる。

AutoGenでコードを自動実行できる?

コード実行機能を持つエージェントを組み込むことで、生成したコードをその場で実行し、結果に応じて修正を繰り返すワークフローを構築できる。

参考文献

関連する比較

CrewAI vs AutoGen

CrewAIは役割(ロール)を与えた複数エージェントをチームとして協調させることに特化したPythonフレームワーク、AutoGenはMicrosoft Research発の、エージェント間の対話(カンバセーション)を通じてタスクを解決するフレームワーク。

CrewAIAutoGen

AutoGen vs OpenAI Agents SDK

AutoGenはMicrosoft Researchが開発する、複数のAIエージェントの対話を通じてタスクを解決するフレームワーク。OpenAI Agents SDKはOpenAIが提供する、エージェント間のハンドオフ機能を軸にした軽量なマルチエージェントフレームワーク。

AutoGenOpenAI Agents SDK

関連Zenn記事