MetaGPT: マルチエージェントフレームワーク
GPT にさまざまな役割を割り当てることで、複雑なタスクのための共同ソフトウェアエンティティを形成します。
- MetaGPT は、1 行の要件 を入力とし、ユーザーストーリー / 競合分析 / 要件 / データ構造 / API / 文書など を出力します。
- MetaGPT には、プロダクト マネージャー、アーキテクト、プロジェクト マネージャー、エンジニア が含まれています。MetaGPT は、ソフトウェア会社のプロセス全体を、慎重に調整された SOP とともに提供します。
Code = SOP(Team)
が基本理念です。私たちは SOP を具体化し、LLM で構成されるチームに適用します。
ソフトウェア会社のマルチロール図式(順次導入)
例(GPT-4 で完全生成)
例えば、python startup.py "Toutiao のような RecSys をデザインする"
と入力すると、多くの出力が得られます
解析と設計を含む 1 つの例を生成するのに、**$0.2** (GPT-4 の api のコスト)程度、完全なプロジェクトには $2.0 程度が必要です。
インストール
伝統的なインストール
# ステップ 1: NPM がシステムにインストールされていることを確認してください。次に mermaid-js をインストールします。
npm --version
sudo npm install -g @mermaid-js/mermaid-cli
# ステップ 2: Python 3.9+ がシステムにインストールされていることを確認してください。これを確認するには:
python --version
# ステップ 3: リポジトリをローカルマシンにクローンし、インストールする。
git clone https://github.com/geekan/metagpt
cd metagpt
python setup.py install
注:
すでに Chrome、Chromium、MS Edge がインストールされている場合は、環境変数
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
をtrue
に設定することで、 Chromium のダウンロードをスキップすることができます。このツールをグローバルにインストールする問題を抱えている人もいます。ローカルにインストールするのが代替の解決策です、
npm install @mermaid-js/mermaid-cli
config.yml に mmdc のコンフィギュレーションを記述するのを忘れないこと
PUPPETEER_CONFIG: "./config/puppeteer-config.json" MMDC: "./node_modules/.bin/mmdc"
Docker によるインストール
# ステップ 1: metagpt 公式イメージをダウンロードし、config.yaml を準備する
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 # 設定を変更する
# ステップ 2: コンテナで 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 "Write a cli snake game"
# コンテナを起動し、その中でコマンドを実行することもできます
docker run --name metagpt -d \
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"
コマンド docker run ...
は以下のことを行います:
- 特権モードで実行し、ブラウザの実行権限を得る
- ホストディレクトリ
/opt/metagpt/config
をコンテナディレクトリ/app/metagpt/config
にマップする - ホストディレクトリ
/opt/metagpt/workspace
をコンテナディレクトリ/app/metagpt/workspace
にマップする - デモコマンド
python startup.py "Write a cli snake game"
を実行する
自分でイメージをビルドする
# また、自分で metagpt イメージを構築することもできます。
git clone https://github.com/geekan/MetaGPT.git
cd MetaGPT && docker build -t metagpt:custom .
設定
OPENAI_API_KEY
をconfig/key.yaml / config/config.yaml / env
のいずれかで設定します。- 優先順位は:
config/key.yaml > config/config.yaml > env
の順です。
# 設定ファイルをコピーし、必要な修正を加える。
cp config/config.yaml config/key.yaml
変数名 | config/key.yaml | env |
---|---|---|
OPENAI_API_KEY # 自分のキーに置き換える | OPENAI_API_KEY: "sk-..." | export OPENAI_API_KEY="sk-..." |
OPENAI_API_BASE # オプション | OPENAI_API_BASE: "https:///v1" | export OPENAI_API_BASE="https:///v1" |
チュートリアル: スタートアップの開始
python startup.py "Write a cli snake game"
# コードレビューを利用すれば、コストはかかるが、より良いコード品質を選ぶことができます。
python startup.py "Write a cli snake game" --code_review True
スクリプトを実行すると、workspace/
ディレクトリに新しいプロジェクトが見つかります。
プラットフォームまたはツールの設定
要件を述べるときに、どのプラットフォームまたはツールを使用するかを指定できます。
python startup.py "pygame をベースとした cli ヘビゲームを書く"
使用方法
会社名
startup.py - 私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。
シノプシス
startup.py IDEA <flags>
説明
私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。
位置引数
IDEA
型: str
あなたの革新的なアイデア、例えば"スネークゲームを作る。"など
フラグ
--investment=INVESTMENT
型: float
デフォルト: 3.0
投資家として、あなたはこの AI 企業に一定の金額を拠出する機会がある。
--n_round=N_ROUND
型: int
デフォルト: 5
注意事項
位置引数にフラグ構文を使うこともできます
コードウォークスルー
from metagpt.software_company import SoftwareCompany
from metagpt.roles import ProjectManager, ProductManager, Architect, Engineer
async def startup(idea: str, investment: float = 3.0, n_round: int = 5):
"""スタートアップを実行する。ボスになる。"""
company = SoftwareCompany()
company.hire([ProductManager(), Architect(), ProjectManager(), Engineer()])
company.invest(investment)
company.start_project(idea)
await company.run(n_round=n_round)
examples
でシングル・ロール(ナレッジ・ベース付き)と LLM のみの例を詳しく見ることができます。
クイックスタート
ローカル環境のインストールや設定は、ユーザーによっては難しいものです。以下のチュートリアルで MetaGPT の魅力をすぐに体験できます。
お問い合わせ先
このプロジェクトに関するご質問やご意見がございましたら、お気軽にお問い合わせください。皆様のご意見をお待ちしております!
- Email: alexanderwu@fuzhi.ai
- GitHub Issues: 技術的なお問い合わせについては、GitHub リポジトリ に新しい issue を作成することもできます。
ご質問には 2-3 営業日以内に回答いたします。
デモ
https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d