Releases: geekan/MetaGPT
Releases · geekan/MetaGPT
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
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
Patch release: v0.5.2
A patch release for the following issues:
- Fix dead loop when running startup example, move watching
UserRequirement
to 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 metagpt
is 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.recv
andRole.handle
. Corresponding logic is moved intoRole._observe
Role._publish_message
->Role.publish_message
Team.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_code
function, 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
Role
TutorialAssistant
by @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
Action
DetailMining
by @18620146591 #310 - Introduce open-interpreter as a tool for code writing and running by @orange-crow #315 #350 #402
- Add a new
Action
PrepareInterview
for software interview preparation by @DevXiaolan #323 - Add OpenAI Moderation by @Justin-ZL #324 #399
- Add a new
Role
SkAgent
, 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
Role
InvoiceOCRAssistant
capable of scanning invoices and receipts and extracting structured info by @Stitch-z #410 - Redefine how
Role
reacts 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_exists
by @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
Message
by @garylin2099 #354 - Set WindowsProactorEventLoopPolicy after importing sk_function by @shenchucheng #355 #362
- Fix output type in
serialize_message
by @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
v0.2.1
What's Changed
- Support integration with qdrant vector database by @hezhaozhao-git in #207.
- Support integration and execution on github codespaces by @LeonZh0u in #186.
- Add integration with multiple web search engines (
duckduckgo_search
/googleapi
) by @shenchucheng in #161. - Enhance web search result parsing capability, enabling targeted web content retrieval and result parsing by @shenchucheng in #69.
- Add timeout settings and network anomaly alerts for the OpenAI interface by @wangjie5540 in #112.
- Incorporate fault tolerance in
update_cost
andupdate_usage
calculations, and reduce instances of code execution errors caused by network anomalies by @alitrack in #138. - Introduce and refine the role of
qa engineer
, enabling abilities such as writing test cases, running code, and debugging errors by @garylin2099 in #77. - Fix the bug that can not use proxy and update the default setting check mechanism by @flyi in #121
- Introduce and refine the role of
researcher
, enabling abilities such as online searching, analyzing and summarizing web search results, and writing reports by @shenchucheng in #161. - Add custom loop policy for Windows by @bocandrei in #257
- Bug fix for ProductManager import by @denniseilander in #221
- Handle exception when using Anthropic_API_KEY instead of OPENAI_API_KEY by @flyi in #194
- Add MetaGPT quickstart doc links by @voidking in #139
- Fix typo problem in
run_code.py
by @jansalvador in #144 - Correct requirements and install instructions by @talkingtoaj in #238
- Add action
write docstring
, supporting sphinx/google/numpy styles by @shenchucheng in #124 - Update the Dockerfile, translate Chinese comments within the code, and perform other typo corrections, thx @voidking @LeonZh0u @flyi.
- Fix bug when calling
faiss_store write
by @seehi in #84 - Fix bug for incorrect
parse_tasks
andparse_workspace
by @femto in #116 - Support installing mmdc locally and skipping downloading Chromium by @alitrack in #83
- Implement code review to enhance the executability of the generated code, optimize the code-writing prompt to improve the executability of the generated code by @qa6300525 in #73
- Add a retry mechanism to reduce the probability of code generation failure by @qa6300525 in #73
- Add
memory_storage
using ann to avoid similar idea repetitive execution by @better629 in #70 - Add a new api key field and create a wrapper class for serper API by @LeonZh0u in #50
- Format
import
according to sort and clean up existing unused code, add .pre-commit-config.yaml to automatically detect code issues when code commit by @seehi in #67 - Add requirements.txt save and
api_spec_and_tasks.md
by @Hallimede in #57 - Bug fix: delete special characters when creating a directory by @voidking in #137
- Add support for anthropic Claude api by @LeoXV1 in #65
Other updates:
- Thanks to @geniuslzh in #136, for FAQ-EN
- Thanks to @eltociear in #143, creating
REAME_JA.md
- Thanks to @hezhaozhao-git in #208, adding ruff for code linter
- Thanks to @voidking and @alitrack for their work on updating the docker image and optimizing the Dockerfile in #106 and #109.
- Thanks to @stellaHSR in #63, for providing the ui role and enabling the use of the stable diffusion text2image api.
- Thanks to @wangjie5540 in #179, for optimizing the Dockfile.
- Thanks to @martcpp in #156, for providing English comments.