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