MetaGPT Versions Save

🌟 The Multi-Agent Framework: First AI Software Company, Towards Natural Language Programming

v0.6.4

4 months ago

A patch release for the following issues:

  • Displayed todo or todo description in AgentStore #735

v0.6.3

5 months ago

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

v0.6.2

5 months ago

A patch release for the following issues:

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

v0.6.0

5 months ago

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

  • 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

v0.5.2

5 months ago

A patch release for the following issues:

  • Fix dead loop when running startup example, move watching UserRequirement to role initialization #579

v0.5.1

5 months ago

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

5 months ago

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

6 months ago

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

6 months ago

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

9 months ago

What's Changed

Other updates:

  1. Thanks to @geniuslzh in https://github.com/geekan/MetaGPT/pull/136, for FAQ-EN
  2. Thanks to @eltociear in https://github.com/geekan/MetaGPT/pull/143, creating REAME_JA.md
  3. Thanks to @hezhaozhao-git in https://github.com/geekan/MetaGPT/pull/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 https://github.com/geekan/MetaGPT/pull/106 and https://github.com/geekan/MetaGPT/pull/109.
  5. Thanks to @stellaHSR in https://github.com/geekan/MetaGPT/pull/63, for providing the ui role and enabling the use of the stable diffusion text2image api.
  6. Thanks to @wangjie5540 in https://github.com/geekan/MetaGPT/pull/179, for optimizing the Dockfile.
  7. Thanks to @martcpp in https://github.com/geekan/MetaGPT/pull/156, for providing English comments.