MetaGPT 是一个多智能体框架,能够协调多个基于 LLM 的智能体来处理复杂任务。通过为这些智能体分配不同的角色并建立结构化的通信协议,MetaGPT 创建了一个类似于软件公司的协作系统,其中专业角色按照标准操作程序 (SOP) 进行协作。
本文档提供了 MetaGPT 系统架构、关键组件和核心功能的高级概述。
来源: README.md40-47
MetaGPT 的架构由几个相互连接的系统组成,这些系统支持智能体的协作、通信和任务执行。下图说明了核心架构。
来源: metagpt/context.py57-92 metagpt/config2.py49-102 README.md41-47
Role 系统是 MetaGPT 的基础。每个角色代表一个具有特定职责和能力的智能体。角色遵循观察-思考-行动的循环。
角色被组织成模仿软件公司的团队结构,包括产品经理、架构师、工程师等角色。
来源: README.md40-47 metagpt/software_company.py14-77
消息是 MetaGPT 中角色之间通信的主要方式。消息传递系统支持结构化的信息交换和协作。每条消息包含:
系统根据角色的监听列表和职责将消息路由到相应的角色。
来源: metagpt/context.py57-92 metagpt/context_mixin.py17-102
Action 定义了角色可以执行的具体操作。每个 Action 都有一个名称、一个前缀(用于提示工程)和一个运行方法。Action 使用 LLM 根据精心设计的提示生成响应。
Action 框架通过将任务分解为可以顺序或条件执行的离散步骤,从而实现了复杂的工作流程。
来源: README.md40-47
MetaGPT 可以通过灵活的配置系统与各种 LLM 提供商集成。LLM 提供商系统负责管理:
集成通过 config2.yaml 文件进行配置,该文件指定了 LLM 提供商、模型、API 密钥和其他设置。
来源: metagpt/config2.py53-64 metagpt/context.py86-100
MetaGPT 使用一个强大的配置系统来处理框架的各种设置。 metagpt/config2.py 中的 Config 类管理:
配置可以从文件、环境变量加载,或以编程方式设置。
Context 类在 metagpt/context.py 提供 MetaGPT 的环境上下文。
kwargs 属性维护共享状态。总而言之,这些系统为 MetaGPT 的运营提供了一个灵活且可扩展的基础。
来源: metagpt/config2.py49-102 metagpt/context.py57-127 metagpt/context_mixin.py17-102 tests/metagpt/test_config.py14-24 tests/metagpt/test_context.py12-73
MetaGPT 的旗舰功能是其软件开发工作流程,它将一个单行需求转换为完整的软件项目。该工作流程涉及多个角色遵循标准操作程序 (SOP) 进行协作。
该工作流程由 Team 类编排,该类负责组织角色并管理它们之间的交互。
来源: README.md40-47 metagpt/software_company.py14-77
MetaGPT 的核心优势在于其协调多个智能体来解决复杂问题的能力。 Team 类在 metagpt/software_company.py 中进行管理,通过以下方式:
MetaGPT 包含一个动态智能系统,可通过以下方式增强智能体的能力:
RAG 系统通过检索相关信息来增强生成能力。
MetaGPT 可通过以下方式使用:
metagpt "创建一个 2048 游戏"generate_repo("创建一个 2048 游戏")docker run metagpt/metagpt:latest metagpt "创建一个 2048 游戏"来源: README.md50-102 Dockerfile1-25 metagpt/software_company.py14-77
来源:README.md90-115 docs/tutorial/usage.md13-32
MetaGPT 可以通过 ~/.metagpt/config2.yaml 文件进行配置
可以使用以下命令初始化配置
这将创建一个默认的配置文件,您可以根据自己的需求进行自定义。
来源:README.md69-86 metagpt/software_company.py126-154
MetaGPT 可以使用 pip 进行安装
或者通过克隆仓库进行安装
也支持 Docker 安装
来源:README.md57-67 docs/install/cli_install.md10-125 docs/install/docker_install.md3-44
MetaGPT 提供了一个全面的多代理协作框架,特别侧重于软件开发。通过将基于 LLM 的代理组织成具有特定职责的角色,并实现它们之间的结构化通信,MetaGPT 可以应对单一代理难以完成的复杂任务。该系统的模块化架构、灵活的配置以及与各种 LLM 提供商的集成使其能够适应不同的用例和环境。
有关特定组件的更多详细信息,请参阅相关的 wiki 页面