v0.6.0
FoundationAgents/MetaGPTv0.6.0Jan 3, 2024by garylin2099
AI Summary
A major update focusing on framework stability and extensibility, including serialization, breakpoint recovery, support for Google Gemini and Open LLMs, and a complete migration to asynchronous operations.
Key Highlights
- Supported breakpoint recovery
- Supported Google Gemini and Open LLMs
- Pure asynchronous architecture
- Added serialization and deserialization
Breaking Changes
- Renamed OPENAI_API_BASE to OPENAI_BASE_URL
- Renamed BaseGPTAPI to BaseLLM
- Renamed Role._rc to Role.rc
- Removed BaseLLM.ask and BaseLLM.ask_code
New Features
- Added serialization and deserialization of important objects
- Supported Google Gemini as underlying LLM
- Supported Ollama as underlying LLM
- Enabled MetaGPT to be used as a dependency for web applications
- Experimental implementation of ToT strategy
Full Release Notes
# Release Highlights ## Numerical statistics - Huge number of commits: increased from ~1300 to ~2000 - Significantly improved test coverage: from ~30% to 80%+ ## Ease of use - Example simplification: Now only 7 lines of code are needed to implement a general election debate. Simplified debate and knowledge base related examples - Pure asynchronous: LLM API calls are changed to pure asynchronous, removing all synchronization code ## Framework update - Integrated code to support Huggingface demo and AgentStore - Added serialization and deserialization of important objects - Supported [breakpoint recovery](https://docs.deepwisdom.ai/main/en/guide/in_depth_guides/breakpoint_recovery.html) - All types modified to base on pydantic v2. In order to keep it simple enough, all private variables are changed to public - Moved most logic of `ActionOutput` to `ActionNode` ## LLM provider update - OpenAI package upgraded to v1.6.0 - Supported or optimized LLMs: Gemini, ZhipuAI, [Ollama, and other Open LLMs](https://docs.deepwisdom.ai/main/en/guide/tutorials/integration_with_open_llm.html) etc. ## Other update - Removed OpenInterpreter and StableDiffusion part of the code - Added ToT strategy - Installation process optimized: now you can use `pip install -e .[dev]` / `pip install -e .[test]` to install the package corresponding to the scenario # What's Changed ## Backwards Incompatible Changes - IMPORTANT: In accordance with OpenAI's official specifications, the `OPENAI_API_BASE` has been renamed to `OPENAI_BASE_URL` in config.yaml - The underlying abstraction has been renamed from `BaseGPTAPI` to `BaseLLM`, making it more generic and capable of supporting API / UI / local interfaces. - `Role._rc` -> `Role.rc` - Removed `BaseLLM.ask` and `BaseLLM.ask_code`, maintained the asynchronous `BaseLLM.aask` and `BaseLLM.aask_code` only ## Features - Github related: Add pre-commit code format check and corrected the format #587 #594 by @voidking - Optimized example, used purely asynchronous api call, integrated code to support Huggingface and AgentStore, upgraded OpenAI package, built up test suite #589 #671 by @geekan @better629 @seehi @iorisa @shenchucheng @Stitch-z @Justin-ZL @voidking @garylin2099 - Based important objects to pydantic BaseModel, added serialization and deserialization #590 by @better629 - Supported Google Gemini as underlying LLM #595 by @better629 - Github related: Provided issue and pr template #598 by @better629 - Supported Ollama as underlying LLM #603 by @better629 - Enabled MetaGPT to be used as a dependency for web applications, such as https://huggingface.co/spaces/deepwisdom/MetaGPT. #621 by @shenchucheng - Experimental implementation of ToT strategy #643 by @stellaHSR ## Bugfixes and improvements - Solve Message initialization issue #596 by @orange-crow #599 by @better629 - Fixed QaEngineer missing test_round #600 by @better629 - Upgraded langchain to be compatible with openai new version #605 by @seehi - Update examples #606 by @better629 - Fixed bug in sk_agent #623 by @femto - Set openai proxy for class ZhiPuAPTAPI #630 by @springasa - Fix filename problem in research.py #634 @shenchucheng ## Documents - Fixed broken docs links #575 by @shenchucheng - Fixed typos #602 by @eltociear