MetaGPT とは

執筆者

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

AI Developer Advocate Lead

MetaGPT とは

MetaGPTは、人間の手続き型知識と大規模言語モデル(LLM)を搭載したAIエージェントの使用を調整し、オープンソースのフレームワークを使用して、さまざまなソフトウェア・ソリューションを開発するためのオープンソースのマルチエージェント・フレームワークです。AI ソフトウェア企業として活動する MetaGPT は、従来のソフトウェア企業と同様の役割を果たす特殊なAIエージェントを備えています。

MetaGPTは、Chenglin Due氏が設立したDeepWisdomの独自テクノロジーです。このフレームワークはGitHubで急速に人気を博し、マルチエージェント・システム(MAS)を使用した自然言語プログラミングの進歩を推進するというMetaGPTの根本的な目標に関心が集まりました。

人気のある研究論文「MetaGPT: Metaprogramming for A Multi-Agent Collaborative Framework」では、このフレームワークによるエージェント・コラボレーションのオーケストレーションについて説明しています。LLMオーケストレーションとAIエージェントに関する研究が次に進む中、MetaGPTは、よく知られたワークフローを使用してマルチエージェント・コラボレーションへのApproachを提供する初期コントリビューターです。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

マルチエージェント・コラボレーションとは

マルチエージェント・システム(MAS)内で動作するエージェントは自律性を保ちながら、エージェント構造、つまりMetaGPTなどのフレームワーク内で協調して協力し合います。1 MASは、個々のエージェントが環境内で動作および対話し、複雑なタスクを完了して共通の目標を達成できるように調整します。このアイデアは集合知の一部であり、 AGIと関連付けられることもある人気の概念です。

マルチエージェント・システムは、単一のエージェントの能力を超えた課題に取り組むために連携する問題解決エージェントのネットワークで構成されます。2 効果的なMASを設計する際の重要な課題の1つは、共通の目的に向けてエージェントを調整することです。コラボレーションの成功は、各エージェントが個々のタスクを解決する能力と、相互に効果的に対話する能力にかかっています。3

MAS環境を計画する際の考慮事項は次のとおりです。

  • 他のエージェントのアクティビティーがエージェントの意思決定に及ぼす制限
  • エージェントが利用可能なアクションに関して他の人に対するコミットメントから生じる制約
  • 外部のモデル化されていないエージェントによって引き起こされる、世界の予測不可能な進化4

この設計上の課題に対する1つのアプローチが、チームワークを明示的にモデル化することによるエージェント・コラボレーションのオーケストレーションです。このマルチコラボレーション設計パターンは、複雑なプロンプトを分解し、抽象化されたタスクをエージェントに委任し、エージェントは専門的な役割に基づいてタスクを実行します。5

MetaGPTのマルチエージェント・コラボレーション・フレームワークでは、AIエージェントのチームが、明確な役割と指示を定義した標準運用手順(SOP)に導かれた構造化されたワークフローに従って動作します。通信プロトコルと合理化されたワークフローをLLM駆動型のマルチエージェント・システム内に統合することで、ユーザーは単一の入力行でアプリケーションを作成できます。

AIエージェント

AIエージェントの5つのタイプ:自律機能と実世界アプリケーション

目標主導型でユーティリティーベースのAIがワークフローや複雑な環境にどのように適応するかをご覧ください。

MetaGPTの仕組み

MetaGPTは、複雑なタスクを解決できるマルチエージェントのコラボレーション・フレームワークとして機能します。マルチエージェント・コラボレーション・フレームワークは、標準の運用手順とアセンブリー・ライン・パラダイムに基づいて対話し、タスクを分割する専門エージェントを使用して、ソフトウェア企業全体をシミュレートすることによって機能します。各エージェントは、ソフトウェア会社内での機能に応じて専門的な役割を果たします。たとえば、このフレームワークには、ソフトウェア会社のプロセス全体を提供する製品マネージャー、アーキテクト、プロジェクトマネージャー、エンジニアとして機能するエージェントが含まれます。

これらのさまざまな役割を持つエージェントは、仮想ワークスペース内で動作し、さまざまなソフトウェア・ソリューションからのインプットとアウトプットとして1行の要件を受け取ります。このインプットには、データ構造、アプリケーション・プログラミング・インターフェース(API)、競合分析、文書が含まれます。エージェントは、アセンブリー・ラインのパラダイムによって設定された要件に基づいて、構造化されたアウトプットを通じて通信します。各エージェントは、ユーザー・プロンプトに基づいてソフトウェア・アプリケーションを作成するという全体的な目標を完了するために、次のエージェントに必要な情報を生成します。この段階的な開発プロセスは、MetaGPTが人間のワークフローを統合して複雑なタスクの調整を合理化する方法によるものです。

