v0.5.0
FoundationAgents/MetaGPTv0.5.0Dec 17, 2023by garylin2099
AI Summary
Major update focusing on incremental development and optimized messaging mechanism, alongside CLI and PIP support.
Key Highlights
- Multilingual support (experimental)
- Incremental development (experimental)
- CLI and PIP installation support
- Optimized messaging mechanism with privatized Role memory
Breaking Changes
- Remove `Role.recv` and `Role.handle`
- Rename `Role._publish_message` to `Role.publish_message`
- Rename `Team.start_project` to `Team.run_project`
New Features
- Multilingual support
- Incremental development
- CLI support
- Enhanced code review
- Git file management
Full Release Notes
# Release Highlights ## Overall 1. **Multilingual Support (Experimental)**: Now supports both Chinese and English, and theoretically other languages. 2. **Multiple Programming Languages Support (Experimental)**: Support for various programming languages is now available, allowing for the natural generation of JavaScript projects. However, it's noted that GPT-4-turbo has significantly stronger capabilities in Python, and there is considerable room for improvement with other programming languages. 3. **Incremental Development (Experimental)**: It's now possible to incrementally raise requirements and bug fixes, allowing for further optimization of the generated repo. 4. **CLI Support**: You can now use `metagpt "make a 2048 game"` to let metagpt write software directly in the command line. More features can be unlocked with `metagpt --help`. 5. **PIP Support**: `pip install metagpt` is now available for installing and using metagpt, enabling direct access to the command-line version of metagpt. 6. **Enhanced Code Review**: The generated code now undergoes a more comprehensive code review, which significantly improves code quality. 7. **File Management with Git**: An independent documentation workspace with a complete git history is now used to record changes in historical code. 8. **Optimized Messaging Mechanism**: Privatized Role memory, providing an inter-Role messaging mechanism that supports broadcasting, group messaging, and private messaging. ## Details | Category | Content | |----------|---------| | **Action Optimization** | <ul><li>Action Optimization: Atomic ActionNode design. Multiple roles now use ActionNode.</li><li>SummarizeCode Action: Summarizing based on code.</li><li>CodeReview Action Enhancement: Mandatory question answering for higher success.</li><ul><li>LGTM/LBTM responses; stops on LGTM without rewriting code.</li><li>`code_review_k_times` parameter in settings, set to 2.</li><li>Potential non-compliance, need for ActionNode structure long-term.</li></ul><li>WriteDesign: Removed `project_name` correction code; prompt format changed from ## to JSON.</li></ul> | | **Data Structures** | <ul><li>Document Standardization: Git management in project folders, `CONFIG.git_repo -> FileRepository` for project code files handling; FileRepository with text file capabilities.</li><li>FileRepository: Data lineage recording for rebuilding data.</li><li>Repo Structure: For Document and metadata loading; FileRepository is live.</li><li>RepoParser: Simple AST parser, symbol library for the entire repository.</li><li>Role objects: Privatized memory.</li><li>Message Function: Retained for event notification, weakened data transportation.</li></ul> | | **Configuration Optimization** | <ul><li>Default to gpt-4-1106-preview.</li><li>`~/.metagpt` for highest priority config, reading `config.yaml`.</li><li>`METAGPT_PROJECT_ROOT` for workspace path specification.</li><li>`project_name` specification via command line, generated by ProductManager.</li></ul> | | **CLI Support** | <ul><li>`metagpt` as default command line.</li><li>New METAGPT_ROOT generation method for CLI installation.</li><li>Switched to typer for command line.</li><li>Flexible `project_name` specification.</li><li>`--project-path` parameter for project specification.</li></ul> | | **Other** | <ul><li>Support for multiple languages, Chinese tested.</li><li>Naming change: `BossRequirement` -> `UserRequirement`.</li><li>Error text corrections for readability.</li><li>Prompt word optimization for accuracy.</li><li>Blocked LongtermMemory logic due to loading time.</li><li>Fixed description errors in installation package.</li><li>Removed redundant `base` modification in config.</li><li>Fixed JSON storage issues with Chinese, `ensure_ascii=False`.</li></ul> | # What's Changed ## Backwards Incompatible Changes - Remove `Role.recv` and `Role.handle`. Corresponding logic is moved into `Role._observe` - `Role._publish_message` -> `Role.publish_message` - `Team.start_project` -> `Team.run_project`. Given we support incremental development, we use "run" to refer to project execution in general, as opposed to "starting" a project from scratch We will explain [incremental development](https://docs.deepwisdom.ai/v0.5/en/guide/in_depth_guides/incremental_development.html) and the new [messaging mechanism](https://docs.deepwisdom.ai/v0.5/en/guide/in_depth_guides/agent_communication.html) on the documentation site, stay tuned! ## Features - IMPORTANT: Multilingual support (experimental), multiple programming languages support (experimental), incremental development (experimental), CLI support, pip support, enhanced code review, documentation mechanism, optimized messaging mechanism by @iorisa @geekan #552 . Check out the highlights above for details. ## Bugfixes and improvements - Add gpt-4-turbo and gpt-3-turbo-1106 in openai token count by @WannaTen #548 - Fix spelling errors in prompt by @0aaryan #554