AG2

AG2

AG2AI (originally AutoGen from Microsoft Research) · コーディング

AG2はオープンソースのPythonエージェントフレームワークだ。AIエージェントを遠隔とローカルのMCPサーバーにつなぎ、そのツールを再利用できるツールキットにまとめ、エージェント自身をMCPサーバーとして提供することもできる。

AG2 の画面プレビュー

AG2 について

What Is AG2

AG2はもともとAutoGenという名前で、マイクロソフトリサーチが2023年に公開したマルチエージェントフレームワークだった。その後プロジェクトはコミュニティへ移り、AG2と改名したが、狙いは変わっていない。複数のAIエージェントが対話し、ツールを呼び出し、作業を分担しながらタスクを終える仕組みを作るためのものだ。このページが扱うのは、その中のMCPエンジン、つまりModel Context Protocolを話す部分である。

MCPはAnthropicが2024年末に示したオープンな規格で、言語モデルを外部のツールやデータにつなぐために作られた。これが解決するのは一つの具体的な問題だ。登場以前は、ツールごとにモデルごとの専用アダプターが必要だった。AG2はMCPを後付けの飾りではなく基本構成として扱う。エージェントはHTTP経由で遠隔MCPサーバーのツールを読み込み、ローカルサーバーを標準入出力の子プロセスとして起動し、あるいはサーバーのURLをMCPをネイティブに扱えるプロバイダーへそのまま渡せる。

いちばんの制約は対象範囲にある。AG2は開発者向けのPythonライブラリであって、クリックだけで使える製品ではない。pipで導入し、コードを書き、鍵とサーバーは自分で管理する。コードを書かずに使いたい人は別の手段を探すことになるし、Pythonが古いWindows環境ではつまずくこともある。パッケージが3.10以上を要求するためだ。

Getting Started

  1. pip install ag2[openai,mcp] でフレームワークとMCP拡張を導入する。openai の部分は anthropic、gemini、ollama などに置き換えられる。
  2. export OPENAI_API_KEY="..." のようにプロバイダーの鍵を設定する。鍵は環境変数から読むので、プロジェクトに直書きする必要はない。
  3. エージェントをMCPサーバーに向ける。遠隔サーバーならURLを MCPToolkit に渡し、ローカルサーバーなら MCPStdioServerConfig で子プロセスとして動かす。
  4. allowed_tools、blocked_tools、server_label でツールを絞り、エージェントが必要なものだけを見るようにする。
  5. 逆向きにしたい場合は ag2 serve my_agent.py --protocol mcp で、書き上げたエージェントをそのままMCPサーバーとして公開する。

AIツール情報

AG2の料金、対応プラットフォーム、性能を簡単に確認できます。

無料プランはい
有料プラン$0 (open source)
プラットフォームPython (Windows, macOS, Linux)
開発元AG2AI (originally AutoGen from Microsoft Research)
カテゴリコーディング
リリース日Nov 2024
最終更新Oct 2026
サイト訪問数N/A
サイト世界ランキングN/A
API提供状況はい

こんな人におすすめ

このツールが最も力を発揮するユーザー、タスク、シーン。

ユーザー

  • エージェントシステムを作るPython開発者
  • すでにMCPサーバーを運用しているチーム
  • エージェント同士の協調を研究する人

タスク

  • エージェントを外部ツールにつなぐ
  • エージェントをツールとして公開する
  • 既存のインターフェースをMCPツールに変える

シーン

  • 一つの流れで複数のデータ源が要る場合
  • 認証情報を自社環境に留めたい場合
  • リサーチアシスタントを試作する場合

主な機能

クライアント側接続のためのMCPツールキット

MCPToolkit クラスは必要になった時点でサーバーのツールを探し出し、それぞれを普通の関数としてエージェントに渡す。遠隔のURLと MCPServerConfig の組み合わせも、ローカル子プロセスと MCPStdioServerConfig の組み合わせも受け付け、どちらを選んだかはエージェントの他の部分には関係ない。実行が手元に残るため、どのプロバイダーでも動き、認証情報も自社環境の中に収まる。