マルチエージェント・コラボレーションののための人間による手続き型知識

標準作業手順書(SOP)は、タスクの分解と効果的な調整をサポートする上で非常に重要なな役割を果たすため、さまざまな領域で採用されています6ソフトウェア開発では、SOPはプロジェクトのタスクをより小さな実用的な手順に分解し、それを特定の専門役割に割り当てることで、チーム間のコラボレーションを促進します。MetaGPTは、SOPをプロンプト・シーケンスにエンコードして、マルチエージェントのワークフローを整理して促進します。SOPのワークフローは、構造と改良の機会を取り入れます。

例えば、プロジェクト・マネージャー役のエージェントは、プロンプトによって製品要件文書(PRD)を作成するよう求められます。プロダクト・マネージャー役のエージェントは一度プロンプトを受け、その後、プロジェクトの段階的な進行により、PRDの特定の要素を調整するように求められます。たとえば、エージェントは PRD 内に「製品目標」のセクションを作成するように指示されます。その後、元の製品目標を更新して、現在のプロジェクトの方向性と一致するように、それらの目標を絞り込むように再度プロンプトされます。7 

この改善方法は、全てのエージェントがグローバルなタスクを認識して一貫性を保つために採用されています。以下の例では、プロダクト・マネージャー役のエージェントが要件分析を生成するよう求められます。

この最初のプロンプトの後、エージェントは、継続的なコラボレーションからの新機能や強化を考慮した、高度な分析を生成するように求められます。要件分析プロンプト指示: 「要件の詳細な分析を提供する」8

分析の精緻化プロンプト: 「段階的な開発に伴うプロジェクトのニーズの変化に合わせて、既存の要件分析を見直し、文字列リストに精緻化してください。精緻化されたプロジェクトスコープに必要な主要な機能と機能強化が分析に包括的に含まれていることを確認してください。」 9

この例では、製品マネージャー・エージェントからアーキテクト・エージェントに渡される、標準化されたアウトプットとして生成されたPRDを示します。生成されたそれぞれの出力の SOP ベースのプロンプトがその横にリストされます。プロンプトが、要件定義、タスク完了方法、完了手順など、同様にSOPワークフローに基づいていることに注意してください。

ユーザー・プロンプト :「資産管理者が顧客レビューに使用できるReactベースのアプリベースのWebアプリケーションを構築してほしい」のポートフォリオを統合し、そのポートフォリオが使用できる適切な資金を推奨します。このアプリケーションは、アメリカ、英国、スペインで動作する必要があります。」
当初の要件
プロンプト指示: 「元のユーザーの要件をここに記入してください。」 10

「資産管理担当者が顧客のポートフォリオを確認し、使用すべき適切な資金を推奨するために使用できる、ReactベースのアプリベースのWebアプリケーションを構築してください。このアプリケーションは、アメリカ、英国、スペインで動作する必要があります。」

製品目標 
プロンプト: 「明確で直交する製品目標を最大3つ提供してください。」 11

  1. 資産管理者向けの安全で信頼性の高いWebアプリケーションを開発します。
  2. 英語、スペイン語、地域バリエーションの多言語サポートを確保します。
  3. ポートフォリオの管理と推奨のための直感的でユーザーフレンドリーなインターフェースを作成します。

ユーザーストーリー
プロンプト: 「シナリオベースのユーザーストーリーを3~5個まで提供してください。」 12

  1. 資産運用マネージャーとして、顧客のポートフォリオをレビューし、個別のアドバイスを提供したいと考えています。
  2. ウェルス・マネージャーとして、投資目標とリスク許容度に基づいて顧客にファンドを推奨したいと考えています。
  3. ウェルス・マネージャーとして、場所に応じて英語またはスペイン語でアプリケーションにアクセスしたいと考えています。

競合分析
プロンプト指示: 「競合製品を5~7個提供してください。」 13

  1. 「Wealthfront:クリーンなインターフェイスを備えた自動投資サービスですが、パーソナライズされたファンドの推奨事項がありません。」
  2. 「個人資本:包括的な資産管理ツールを提供していますが、新規ユーザーにとっては圧倒される可能性があります。」
  3. 「改善: 資産管理者向けの制限カスタマイズによる自動投資に重点を置いています。」

要件分析
プロンプト指示:「要件の詳細な分析を提供してください。」14

