存根 MetaGPT:目前可用的最佳 AI 代理的完整指南 - Unite.AI
关注我们.

人工智能

MetaGPT:目前可用的最佳 AI 代理的完整指南

mm

发布时间

 on

人机协作的 MetaGPBased 插图

凭借 ChatGPT 等大型语言模型 (LLM),OpenAI 见证了企业和用户采用率的激增,目前每月收入约为 80 万美元。 根据一个 最近的报道 据 The Information 报道,这家总部位于旧金山的公司年收入有望达到 1 亿美元。

上次我们深入研究 AutoGPT 和 GPT 工程,早期主流的基于 LLM 的开源 AI 代理,旨在自动执行复杂的任务。 尽管前景光明,但这些系统也存在不少问题:结果不一致、性能瓶颈以及处理多方面需求方面的限制。 他们在代码生成方面表现出熟练程度,但他们的能力往往仅限于此。 他们缺乏关键的项目管理功能,例如 PRD 生成、技术设计生成和 API 接口原型设计。

输入 元GPT— 利用 Sirui Hong 的大型语言模型的多代理系统,将标准化操作程序 (SOP) 与基于 LLM 的多代理系统融合在一起。 这种新兴范式打破了法学硕士在复杂的现实应用中促进有效协作和任务分解方面的现有局限性。

MetaGPT 的美妙之处在于它的结构。 它利用元编程技术来实时操作、分析和转换代码。 目的? 实现敏捷、灵活的软件架构,能够适应动态编程任务。

敏捷开发 - Metagpt

敏捷开发

SOP 在这里充当元功能,协调代理根据定义的输入自动生成代码。 简单来说,就好像您将一个高度协调的软件工程师团队转变为一个适应性强的智能软件系统。

了解 MetaGPT 框架

基础层和协作层

MetaGPT 的架构分为两层:基础组件层和协作层。

  1. 基础组件层:该层侧重于个体代理操作并促进系统范围内的信息交换。 它介绍了核心构建块,例如环境、内存、角色、操作和工具。 环境为共享工作空间和通信路径奠定了基础,而内存则充当历史数据档案。 角色封装了特定领域的专业知识,操作执行模块化任务,工具提供通用服务。 该层本质上充当代理的操作系统。 有关这些如何协同工作的更多详细信息,请参阅文章“超越 ChatGPT; AI 代理:工人的新世界
  2. 协作层:该层构建在基础组件之上,管理和简化各个代理的协作工作。 它引入了两种机制:知识共享和封装工作流程。
    • 知识共享:这就像将代理粘合在一起的协作粘合剂。 代理可以在不同级别存储、检索和共享信息,从而减少冗余并提高运营效率。
    • 封装工作流程:这就是标准化操作程序 (SOP) 发挥作用的地方。 SOP 充当将任务分解为可管理组件的蓝图。 代理被分配这些子任务,他们的表现与标准化输出保持一致。

MetaGPT 还使用“角色定义正如我们上面讨论的,启动各种专业代理,例如产品经理、架构师等。 这些角色的特点是关键属性,如名称、个人资料、目标、约束和描述。

此外, ”锚定代理”为这些代理提供特定于角色的指导。 例如,产品经理的角色可能会受到“有效创建成功产品”的约束。 锚定代理确保代理的行为与总体目标保持一致,从而优化性能。

MetaGPT 代理中的认知过程

MetaGPT 可以观察、思考、反思和行动。 它们通过特定的行为功能来运作,例如 _think(), _observe(), _publish_message()等等。这种认知模型使代理成为能够适应和发展的主动学习者。

  1. 观察:特工扫描他们的环境并将关键数据合并到他们的内存中。
  2. 思考与反思:通过 _think() 在采取行动之前先考虑职能、角色。
  3. 广播消息:使用的代理 _publish_message() 共享当前任务状态和相关操作记录。
  4. 知识沉淀与行动:代理在决定下一步行动之前评估传入消息并更新其内部存储库。
  5. 国家管理:借助任务锁定和状态更新等功能,角色可以不间断地顺序处理多个操作,反映现实世界中的人类协作。

MetaGPT 的代码审查机制

代码审查是软件开发生命周期中的关键组成部分,但在一些流行的框架中却缺乏它。 MetaGPT 和 特工宇宙 支持代码审查功能,但 MetaGPT 更进一步。 它还包含预编译执行,有助于早期错误检测并随后提高代码质量。 鉴于编码的迭代性质,此功能不仅仅是一个附加功能,而且是任何成熟开发框架的要求。

