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

MetaGPT ロゴ: GPT がソフトウェア会社で働けるようにし、協力してより複雑な仕事に取り組む。

GPT にさまざまな役割を割り当てることで、複雑なタスクのための共同ソフトウェアエンティティを形成します。

CN doc EN doc JA doc Discord Follow License: MIT roadmap roadmap Twitter Follow

1. MetaGPT は、**1 行の要件** を入力とし、**ユーザーストーリー / 競合分析 / 要件 / データ構造 / API / 文書など** を出力します。 2. MetaGPT には、**プロダクト マネージャー、アーキテクト、プロジェクト マネージャー、エンジニア** が含まれています。MetaGPT は、**ソフトウェア会社のプロセス全体を、慎重に調整された SOP とともに提供します。** 1. `Code = SOP(Team)` が基本理念です。私たちは SOP を具体化し、LLM で構成されるチームに適用します。 ![ソフトウェア会社は LLM ベースの役割で構成されている](resources/software_company_cd.jpeg)

ソフトウェア会社のマルチロール図式(順次導入)

## 例(GPT-4 で完全生成) 例えば、`python startup.py "Toutiao のような RecSys をデザインする"`と入力すると、多くの出力が得られます ![Jinri Toutiao Recsys データと API デザイン](resources/workspace/content_rec_sys/resources/data_api_design.png) 解析と設計を含む 1 つの例を生成するのに、**$0.2** (GPT-4 の api のコスト)程度、完全なプロジェクトには **$2.0** 程度が必要です。 ## インストール ### 伝統的なインストール ```bash # ステップ 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 のダウンロードをスキップすることができます。 - このツールをグローバルにインストールする[問題を抱えている](https://github.com/mermaidjs/mermaid.cli/issues/15)人もいます。ローカルにインストールするのが代替の解決策です、 ```bash npm install @mermaid-js/mermaid-cli ``` - config.yml に mmdc のコンフィギュレーションを記述するのを忘れないこと ```yml PUPPETEER_CONFIG: "./config/puppeteer-config.json" MMDC: "./node_modules/.bin/mmdc" ``` ### Docker によるインストール ```bash # ステップ 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"` を実行する ### 自分でイメージをビルドする ```bash # また、自分で 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` の順です。 ```bash # 設定ファイルをコピーし、必要な修正を加える。 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" | ## チュートリアル: スタートアップの開始 ```shell python startup.py "Write a cli snake game" # コードレビューを利用すれば、コストはかかるが、より良いコード品質を選ぶことができます。 python startup.py "Write a cli snake game" --code_review True ``` スクリプトを実行すると、`workspace/` ディレクトリに新しいプロジェクトが見つかります。 ### プラットフォームまたはツールの設定 要件を述べるときに、どのプラットフォームまたはツールを使用するかを指定できます。 ```shell python startup.py "pygame をベースとした cli ヘビゲームを書く" ``` ### 使用方法 ``` 会社名 startup.py - 私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。 シノプシス startup.py IDEA 説明 私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。 位置引数 IDEA 型: str あなたの革新的なアイデア、例えば"スネークゲームを作る。"など フラグ --investment=INVESTMENT 型: float デフォルト: 3.0 投資家として、あなたはこの AI 企業に一定の金額を拠出する機会がある。 --n_round=N_ROUND 型: int デフォルト: 5 注意事項 位置引数にフラグ構文を使うこともできます ``` ### コードウォークスルー ```python 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 の魅力をすぐに体験できます。 - [MetaGPT クイックスタート](https://deepwisdom.feishu.cn/wiki/Q8ycw6J9tiNXdHk66MRcIN8Pnlg) ## お問い合わせ先 このプロジェクトに関するご質問やご意見がございましたら、お気軽にお問い合わせください。皆様のご意見をお待ちしております! - **Email:** alexanderwu@fuzhi.ai - **GitHub Issues:** 技術的なお問い合わせについては、[GitHub リポジトリ](https://github.com/geekan/metagpt/issues) に新しい issue を作成することもできます。 ご質問には 2-3 営業日以内に回答いたします。 ## デモ https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d