アプリケーションはReactを使用して構築され、スケーラブルで保守しやすいことを保証する必要があります。アメリカ、英国、スペインのユーザーに応える多言語インターフェイスが必要です。アプリケーションは、機密性の高い金融データを保護し、地域の規制に準拠するために安全でなければなりません。また、さまざまな財務データ・ソースと統合して、リアルタイムのポートフォリオ分析と資金の推奨事項を提供する必要があります。

要件プール
プロンプト指示: 「上位5~7個の要件を優先度(P0、P1、P2)とともにリストアップしてください。」「レガシー コンテンツと増分コンテンツの両方をカバーしてください。増分開発に関係のないコンテンツは保持してください。」 15

  • (「安全なユーザー認証とデータ暗号化で顧客情報を保護」、「P0」),
  • (「地域ごとに異なりますが、英語とスペイン語の多言語サポートです」「P0」),
  • (「ポートフォリオ管理のための財務データソースとのリアルタイム統合」)、「P0」),
  • (「顧客のポートフォリオをレビューおよび管理するためのユーザーフレンドリーなダッシュボード」、「P1」)
  • (「顧客プロファイルに基づいて適切な資金を提案する推奨エンジン」)、「P2」)

UIデザイン案
プロンプト指示: 「UI要素、機能、スタイル、レイアウトについて簡単に説明してください。」 16

UIは、クライアントのポートフォリオの概要を提供するダッシュボードを備えた、クリーンでモダンなデザインを備えています。ポートフォリオ分析のためのインタラクティブなチャート、ファンド選択のための推奨セクション、英語とスペイン語の簡単な切り替えが含まれます。

不明な点
プロンプト指示: 「プロジェクトの不明な点について言及し、明確にするようにしてください。」 17

不明な点はありません。

上記の例は、設計のためにアーキテクト・エージェントに引き渡しています。以下は、PRDとともに与えられたSOPベースのプロンプトです。

「これが製品要件文書(PRD)です。このPRDレビューに基づいて、このAPI設計がPRDの要件を満たしているかどうか、および適正設計慣行に準拠しているかどうか。」18

アーキテクトは、独自のSOPワークフローに従って、アプリケーションのシステムを設計します。

SOPは、各エージェントの役割の責任を概説し、中間アウトプットの基準を確立します。これらのSOPは、エージェントの動作に影響を与えるようにエンコードされます。これにより、エージェントは高品質の要件文書、設計成果物、フローチャート、インターフェース仕様などをアウトプットを生成できるようになります。エージェント間のすべての引き継ぎは、LLM間のアイドル状態のチャットボットによって引き起こされるハルシネーション(幻覚)のリスクを軽減する、特定の標準に準拠する必要があります。構造化されたアウトプットを使用すると、ターゲット コード生成の成功率が大幅に向上します。19

MetaGPTがSOPを使用してエージェントをプロンプトする方法

MetaGPT内のすべてのエージェントは、厳格で合理化されたワークフローに従うべき従業員として振る舞います。SOPには、エージェントの動作を定義する2つの主要な部分があります。それは、ロールの特殊化とエージェント間のワークフローです。

エージェントの役割分担:MetaGPTは、ソフトウェア企業内でのプロダクトマネージャー、アーキテクト、プロジェクトマネージャー、エンジニア、およびQAエンジニアの5つの役割を定義しています。各エージェントのプロファイルは、エージェント名、プロファイル、目標、各ロールの制約、および各ロールの特定のコンテキストとスキルなどの特定の情報で初期化されます。20 各エージェントは、環境内で活動するデジタルな有機組織に似ています。21 事前定義されたロールの概念は、ユーザーがより汎用的なユースケースのためにクルー内のエージェントの機能を定義できるcrewAIなどのマルチエージェント・フレームワークとは異なります。

エージェント間のワークフロー:エージェントの役割と運用スキルを定義することで、ソフトウェア開発プロセス内でエージェントが従うべき基本的なワークフローが確立されます。エージェントは、順番または構築ラインのパラダイム内で動作し、複雑なタスクを細分化してチームの効率を高めます。

MetaGPTでのエージェントのインタラクションの方法

MetaGPTは、有意義なコラボレーションには、効果的で一貫性のある正確な問題解決プロセスが必要であると主張しています。AIエージェントは複雑なシステムです。ただし、そのプロセスは、少なくともMetaGPTとその単純な人間ワークフローの継承に従っていない必要はありません。

通信プロトコル

エージェントは、通信プロトコルと呼ばれる構造化された通信インターフェイス内で対話します。MetaGPTは、通信インターフェースとして制約のない自然言語を使用せず、代わりにエージェント間のやり取りを確立するために構造化通信の使用を提案しているため、ほとんどのLLMベースのマルチエージェント・フレームワークとは異なります。たとえば、別のマルチエージェント・コラボレーション・フレームワークであるChatDevでは、エージェントは対話を通じて通信しますが、MetaGPTのエージェントは文書や図などのアウトプットを通じて通信します。

