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
- 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
toActionNode
LLM provider update
- OpenAI package upgraded to v1.6.0
- Supported or optimized LLMs: Gemini, ZhipuAI, Ollama, and other Open LLMs 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 toOPENAI_BASE_URL
in config.yaml - The underlying abstraction has been renamed from
BaseGPTAPI
toBaseLLM
, making it more generic and capable of supporting API / UI / local interfaces. Role._rc
->Role.rc
- Removed
BaseLLM.ask
andBaseLLM.ask_code
, maintained the asynchronousBaseLLM.aask
andBaseLLM.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