MetaGPT
Turns a one-line software requirement into a coordinated, role-based development workflow.
Per-dimension scores and reasoning
Evidence shows: README requires users to configure API keys but does not mention least privilege; test config contains mock keys but not production handling; dependency list includes many packages but no security audit; external network calls (e.g., search, API) exist but no user confirmation mechanism; no rollback mechanism; source attribution via README authors and contact. Deductions: lack of user confirmation, data flow transparency, and rollback.
Evidence shows: README and test config are consistent, but dependency versions are pinned, potentially affecting availability; failure messages not clearly documented. Deductions: dependency availability not fully ensured, failure messages unclear.
Evidence shows: README provides multiple usage scenarios (CLI, library, Data Interpreter), but capability boundaries not explicit; trigger precision not detailed; environment requirements (Python version, Node, pnpm) listed. Deductions: capability boundaries and trigger precision insufficient.
Evidence shows: README structure clear, installation instructions detailed, examples and FAQ links present, but known limitations not explicit; version changelog not provided; maintenance responsibility via contact email and Discord. Deductions: known limitations and version changelog missing.
Evidence shows: Output is a code repository, high usability; marginal value clear (multi-agent framework); cost-benefit not detailed. Deductions: cost-benefit analysis insufficient.
Evidence shows: README claims partially backed by paper citations, but no specific evidence; cross-source verification insufficient; facts and inferences not clearly separated. Deductions: claim traceability insufficient, facts and inferences mixed.
- Pinned dependency versions may affect security updates and compatibility.
- Test config contains mock keys, but production key management not described.
- External network calls (e.g., search, API) may involve data exfiltration, requiring user confirmation.
What does this agent do, and when should you use it?
MetaGPT is a multi-agent framework for software development that assigns a requirement to roles including product managers, architects, project managers, and engineers. Its stated philosophy, “Code = SOP(Team),” applies standard operating procedures to teams composed of LLMs. It can produce user stories, competitive analysis, requirements, data structures, APIs, and documents, and its CLI creates a repository in `./workspace`. It also exposes Python library entry points, including `generate_repo` and `ProjectRepo`. The repository includes a `DataInterpreter` role that can be invoked asynchronously for data-analysis tasks with plots.
A user can submit a natural-language requirement with metagpt "Create a 2048 game"; MetaGPT processes it through its software-company roles and SOPs, then creates a repository in ./workspace. In Python, callers can use metagpt.software_company.generate_repo("Create a 2048 game") to obtain a ProjectRepo and print its project structure. Before execution, metagpt --init-config creates ~/.metagpt/config2.yaml, where llm.api_type, model, base_url, and api_key are configured. For data work, callers instantiate metagpt.roles.di.data_interpreter.DataInterpreter and run a request through await di.run(...).
- A solo developer with only a prompt such as “Create a 2048 game” who wants a project repository created in a local workspace.
- A product lead who needs a short requirement expanded into user stories, requirements, data structures, APIs, and documentation.
- A team evaluating a software-development SOP carried out by distinct product-manager, architect, project-manager, and engineer roles.
- A Python developer who wants to call
generate_repofrom an application and inspect the resulting structure throughProjectRepo. - A data analyst who wants to use
DataInterpreterto analyze the sklearn Iris dataset and request a plot.
What are this agent's strengths and limitations?
- Orchestrates named software-company roles—product manager, architect, project manager, and engineer—rather than exposing only a single generation call.
- A single natural-language requirement can target multiple software artifacts, including user stories, competitive analysis, requirements, data structures, APIs, documents, and a project repository.
- Provides a
metagptCLI, Python interfaces throughgenerate_repoandProjectRepo, and aDataInterpreterexample. - Its configuration example explicitly supports OpenAI and lists Azure, Ollama, and Groq as additional
api_typeoptions.
- The supported Python range is limited to 3.9 through below 3.12, and actual use also requires Node.js and pnpm.
- It requires configuration of a model service’s
api_key, model, and endpoint; the README provides no model-usage cost estimate. - The default CLI flow creates a project repository in
./workspaceand creates or reads~/.metagpt/config2.yamlin the user’s home directory. - The software-company diagram is labeled “Gradually Implementing,” and the supplied material does not itemize the implementation completeness of every role workflow.
How do you install or deploy this agent?
Use Python 3.9 or later but below 3.12, and install Node.js and pnpm before actual use.
Install:
pip install --upgrade metagptInitialize configuration:
metagpt --init-configEdit ~/.metagpt/config2.yaml with at least:
llm.api_type: "openai"
llm.model: "gpt-4-turbo"
llm.base_url: "https://api.openai.com/v1"
llm.api_key: "YOUR_API_KEY"The README also lists Azure, Ollama, and Groq among the available api_type options.
How do you use this agent?
After configuration, run:
metagpt "Create a 2048 game"This creates a repository in ./workspace. For library use:
from metagpt.software_company import generate_repo
repo = generate_repo("Create a 2048 game")
print(repo)For data analysis, create DataInterpreter() and call await di.run("Run data analysis on sklearn Iris dataset, include a plot") inside an asynchronous function.
FAQ
What model credentials are required?
api_key, model, and base_url in ~/.metagpt/config2.yaml. The README also lists Azure, Ollama, and Groq as api_type options.Where does it write files locally?
metagpt --init-config creates ~/.metagpt/config2.yaml, and the example CLI command creates a project repository in ./workspace.Can it be embedded in an existing Python application?
generate_repo and ProjectRepo, plus asynchronous calls to DataInterpreter.run.