この通信プロトコルを容易にするために、MetaGPTは各エージェントのスキーマとフォーマットを確立し、それぞれの異なるロールが特定の目標とコンテキストに基づいて必要なアウトプットを提供するように要求します。22 この例では、アーキテクト・エージェントは、システム・インターフェース設計とシーケンス・フロー図の2つのアウトプットを生成します。どちらの出力にも、エンジニアエージェントにとって最も重要な成果物として機能するシステムモジュールの設計と対話シーケンスが含まれています。23

パブリッシュとサブスクライブのメカニズム

通信効率を高めるために、MetaGPTはグローバル・メッセージ・プールを使用して、エージェントが直接メッセージを交換できるようにする情報を保管します。エージェントは構造化メッセージをプール内で公開し、他のエージェントからのメッセージに透過的にアクセスできます。このアプローチにより、エージェントは共有プールから必要な情報に直接アクセスできるため、他のエージェントに尋ねて応答を待つ必要がなくなります。24

MetaGPTの開発プロセス

開発プロセスは、ユーザーのインプットコマンドから始まり、ユーザーの仕様に従って設計されたソフトウェアで終わります。たとえば、ユーザー入力に「画像を描画できるように Python GUI アプリケーションを作成する」などがあります。ユーザー・プロンプトは、製品マネージャー、アーキテクト、プロジェクト・マネージャー、エンジニア、QAエンジニアなどのロールプレイング・エージェントのチームであるソフトウェア会社に渡されます。

特定のソフトウェア・アプリケーションを構築するというユーザー・プロンプトを受け取った後、プロダクト・マネージャーは、目標、ユーザー・ストーリー、競合分析、要件分析、要件プールを含むPRDを生成します。さらに、製品マネージャー・エージェントは、アプリケーションの仕様に基づいて競合他社チャートも生成します。これらの文書とチャートは、システム設計のアーキテクト・エージェントに渡されます。

アーキテクト・エージェントは、PRDの要件に基づいて技術仕様を考案します。仕様には、プロジェクトの全体的な技術的軌道のシステム・アーキテクチャー図とインターフェース定義が含まれます。ファイル、クラス、シーケンス・フロー・チャートを含むプロジェクトのアーキテクチャーは、アーキテクト・エージェントの技術的な定義に基づいて設計されています。その後、アーキテクトが生成したドキュメンテーションは、タスクの割り当てと実行のためにプロジェクト・マネージャーに渡されます。

プロジェクト・マネージャーは、プロジェクトをタスク・リストに分類します。各コード・ファイルは、意図した機能に基づいて分析され、エンジニアに割り当てられた個別のタスクとして処理されます。

エンジニア・エージェントは、開発タスクを完了するための基本的な開発スキルを使用して必要なコードを生成します。エンジニア・エージェントからアウトプットを受け取ると、QAエンジニア・エージェントは単体テスト・コードを生成し、それをレビューしてバグを特定して修正プログラムします。

MetaGPTでのLLM統合

MetaGPTのエージェントは、OpenAIのGPT(生成事前トレーニング済みトランスフォーマー)モデル、GPT-3.5およびGPT-4に基づいています。ただし、MetaGPTとそのオープンソース・コミュニティは、LLM API設定を通じて初期化できる他のいくつかのモデルの追加に貢献しました。MetaGPTは、GitHubドキュメントサイトでオープンソースLLMと統合する方法の探索を容易にするチュートリアルを提供しています。LLMを統合するための最初のステップは、LLaMA-Factory、FastChat、Ollamaなどの推論リポジトリー(repo)を設定することです。このリポジトリーでは、認証情報を通じて構成された対応するLLMモデルのデプロイメントが可能になります。Ollamaを除き、すべてのサポートされている推論リソースは、OpenAIとの互換性のあるインターフェースの公開をサポートしています。MetaGPTは将来的にOllamaインターフェイスをサポートすることを目指しています。

AIエージェントはメタプログラミングに秀でているのか

メタプログラミング・フレームワークは、プログラム自体だけでなく他のプログラムを作成、操作、分析できるプログラムを作成する機能を提供します。MetaGPTは、エージェントベースの技術を用いて生成AIを強化するために人間のワークフローを組み込み、メタ・プログラミングを強化することでこの目的を達成しています。