プロバイダー側のMCP受け渡し

接続そのものをモデルのプロバイダーに任せたいなら、MCPServerTool がサーバーのURLと認証情報を渡し、プロバイダーが向こう側でツールを実行する。この経路はAnthropicのようにMCPの受け渡しに対応したプロバイダーでしか使えず、認証情報が自社ネットワークを出る点も押さえておきたい。接続のライフサイクルを自分で管理したくない人向けの選択肢だ。

複数サーバーの動的なセッション管理

MCPClientSessionManager は、流れの間ずっと接続を保つのではなく、必要になった時にセッションを開く。ツール関数の中で、エージェントは問い合わせに応じて別のサーバーに接続し、ローカルの標準入出力サーバーと遠隔のHTTPサーバーを混ぜて使い、各セッションは閉じる時に自分で片付く。リサーチアシスタントや、作業の途中で参照先を切り替えるルーティングシステムに向く。

エージェントをMCPサーバーとして提供

ag2 serve コマンドは、三つのプロトコルのいずれかで仕上げたエージェントを公開する。--protocol mcp を付けると、エージェントは chat と list_agents のツールを提供するMCPサーバーになり、MCPを扱えるクライアントなら何でも使える。同じコマンドでREST APIやA2Aエンドポイントも出せる。複数の種類の呼び出し元からエージェントに届く必要がある場合に効いてくる。

どんなインターフェースもMCPツールに変える

ag2 proxy は、すでに持っているものをエージェントのツールに変える。CLIコマンドに向ければヘルプ出力を読み取って型付きのラッパーを作り、OpenAPI仕様に向ければエンドポイントごとに一つツールを生成し、Pythonモジュールに向ければ型付きの関数ラッパーを作る。--serve-mcp を足すとファイル生成を飛ばし、包んだツールをそのまま稼働中のMCPサーバーとして起動する。

AutoGenの系譜を受け継ぐ

AG2はAutoGenを広めたマルチエージェントの型を保っている。対話するエージェント、グループチャット、swarm、入れ子のフローだ。その上に非同期の中核、持続するコンテキスト、そしてMCPとA2Aプロトコルの両方に対応する層を足した。研究で検証されたオーケストレーションの型と、エージェントを外の世界につなぐ相互運用の層を同時に手に入れられる。

メリットとデメリット

メリット

  • Apache 2.0のオープンソースで、中核フレームワークにライセンス費用はなく、特定ベンダーに縛られない。
  • プロバイダーに依存しない。クライアント側のツールキットが呼び出しをローカルで実行するので、OpenAI、Anthropic、Google、オープンモデルのいずれでも同じように動く。
  • 一つのコードでMCPの両方向を押さえる。サーバーへの接続と、エージェントをサーバーとしての提供だ。
  • セッションは必要になった時に開くので、長い流れでも無駄な接続を抱え込まない。
  • notebookとクイックスタートが用意され、理論を知りたい人はAutoGen論文までたどれる。

デメリット

  • Pythonライブラリであってホスティングされたアプリではない。開発者がいないチームはそのままでは使えず、自前でインターフェースを用意する必要がある。
  • Python 3.10以上が要るため、古い環境では使えない。古いWindows環境ではつまずくこともある。
  • プロバイダー側のMCP受け渡しは、それに対応したプロバイダーでしか動かない。どのモデルでも使えるわけではない。
  • 複数のサーバーと鍵をつなぐのは自分の担当で、本番のエージェントを見張るダッシュボードも標準では付かない。

よくある質問

AG2は、互いに連携し外部ツールを使うAIエージェントを作るためのPythonフレームワークだ。そのMCPエンジンを使うと、エージェントはMCPサーバーに接続し、ツールを再利用できるツールキットにまとめ、仕上げたエージェントをMCPサーバーとして公開して他のクライアントに呼ばせることができる。