Skip to content

Releases: FoundationAgents/MetaGPT

Patch release: v0.6.6

22 Jan 03:01
ab77bde

Choose a tag to compare

A patch release for the following issues:

  • Integrating with the agent store by @iorisa in #766
  • Maintain the original exceptions of OpenAI and HTTPX during exception handling. by @iorisa in #777

Patch release: v0.6.4

12 Jan 02:07
7493a23

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

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

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

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

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

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

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

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

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