跨多项任务进行的定量实验表明,MetaGPT 几乎在所有场景中都优于其同行。 Pass@1 是衡量框架在单次迭代中生成准确代码的能力的指标。 该指标更真实地反映了框架在实际环境中的实用性。 更高的 Pass@1 率意味着更少的调试和更高的效率,直接影响开发周期和成本。 当与其他高级代码生成工具(例如 法典, 代码T,甚至 GPT-4、MetaGPT 性能优于 商场。 该框架能够实现 81.7%82.3% 通过@1 评分 人类评估MBPP 基准。

比较 MBPP 和 HumanEval 指标以及 MetaGPT 和其他领先模型 (https://arxiv.org/pdf/2308.00352.pdf)

比较 MBPP 和 HumanEval 指标以及 MetaGPT 和其他领先模型 (https://arxiv.org/pdf/2308.00352.pdf)

该框架还使用更少的代币和计算资源,以传统软件工程成本的一小部分实现了高成功率。 数据显示平均成本仅为 $1.09 使用 MetaGPT 的每个项目,这只是开发人员针对同一任务收取的费用的一小部分。

在系统上本地安装 MetaGPT 的步骤

NPM、Python 安装

  1. 检查并安装 NPM:首先,确保您的系统上安装了 NPM。如果没有,您需要安装 的node.js。 要检查您是否有 npm,请在终端中运行以下命令: npm --version。 如果您看到版本号,就可以开始了。
  2. 安装 mermaid-js,MetaGPT 的依赖项,运行: sudo npm install -g @mermaid-js/mermaid-cli or npm install -g @mermaid-js/mermaid-cli
  3. 验证Python版本:确保您有Python 3.9或更高版本。 要检查您的 Python 版本,请打开终端并输入: python --version。 如果您不是最新版本,请从以下位置下载最新版本 Python官方网站.
  4. 克隆 MetaGPT 存储库:首先使用命令克隆 MetaGPT GitHub 存储库 git clone https://github.com/geekan/metagpt。 为此,请确保您的系统中安装了 Git。 如果没有,请访问 相关信息.
  5. 导航至目录:克隆后,使用命令导航到 MetaGPT 目录 cd metagpt.
  6. 装置:执行Python安装脚本以使用命令安装MetaGPT python setup.py install.
  7. 创建应用程序:运行 python startup.py "ENTER-PROMPT" --code_review True

备注:

  • 您的新项目现在应该位于 workspace/ 目录。
  • --code_review True 将允许 GPT 模型执行额外的操作,这将确保代码准确运行,但请注意,这会花费更多。
  • 如果您在安装过程中遇到权限错误,请尝试运行 python setup.py install --user 作为替代。
  • 要访问特定版本和更多详细信息,请访问官方 MetaGPT GitHub 版本页面: MetaGPT 版本.

码头工人安装

对于那些喜欢容器化的人来说,Docker 简化了这个过程:

  • 拉取 Docker 镜像:下载MetaGPT官方镜像并准备配置文件:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • 运行 MetaGPT 容器:使用以下命令执行容器:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Create a simple and interactive CLI based rock, paper and scissors game" --code_review True

使用您的 OpenAI API 密钥配置 MetaGPT

初始设置后,您需要将 MetaGPT 与 OpenAI API 密钥集成。 以下是执行此操作的步骤:

  1. 找到或生成您的 OpenAI 密钥:您可以在 OpenAI 仪表板的 API 设置下找到此密钥。
  2. 设置API密钥:您可以选择将 API 密钥放置在 config/key.yaml, config/config.yaml,或将其设置为环境变量(env)。 优先顺序是 config/key.yaml > config/config.yaml > env.
  3. 要设置密钥,请导航至 config/key.yaml 并将占位符文本替换为您的 OpenAI 密钥: OPENAI_API_KEY: "sk-..."

请记住保护您的 OpenAI API 密钥。 切勿将其提交到公共存储库或与未经授权的个人共享。

用例图

我给出的目标是开发一款基于 CLI 的石头剪刀布游戏,MetaGPT 成功地执行了该任务。

下面的视频展示了生成的游戏代码的实际运行。

MetaGPT 演示运行

MetaGPT 以 Markdown(一种常用的轻量级标记语言)提供了系统设计文档。 该 Markdown 文件充满了 UML 图,从而提供了架构蓝图的精细视图。 此外,API 规范还详细说明了 HTTP 方法、端点、请求/响应对象和状态代码

MetaGPT 输出 - 系统设计

MetaGPT 输出 – 系统设计 Markdown

类图详细说明了我们的属性和方法 Game 类,提供易于理解的抽象。 它甚至将程序的调用流程可视化,有效地将抽象的想法转化为具体的步骤。

这不仅显着减少了规划中的手动开销,而且还加速了决策过程,确保您的开发管道保持敏捷。 借助 MetaGPT,您不仅可以自动化代码生成,还可以自动化智能项目规划,从而在快速应用程序开发中提供竞争优势。

结论:MetaGPT — 彻底改变软件开发

MetaGPT 重新定义了生成式人工智能和软件开发的格局,提供智能自动化和敏捷项目管理的无缝融合。 它在任务分解、高效代码生成和项目规划方面表现出色,远远超越了 ChatGPT、AutoGPT 和传统 LangChain 模型的能力。 了解更多关于

以下是本文的要点:

  1. 元编程的力量:通过采用元编程,MetaGPT 提供了敏捷且自适应的软件框架。 它超越了传统工具的狭隘功能,并引入了一种变革性方法,不仅处理编码,还处理项目管理和决策方面。
  2. 两层架构:凭借其基础层和协作层,MetaGPT 有效地创建了一个协同生态系统,代理可以在其中协同工作,类似于专业管理的软件团队。
  3. 优化的代码审查:除了生成代码之外,MetaGPT 还提供预编译执行功能,这本质上是一个错误预警系统。 这不仅节省了调试时间,还保证了代码质量。
  4. 认知代理:MetaGPT 的智能代理充满了 _observe()、_think() 和 _publish_message() 等认知功能,不断发展和适应,确保您的软件解决方案不仅是编码的,而且是“智能的”。
  5. 安装部署:我们已经说明,无论您喜欢通过 npm 和 Python 进行本地安装,还是通过 Docker 进行容器化,MetaGPT 都可以轻松设置。

在过去的五年里,我一直沉浸在机器学习和深度学习的迷人世界中。 我的热情和专业知识使我为 50 多个不同的软件工程项目做出了贡献,特别关注人工智能/机器学习。 我持续的好奇心也吸引了我对自然语言处理的兴趣,这是我渴望进一步探索的领域。