Releases: FoundationAgents/MetaGPT
Releases · FoundationAgents/MetaGPT
Patch release: v0.6.6
Patch release: v0.6.4
A patch release for the following issues:
- Displayed todo or todo description in AgentStore #735
Patch release: v0.6.3
Patch release: v0.6.2
v0.6.0: Breakpoint Recovery, Serialization and Deserialization, Gemini and Open LLMs Support
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
ActionOutputtoActionNode
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_BASEhas been renamed toOPENAI_BASE_URLin config.yaml - The underlying abstraction has been renamed from
BaseGPTAPItoBaseLLM, making it more generic and capable of supporting API / UI / local interfaces. Role._rc->Role.rc- Removed
BaseLLM.askandBaseLLM.ask_code, maintained the asynchronousBaseLLM.aaskandBaseLLM.aask_codeonly
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
Patch release: v0.5.2
A patch release for the following issues:
- Fix dead loop when running startup example, move watching
UserRequirementto role initialization #579
Patch release: v0.5.1
v0.5.0: Incremental Development and Optimized Messaging Mechanism
Release Highlights
Overall
- Multilingual Support (Experimental): Now supports both Chinese and English, and theoretically other languages.
- Multiple Programming Languages Support (Experimental): Support for various programming languages is now available, allowing for the natural generation of JavaScript projects. However, it's noted that GPT-4-turbo has significantly stronger capabilities in Python, and there is considerable room for improvement with other programming languages.
- Incremental Development (Experimental): It's now possible to incrementally raise requirements and bug fixes, allowing for further optimization of the generated repo.
- CLI Support: You can now use
metagpt "make a 2048 game"to let metagpt write software directly in the command line. More features can be unlocked withmetagpt --help. - PIP Support:
pip install metagptis now available for installing and using metagpt, enabling direct access to the command-line version of metagpt. - Enhanced Code Review: The generated code now undergoes a more comprehensive code review, which significantly improves code quality.
- File Management with Git: An independent documentation workspace with a complete git history is now used to record changes in historical code.
- Optimized Messaging Mechanism: Privatized Role memory, providing an inter-Role messaging mechanism that supports broadcasting, group messaging, and private messaging.
Details
| Category | Content |
|---|---|
| Action Optimization |
|
| Data Structures |
|
| Configuration Optimization |
|
| CLI Support |
|
| Other |
|
What's Changed
Backwards Incompatible Changes
- Remove
Role.recvandRole.handle. Corresponding logic is moved intoRole._observe Role._publish_message->Role.publish_messageTeam.start_project->Team.run_project. Given we support incremental development, we use "run" to refer to project execution in general, as opposed to "starting" a project from scratch
We will explain incremental development and the new messaging mechanism on the documentation site, stay tuned!
Features
- IMPORTANT: Multilingual support (experimental), multiple programming languages support (experimental), incremental development (experimental), CLI support, pip support, enhanced code review, documentation mechanism, optimized messaging mechanism by @iorisa @geekan #552 . Check out the highlights above for details.
Bugfixes and improvements
v0.4.0
What's Changed
Features
- Add
aask_codefunction, which enables more stable code generation using openai function call (tool use) by @orange-crow #490 - Support Zhipu ChatGLM API by @better629 #492 #498
- Add a simple entry for subscribing message from role by @shenchucheng #518
Bugfixes and improvements
- Fix workspace not existing issue by @border #472
- Fix crashing due to openai.error.RateLimitError by @a-cid #485
- Fix problems in search_kb.py by @seehi #501
Documents
- Introduce online document sites in README @better629 #494
- Update windows installation note in README @seehi #499
v0.3.0
What's Changed
Features
- Integrate LanceDB as a document store by @unkn-wn #192
- Add a new
RoleTutorialAssistantby @Stitch-z #291 - Elicit json format response in write prd, design api, and project management actions by @femto #298
- Support more options for mermaid conversion, including nodejs (the default mmdc), playwright, pyppeteer, or ink, by @alitrack #309
- Add a new
ActionDetailMiningby @18620146591 #310 - Introduce open-interpreter as a tool for code writing and running by @orange-crow #315 #350 #402
- Add a new
ActionPrepareInterviewfor software interview preparation by @DevXiaolan #323 - Add OpenAI Moderation by @Justin-ZL #324 #399
- Add a new
RoleSkAgent, a semantic kernel agent with basic planner and action planner by @femto #327 #348 - Support using iFLYTEK Spark as the underlying LLM by @zhouzinimg #409
- Add a new
RoleInvoiceOCRAssistantcapable of scanning invoices and receipts and extracting structured info by @Stitch-z #410 - Redefine how
Rolereacts to observed message and provide three reaction modes by @garylin2099 #479 - Support basic human engagement by @garylin2099 #481
Bugfixes and improvements
- Add option to skip hiring an engineer by @cassler #276
- Add engine mode for azure api by @RainFung #280
- Pass kwargs in faiss search by @seehi #286
- Fix windows compatibility issue for function
check_cmd_existsby @chansonzhang #292 - Compress index.html by @alitrack #337
- Fix installation and event loop problems by @shenchucheng #338
- Fix research action bug and optimize universal file operation tools by @Stitch-z #343
- Fix OSError on Windows when converting Mermaid charts by @shenchucheng #345
- Use more intuitive names for message finding function and add a new attribute to
Messageby @garylin2099 #354 - Set WindowsProactorEventLoopPolicy after importing sk_function by @shenchucheng #355 #362
- Fix output type in
serialize_messageby @femto #358 - Fix a code parsing problem by @femto #366
- Fix wrong indentation in openai_api.py by @polease #449 and by @LeonZh0u #455
- Change PROJECT_ROOT setting to support pypi package usage @garylin2099 #480
Documents
- Translate skill_manager comments by @martcpp #190
- Add more contents and translation to README_JA @eltociear #250 #314 #446
- Add video tutorial link from Matthew Berman Youtube channel to README by @martcpp #256
- Fix typos or grammatical glitches by @gallonyin #293 , @suravshresth #440 , @Smoothieewastaken #443 , @RS-labhub #456
- Add Note section in README_CN by @ushio0107 #295
- Provide tutorial examples of creating a customized agent by @garylin2099 #332
- Provide more resources in FAQ-EN by @martcpp #352
- Change docker image tag and command in README by @voidking #373 #457
Note
Features from game agents (on werewolf_game, minecraft, ga_town branches) are under development and will come in future releases