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