MetaGPT 現在利用可能な最高のAIエージェントの完全ガイド
MetaGPT AIエージェントの完全ガイド
ChatGPTのような大規模言語モデル(LLM)を使用して、OpenAIは企業とユーザーの採用の急増を目撃しており、現在は月間約8000万ドルの収益を上げています。サンフランシスコを拠点とするこの企業は、最近のThe Informationのレポートによれば、年間売上高10億ドルに到達するペースであると報じられています。
前回はAutoGPTとGPT-Engineeringについて詳しく説明しましたが、これらは複雑なタスクを自動化するために設計された早期のオープンソースLLMベースのAIエージェントです。有望な技術ではありますが、これらのシステムにはいくつかの課題がありました。結果の一貫性の欠如、パフォーマンスのボトルネック、多面的な要求の処理の制限などです。これらのシステムはコード生成に長けていますが、その能力はそこで停止してしまいます。PRD生成、技術設計生成、APIインターフェースのプロトタイピングといった重要なプロジェクト管理機能が欠けています。
そこで登場するのがMetaGPTです。このシステムは、Sirui Hongによって開発された大規模言語モデルを活用したマルチエージェントシステムであり、標準化された作業手順(SOP)とLLMベースのマルチエージェントシステムを結びつけています。この新しいパラダイムは、複雑な現実世界のアプリケーションにおける効果的なコラボレーションとタスク分解の制限を乗り越えるものです。
MetaGPTの魅力はその構造にあります。メタプログラミングの技法を活用して、コードをリアルタイムに操作、分析、変換することができます。目的は、動的なプログラミングタスクに適応できるアジャイルで柔軟なソフトウェアアーキテクチャを実現することです。
- 「LangChainとOpenAIを使用して、自己モデレートされたコメントシステムを作成する」
- 「Azure OpenAIを使用して、会社独自の安全でプライベートなChatGPTを展開しましょう」
- 「AIモデルと化学者の洞察を組み合わせて、一度のステップで逆合成を予測する」
アジャイル開発
ここではSOPがメタ機能として機能し、定義された入力に基づいてエージェントを調整してコードを自動生成します。簡単に言えば、高度に調整されたソフトウェアエンジニアのチームを適応可能なインテリジェントソフトウェアシステムに変えたようなものです。
MetaGPTフレームワークの理解
MetaGPTフレームワーク(https://arxiv.org/pdf/2308.00352.pdf)
基盤とコラボレーションのレイヤー
MetaGPTのアーキテクチャは、基盤コンポーネントレイヤーとコラボレーションレイヤーの2つに分かれています。
- 基盤コンポーネントレイヤー:このレイヤーは個々のエージェントの操作に焦点を当て、システム全体の情報交換を容易にします。環境、メモリ、役割、アクション、ツールなどのコアビルディングブロックを導入します。環境は共有ワークスペースと通信経路を設定し、メモリは過去のデータアーカイブとして機能します。役割はドメイン固有の専門知識をカプセル化し、アクションはモジュラータスクを実行し、ツールは共通のサービスを提供します。このレイヤーはエージェントのオペレーティングシステムとして機能します。これらがどのように連携するかの詳細は、「Beyond ChatGPT; AI Agent: A New World of Workers」の記事で説明されています。
- コラボレーションレイヤー:基盤コンポーネントの上に構築されたこのレイヤーは、個々のエージェントの協力的な取り組みを管理し、効率的にします。2つのメカニズム、知識共有とワークフローのカプセル化を導入します。
- 知識共有:これはエージェント同士を結びつける協力の接着剤として機能します。エージェントは情報を格納、取得、共有できるため、冗長性を減らし、運用効率を向上させることができます。
- ワークフローのカプセル化:これは標準化された作業手順(SOP)が活躍する場所です。SOPはタスクを管理可能なコンポーネントに分解する設計図となります。エージェントにはこれらのサブタスクが割り当てられ、そのパフォーマンスは標準化された出力に合わせられます。
また、MetaGPTでは「役割の定義」を使用して、プロダクトマネージャーやアーキテクトなどのさまざまな専門エージェントを起動します。これらの役割は、名前、プロフィール、目標、制約、説明などの重要な属性で特徴付けられます。
https://arxiv.org/pdf/2308.00352.pdf
さらに、「アンカーエージェント」はこれらのエージェントに役割固有のガイダンスを提供します。たとえば、プロダクトマネージャーの役割は「効果的な成功製品の作成」という制約で初期化されるかもしれません。アンカーエージェントはエージェントの行動が全体的な目標と一致するようにし、パフォーマンスを最適化します。
MetaGPTエージェントの認知プロセス
MetaGPTは観察し、考え、反省し、行動することができます。彼らは_think()
、_observe()
、_publish_message()
などの特定の行動関数を介して操作します。この認知モデリングにより、エージェントは適応し進化することができる能動的な学習者となります。
- 観察:エージェントは環境をスキャンし、重要なデータをメモリに組み込みます。
- 考えて反省する:ロールはアクションを実行する前に
_think()
関数を通じて熟考します。 - メッセージのブロードキャスト:エージェントは現在のタスクの状態と関連するアクションの記録を共有するために
_publish_message()
を使用します。 - 知識の結晶化と行動:エージェントは受信したメッセージを評価し、次の行動方針を決定する前に内部のリポジトリを更新します。
- 状態管理:タスクのロックやステータスの更新などの機能により、ロールは実世界の人間の協力を模倣し、中断することなく複数のアクションを順次処理できます。
MetaGPTのコードレビューメカニズム
コードレビューはソフトウェア開発ライフサイクルにおいて重要な要素ですが、いくつかの人気フレームワークでは欠落しています。MetaGPTとAgentVerseの両方がコードレビューの機能をサポートしていますが、MetaGPTはさらに一歩進んでいます。事前コンパイル実行も組み込まれており、早期のエラー検出に役立ち、コードの品質を向上させます。コーディングの反復的な性質を考慮すると、この機能は単なる追加ではなく、成熟した開発フレームワークにとって必要不可欠です。
さまざまなタスクで実施された定量的な実験の結果、MetaGPTはほぼすべてのシナリオで他のモデルを上回りました。Pass@1は、フレームワークが単一のイテレーションで正確なコードを生成する能力を示す指標です。このメトリックは実践的な環境でのフレームワークの有用性をより現実的に反映しています。より高いPass@1率はデバッグの削減と効率の向上を意味し、開発サイクルとコストに直接影響を与えます。CodeX、CodeT、さらにはGPT-4などの他の高度なコード生成ツールと比較した場合、MetaGPTはそれらを凌駕しています。フレームワークはHumanEvalおよびMBPPベンチマークで81.7%から82.3%のPass@1率を達成する能力があります。
MetaGPTと他の主要なモデルとの間のMBPPとHumanEvalメトリックの比較(https://arxiv.org/pdf/2308.00352.pdf)
また、このフレームワークは少ないトークンと計算リソースを使用し、従来のソフトウェアエンジニアリングコストの一部で高い成功率を達成しています。データによると、MetaGPTを使用したプロジェクトの平均コストはわずか$1.09であり、同じタスクを開発者に依頼する場合の一部に過ぎません。
システムへのMetaGPTのローカルインストール手順
NPM、Pythonのインストール
- NPMの確認とインストール:まず、システムにNPMがインストールされていることを確認してください。インストールされていない場合は、node.jsをインストールする必要があります。NPMがインストールされているかどうかを確認するには、ターミナルで次のコマンドを実行します:
npm --version
。バージョン番号が表示されれば、問題ありません。 mermaid-js
をインストールするために、次のコマンドを実行します:sudo npm install -g @mermaid-js/mermaid-cli
またはnpm install -g @mermaid-js/mermaid-cli
- Pythonのバージョンを確認:Python 3.9以上を使用していることを確認してください。Pythonのバージョンを確認するには、ターミナルを開き、次のコマンドを入力します:
python --version
。最新バージョンをダウンロードするには、Python公式ウェブサイトを訪問してください。 - MetaGPTリポジトリのクローン:MetaGPTのGitHubリポジトリを
git clone https://github.com/geekan/metagpt
コマンドでクローンします。これにはGitがシステムにインストールされていることを確認してください。インストールされていない場合は、こちらをご覧ください。 - ディレクトリへの移動:クローンした後、
cd metagpt
コマンドを使用してMetaGPTディレクトリに移動します。 - インストール:Pythonのセットアップスクリプトを実行して、
python setup.py install
コマンドでMetaGPTをインストールします。 - アプリケーションの作成:
python startup.py "ENTER-PROMPT" --code_review True
を実行します。
注意:
- 新しいプロジェクトは、
workspace/
ディレクトリにあります。 --code_review True
を使用すると、GPTモデルが追加の操作を行い、コードが正確に実行されることを保証しますが、それには追加のコストがかかります。- インストール中にパーミッションエラーが発生した場合は、代わりに
python setup.py install --user
を実行してみてください。 - 特定のリリースへのアクセスや詳細については、公式のMetaGPT GitHubリリースページをご覧ください:MetaGPTリリース。
Dockerのインストール
コンテナ環境を好む方には、Dockerがプロセスを簡素化します:
- Dockerイメージの取得:MetaGPTの公式イメージをダウンロードし、設定ファイルを準備します:
docker pull metagpt/metagpt:v0.3.1``mkdir -p /opt/metagpt/{config,workspace}``docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml`` vim /opt/metagpt/config/key.yaml
- MetaGPTコンテナの実行:次のコマンドでコンテナを実行します:
docker run --rm --privileged \`` -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \`` -v /opt/metagpt/workspace:/app/metagpt/workspace \`` metagpt/metagpt:v0.3.1 \`` python startup.py "シンプルでインタラクティブなCLIベースのじゃんけんゲームの作成" --code_review True
OpenAI APIキーを使用してMetaGPTを設定する
初期設定の後、MetaGPTをOpenAI APIキーと統合する必要があります。以下はその手順です:
- OpenAIキーの場所を特定または生成する:このキーは、OpenAIダッシュボードのAPI設定の下で見つけることができます。
- APIキーの設定:APIキーを
config/key.yaml
、config/config.yaml
のいずれかに配置するか、環境変数(env
)として設定することができます。優先順位はconfig/key.yaml > config/config.yaml > env
です。 - キーを設定するには、
config/key.yaml
に移動し、プレースホルダーテキストをOpenAIキーで置き換えてください:OPENAI_API_KEY: "sk-..."
OpenAI APIキーを保護してください。公開リポジトリにコミットしたり、無許可の個人と共有したりしないでください。
ユースケースの例
私はCLIベースのじゃんけんゲームを開発するように目標を与え、MetaGPTはタスクを正常に実行しました。
以下は、生成されたゲームコードの実行を実際に示すビデオです。
MetaGPTデモ実行
MetaGPTはMarkdown形式のシステム設計文書を提供しました。これは、軽量なマークアップ言語であるMarkdownであり、UMLダイアグラムで埋め込まれているため、アーキテクチャの設計図の詳細なビューを提供します。さらに、APIの仕様はHTTPメソッド、エンドポイント、リクエスト/レスポンスオブジェクト、ステータスコードで詳細に説明されています。
MetaGPTの出力 – システム設計Markdown
クラス図は、Game
クラスの属性とメソッドを詳細に説明し、わかりやすい抽象化を提供しています。さらに、プログラムの呼び出しフローを視覚化し、抽象的なアイデアを具体的なステップに変換しています。
これにより、計画における手動のオーバーヘッドが大幅に削減されるだけでなく、意思決定プロセスが加速され、開発パイプラインが俊敏に保たれることが保証されます。MetaGPTを使用することで、コード生成だけでなく、知的なプロジェクト計画の自動化が行われ、迅速なアプリケーション開発において競争力のある優位性を提供します。
結論:MetaGPT-ソフトウェア開発の革命
MetaGPTは、生成型AIとソフトウェア開発の領域を再定義し、知能的な自動化とアジャイルなプロジェクト管理のシームレスな融合を提供します。ChatGPT、AutoGPT、および従来のLangChainモデルをはるかに凌ぐ能力を持ち、タスクの分解、効率的なコード生成、およびプロジェクト計画において優れた性能を発揮します。詳細についてはこちらをご覧ください。
この記事の主なポイントは以下の通りです:
- メタプログラミングの力:メタプログラミングを用いることで、MetaGPTはアジャイルで適応型のソフトウェアフレームワークを提供します。従来のツールの狭い機能性を超越し、コーディングだけでなくプロジェクト管理や意思決定の側面も扱う革新的なアプローチを導入します。
- 2層構造:基盤と協業レイヤーを持つMetaGPTは、エキスパートによって管理されたソフトウェアチームと同様に、エージェントが協調して作業できる相乗効果のあるエコシステムを効果的に作り出します。
- 最適化されたコードレビュー:コードの生成だけでなく、MetaGPTは事前コンパイル実行機能を提供し、エラーの早期警告システムとなります。これにより、デバッグにかかる時間を短縮するだけでなく、コードの品質も保証します。
- 認知エージェント:_observe()、_think()、_publish_message()などの認知機能を備えたMetaGPTの知能エージェントは進化し適応し、あなたのソフトウェアソリューションが単にコーディングされるだけでなく「知的」であることを保証します。
- インストールと展開:MetaGPTは、npmとPythonを使ったローカルインストールやDockerを使ったコンテナ化など、簡単に設定できることを示しました。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles