Skip to content

Releases: geekan/MetaGPT

Patch release: v0.6.4

12 Jan 02:07
7493a23
Compare
Choose a tag to compare

A patch release for the following issues:

  • Displayed todo or todo description in AgentStore #735

Patch release: v0.6.3

08 Jan 13:05
Compare
Choose a tag to compare

A patch release for the following issues:

  • An unexpected UserRequirement type message is thrown when there is nothing to do. #701
  • Renaming folder does not work on Windows os #716

Patch release: v0.6.2

05 Jan 11:38
94a16f7
Compare
Choose a tag to compare

A patch release for the following issues:

  • Fixed the issue of recursive searching for providers by adding DEFAULT_PROVIDER. #679 #681

v0.6.0: Breakpoint Recovery, Serialization and Deserialization, Gemini and Open LLMs Support

03 Jan 15:57
a1c754b
Compare
Choose a tag to compare

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 to ActionNode

LLM provider update

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

Bugfixes and improvements

Documents

Patch release: v0.5.2

19 Dec 06:11
c60a510
Compare
Choose a tag to compare

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

18 Dec 11:39
e43aaec
Compare
Choose a tag to compare

A patch release for the following issues:

  • Fix cContextVar OPTIONS LookupError #566
  • Add UserRequirement to watch by default if the role is not set to watch; Set current working directory (cwd) as the default project root in PyPI mode #570
  • Add deprecated warnings for the start_project method #574

v0.5.0: Incremental Development and Optimized Messaging Mechanism

17 Dec 05:47
f65c7a0
Compare
Choose a tag to compare

Release Highlights

Overall

  1. Multilingual Support (Experimental): Now supports both Chinese and English, and theoretically other languages.
  2. 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.
  3. Incremental Development (Experimental): It's now possible to incrementally raise requirements and bug fixes, allowing for further optimization of the generated repo.
  4. 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 with metagpt --help.
  5. PIP Support: pip install metagpt is now available for installing and using metagpt, enabling direct access to the command-line version of metagpt.
  6. Enhanced Code Review: The generated code now undergoes a more comprehensive code review, which significantly improves code quality.
  7. File Management with Git: An independent documentation workspace with a complete git history is now used to record changes in historical code.
  8. 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
  • Action Optimization: Atomic ActionNode design. Multiple roles now use ActionNode.
  • SummarizeCode Action: Summarizing based on code.
  • CodeReview Action Enhancement: Mandatory question answering for higher success.
    • LGTM/LBTM responses; stops on LGTM without rewriting code.
    • code_review_k_times parameter in settings, set to 2.
    • Potential non-compliance, need for ActionNode structure long-term.
  • WriteDesign: Removed project_name correction code; prompt format changed from ## to JSON.
Data Structures
  • Document Standardization: Git management in project folders, CONFIG.git_repo -> FileRepository for project code files handling; FileRepository with text file capabilities.
  • FileRepository: Data lineage recording for rebuilding data.
  • Repo Structure: For Document and metadata loading; FileRepository is live.
  • RepoParser: Simple AST parser, symbol library for the entire repository.
  • Role objects: Privatized memory.
  • Message Function: Retained for event notification, weakened data transportation.
Configuration Optimization
  • Default to gpt-4-1106-preview.
  • ~/.metagpt for highest priority config, reading config.yaml.
  • METAGPT_PROJECT_ROOT for workspace path specification.
  • project_name specification via command line, generated by ProductManager.
CLI Support
  • metagpt as default command line.
  • New METAGPT_ROOT generation method for CLI installation.
  • Switched to typer for command line.
  • Flexible project_name specification.
  • --project-path parameter for project specification.
Other
  • Support for multiple languages, Chinese tested.
  • Naming change: BossRequirement -> UserRequirement.
  • Error text corrections for readability.
  • Prompt word optimization for accuracy.
  • Blocked LongtermMemory logic due to loading time.
  • Fixed description errors in installation package.
  • Removed redundant base modification in config.
  • Fixed JSON storage issues with Chinese, ensure_ascii=False.

What's Changed

Backwards Incompatible Changes

  • Remove Role.recv and Role.handle. Corresponding logic is moved into Role._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

  • Add gpt-4-turbo and gpt-3-turbo-1106 in openai token count by @WannaTen #548
  • Fix spelling errors in prompt by @0aaryan #554

v0.4.0

08 Dec 10:10
083225f
Compare
Choose a tag to compare

What's Changed

Features

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

v0.3.0

27 Nov 06:25
820fee5
Compare
Choose a tag to compare

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

Documents

Note

Features from game agents (on werewolf_game, minecraft, ga_town branches) are under development and will come in future releases

v0.2.1

28 Aug 16:25
6550020
Compare
Choose a tag to compare

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 and update_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 and parse_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:

  1. Thanks to @geniuslzh in #136, for FAQ-EN
  2. Thanks to @eltociear in #143, creating REAME_JA.md
  3. Thanks to @hezhaozhao-git in #208, adding ruff for code linter
  4. Thanks to @voidking and @alitrack for their work on updating the docker image and optimizing the Dockerfile in #106 and #109.
  5. Thanks to @stellaHSR in #63, for providing the ui role and enabling the use of the stable diffusion text2image api.
  6. Thanks to @wangjie5540 in #179, for optimizing the Dockfile.
  7. Thanks to @martcpp in #156, for providing English comments.