v0.7.0
FoundationAgents/MetaGPTv0.7.0Feb 9, 2024by garylin2099
AI Summary
A significant update introducing easier configuration, a new Context system, multi-modality support via GPT-4V, and a general-purpose CodeInterpreter agent.
Key Highlights
- Easier and more flexible configuration
- Introduced Context
- Embraced Multi-modality
- Introduced CodeInterpreter
Breaking Changes
- Removed config.yaml and key.yaml, switched to minimal config2.yaml
- Renamed Role._init_actions to Role.set_actions
New Features
- Easier and more flexible configuration
- Introduced Context
- Embraced Multi-modality
- Introduced CodeInterpreter
- Improved Incremental development
Full Release Notes
# Release Highlights - **Easier and more flexible configuration**: Simplified config setup, moving away from a global CONFIG to use Config instances for more granular control. Typical use cases involve assigning different LLMs to different Roles. Please check out [here](https://docs.deepwisdom.ai/main/en/guide/get_started/setup.html) for detailed usage. - **Introduced Context**: Context is made up of config, repo, workspace, etc. Each Role can possess its own context, allowing more flexible context management. - Added metagpt --init-config command: A more friendly setup process for pypi package users. - Repo restructuring: Consolidated FileRepo and GitRepo responsibilities to simplify code and logic. - Subscription to tags: Changed the concept of subscription to tags for improved readability and usability. - Removal of explicit serialize/deserialize functions: Removed these functions from Role, used mixin instead for better clarity. - Supported initializing ActionNode from pydantic.BaseModel: An easy and structured way to define ActionNode. - WritePRD Action restructuring: Simplified code, enhanced effectiveness, and fixed buggy logic. - Env restructuring (experimental): Re-abstracted Env to accommodate various environments more effectively; Uses mark_as_readable mark_as_writable to decorate APIs to uniformly observe and act on the environment through observe and step. - **Embraced Multi-modality**: Added a vision agent based on GPT-4V, check out the example [here](https://github.com/geekan/MetaGPT/blob/main/examples/dalle_gpt4v_agent.py)! - **Improved Incremental development**: Higher success rate of incremental development compared to previous version. - **Introduced CodeInterpreter**: A general agent who solves problems through coding. The agent leverages on plans and tools, capable of tackling a wide range of problems, including data visualization, machine learning modeling, math reasoning, web scraping, webpage imitating, etc. We are adding examples [here](https://docs.deepwisdom.ai/main/en/guide/use_cases/agent/code_interpreter/ci_intro.html)! # What's Changed ## Backwards Incompatible Changes - IMPORTANT: We removed config.yam, key.yaml and switched to a minimal config2.yaml. Please check the latest setup method [here](https://docs.deepwisdom.ai/main/en/guide/get_started/setup.html) - We removed `Role._init_actions` and added `Role.set_actions`, which allows actions setup at any time besides initialization. For `Role` initialization specifically, users should also use `self.set_actions(...)` now ## Features - Easier and more flexible configuration, introduced Context, embraced Multi-modality, improved Incremental development, introduced CodeInterpreter, and more (see release highlights) #852 by @geekan @mannaandpoem @garylin2099 @shenchucheng @voidking @iorisa @better629 @stellaHSR @orange-crow @buttogo @FromCSUZhou @luxiangtaoya - Supported Generating class views from source code #676 by @iorisa ## Bugfixes and improvements - Improved testing SOP, increased test coverage, and fix bugs during testing, ensuring quality and preparing for more effective development. #673 #678 #685 #688 #689 #690 #694 #696 #698 #702 #703 #707 #709 #710 #711 #713 #715 #718 #727 #729 #863 #867 by @shenchucheng @voidking @iorisa @garylin2099 - Fixed is_human not working at Role initialization #715 by @kkdev163 - Fixed system_prompt error at BaseLLM #732 by @better629 - Constrain the language for the qa_engineer #743 by @arnaudgelas - Fixed: requirements.txt not written to the disk #744 by @arnaudgelas - Fixed multiple issues at qa_engineer.py, including crashing if no code_doc, generating tests for non-python files, trying to install dependencies when there are none #765 #775 by @arnaudgelas - Upgraded Zhipu API #770 #861 by @better629 - Fixed prompt logic when defining to whom the message should be sent. #785 by @arnaudgelas - Fixed JSONDecodeError when parsing LLM outputs #799 by @HuZixia - Modified get_choice_delta_text for safer dict access while using ZHIPU API #801 by @pkdog