LLMベースのエージェントには、高度な自動プログラミングタスクを実現するいくつかのコア機能が搭載されています。25これらの進歩の中には、ReActとReflexionがあります。これらは、エージェントがLLMを使用して推論の軌跡と行動計画を生成するために思考の連鎖プロンプトを使用する推論パラダイムです。26

ReActエージェント設計ループは、エージェントが推論、行動、観察できるようにする反復設計ループにより、自動プログラミングの効果的なプロセスを示しています。27 リフレクションは言語フィードバックを通じて言語エージェントを強化し、同様の反復的な設計ループに従って、より良い意思決定を促します。28どちらのパラダイム設計も、エージェントがワークフローを継続的に学習し、改善することができます。

OpenAIの GPT-3モデル、MetaのLlamaモデル、IBM Graniteモデルなどの従来のLLMでは、知識と推論に制限があります。こうした従来のLLMは、古い情報が含まれることが多いトレーニング・データに基づいて回答を生成しています。対照的に、エージェント・テクノロジーはバックエンドのツール呼び出しを活用して現在の情報にアクセスし、ワークフローを合理化し、複雑な目標を達成するための特定のタスクを自律的に作成します。このプロセス中に、自律型エージェントは時間の経過とともにユーザーの期待に適応することを学習し、カスタマイズされたエクスペリエンスとより的確な応答を提供します。このツール呼び出しは人間の介入なしで行うことができるため、AIアプリケーションの現実世界への利用が拡大します。

MetaGPTはメタプログラミングエージェントをどのように使用しているか

MetaGPTのエンジニア・エージェントは、実行可能なフィードバックを用いてイテレーティブなプログラミングに参加します。デバッグと最適化のプロセスは、日常的なプログラミングのタスクにおいて重要なものです。他の実装にはエージェント自己修正メカニズムがないため、コードのハルシネーションやコードの機能不全などの望ましくない結果が発生します。これらのリスクを軽減するために、MetaGPTは実行可能なフィードバック・メカニズムを導入し、反復ごとにコードを改善します。

エンジニア・エージェントは、元の製品要件と設計に基づいてコードを作成します。これにより、エージェントは独自の履歴実行とメモリのデバッグを使用してコードを継続的に改善できます。エンジニアは、対応する単体テスト・ケースを作成して実行することで、コードを改善するためのより多くの情報を取得します。成果を受け取ったエンジニアは、追加の開発タスクを進めるか、プログラミングを再開する前にコードをデバッグします。この反復プロセスは、テストに合格するか、最大 3 回の再試行に達するまで次に進む29

その他のマルチエージェント・フレームワーク

crewAI– crewAIは、オープンソースのpythonベースのマルチエージェントフレームワークで、「クルー」として協力し合ってタスクを完了するロールプレイング式の自律エージェントを活用しています。ユーザーは、アプリケーションのニーズや用途に合わせてエージェントを構築およびカスタマイズできます。ユースケースには、コンテンツの企画・作成、データ分析、タスクのオートメーションといった汎用的な用途が含まれます。CrewAIはIBMのwatsonx.aiとの統合機能のほか、複数のLLM統合やOllamaとの互換性を備えています。30

ChatDev – ChatDev は、さまざまな組織的役割を担うさまざまなインテリジェント エージェントを通じて運営される仮想ソフトウェア会社をシミュレートするオープン ソースのマルチエージェント フレームワークです。エージェントは対話を通じて協力し、実行可能なコードとドキュメンテーションを含むソフトウェア製品を作成します。ChatDev は、OpenAI の GPT-3.5-turbo および GPT-4 モデルをサポートし、インテリジェント エージェントを強化します。31

AutoGPT – AutoGPT は、自然言語処理 (NLP) を適用してユーザーの目標と複雑なタスク分解を理解するオープンソースのマルチエージェント フレームワークです。エージェントは、自動化されたワークフローで協力し、各タスクを一連の小さなサブタスクに分解することで、高レベルのユーザー・プロンプトを処理します。ユースケースには、市場の調査と分析、製品開発、仮想アシスタンスなどの一般化されたソリューションが含まれます。このフレームワークは、OpenAIのGPT-4をベースにしたAIエージェントで構築されています。32

関連ソリューション
IBMのAIエージェント開発

開発者が、IBM watsonx.aiを使用してAIエージェントの構築、デプロイ、および監視を行えるようにします。

 

watsonx.aiの詳細はこちら
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

事前構築済みのアプリケーションとスキルをカスタマイズする場合でも、AIスタジオを使用してカスタム・エージェント・サービスを構築し、デプロイする場合でも、IBM watsonxプラットフォームが対応します。

watsonx Orchestrateの詳細はこちら watsonx.aiの詳細はこちら