Press "Enter" to skip to content

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

凭借像ChatGPT这样的大型语言模型(LLMs),OpenAI目睹了企业和用户采用的激增,目前每月收入约为8000万美元。根据The Information最近的一份报告,这家总部位于旧金山的公司报道称其年收入有望达到10亿美元。

上次我们深入研究了AutoGPT和GPT-Engineering,这些早期主流的基于开源LLM的人工智能代理旨在自动化复杂任务。虽然有前景,但这些系统也存在一些问题:结果不一致、性能瓶颈以及处理多方面需求的限制。它们在代码生成方面表现出色,但其能力通常止步于此。它们缺乏关键的项目管理功能,如PRD生成、技术设计生成和API接口原型。

MetaGPT是一种利用Sirui Hong的大型语言模型的多代理系统,将标准化操作规程(SOPs)与基于LLM的多代理系统相结合。这种新兴范式打破了LLMs在促进复杂现实世界应用的有效协作和任务分解方面的现有限制。

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

MetaGPT:目前最佳AI代理的完整指南 四海 第1张

敏捷开发

SOPs在这里起到元函数的作用,根据定义的输入协调代理生成代码。简单来说,就好像将一支高度协调的软件工程师团队转变成一个适应性强、智能化的软件系统。

理解MetaGPT框架

MetaGPT:目前最佳AI代理的完整指南 四海 第2张

MetaGPT框架(https://arxiv.org/pdf/2308.00352.pdf)

基础和协作层

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

  1. 基础组件层:这一层主要关注单个代理的操作,并促进系统范围的信息交流。它引入了核心构建模块,如环境、记忆、角色、动作和工具。环境为共享工作空间和通信路径打下基础,而记忆则用作历史数据存档。角色封装领域专业知识,动作执行模块化任务,工具提供常见服务。该层本质上充当代理的操作系统。关于这些模块如何协同工作的更多细节,请参阅文章《超越ChatGPT;AI代理:一个新的工作世界》
  2. 协作层:建立在基础组件之上,这一层管理和简化单个代理的协作努力。它引入了两种机制:知识共享和封装工作流程。
    • 知识共享:这充当将代理绑定在一起的协作胶水。代理可以以不同的层次存储、检索和共享信息,从而减少冗余,提高运行效率。
    • 封装工作流程:这就是标准化操作规程(SOPs)发挥作用的地方。SOPs作为将任务分解为可管理组件的蓝图。将这些子任务分配给代理,并将其绩效与标准化输出对齐。

MetaGPT还使用“角色定义”来初始化各种专业化代理,如产品经理、架构师等,就像我们上面讨论的那样。这些角色具有名称、概况、目标、约束和描述等关键属性。

MetaGPT:目前最佳AI代理的完整指南 四海 第3张

https://arxiv.org/pdf/2308.00352.pdf

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

MetaGPT代理的认知过程

MetaGPT能够观察、思考、反思和行动。它们通过特定的行为函数,如_think()_observe()_publish_message()等进行操作。这种认知建模使得代理能够成为主动学习者,能够适应和演化。

  1. 观察:代理扫描环境并将关键数据纳入记忆。
  2. 思考和反思:通过_think()函数,在采取行动之前角色进行深思熟虑。
  3. 广播消息:代理使用_publish_message()来分享当前任务状态和相关行动记录。
  4. 知识沉淀和行动:代理评估传入的消息,并在决定下一步行动之前更新其内部存储库。
  5. 状态管理:通过任务锁定和状态更新等功能,角色可以顺序处理多个动作,模拟真实的人类协作。

MetaGPT的代码审查机制

代码审查是软件开发生命周期中的关键组成部分,但在一些流行的框架中却缺失。MetaGPT和AgentVerse都支持代码审查功能,但MetaGPT更进一步。它还结合了预编译执行,有助于早期错误检测,从而提高代码质量。考虑到编码的迭代性质,这个特性不仅仅是一个附加功能,而是任何成熟的开发框架的要求。

在多个任务上进行的定量实验表明,MetaGPT在几乎每个场景中都优于其竞争对手。Pass@1是衡量框架在单次迭代中生成准确代码的能力的指标。这个指标在实际环境中更真实地反映了框架的实用性。更高的Pass@1率意味着更少的调试和更高的效率,直接影响开发周期和成本。与CodeX、CodeT甚至GPT-4等其他先进的代码生成工具相比,MetaGPT表现出色。该框架在HumanEval和MBPP基准测试中实现了81.7%至82.3%的Pass@1率。

MetaGPT:目前最佳AI代理的完整指南 四海 第4张

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

该框架还使用较少的标记和计算资源,在只有传统软件工程成本的一小部分的情况下实现了高成功率。数据显示,MetaGPT每个项目的平均成本仅为$1.09,这只是开发人员在执行相同任务时收费的一小部分。

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

NPM、Python安装

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

注意:

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

Docker 安装

对于那些喜欢容器化的人来说,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 "创建一个简单且交互式的基于命令行的石头、剪刀和布游戏" --code_review True

使用您的 OpenAI API 密钥配置 MetaGPT

在初始设置完成后,您需要将 MetaGPT 与您的 OpenAI API 密钥集成。以下是所需步骤:

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

请记住保护好您的 OpenAI API 密钥。永远不要将其提交到公共代码库或与未经授权的人分享。

用例说明

我给出了开发一个基于命令行的石头、剪刀和布游戏的目标,MetaGPT 成功执行了这个任务。

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

MetaGPT 演示运行

MetaGPT 提供了一个使用 Markdown 编写的系统设计文档,Markdown 是一种常用的轻量级标记语言。该 Markdown 文件包含了 UML 图表,从而提供了对架构蓝图的细粒度视图。此外,API 规范详细描述了 HTTP 方法、端点、请求/响应对象和状态码。

MetaGPT:目前最佳AI代理的完整指南 四海 第5张

MetaGPT 输出 – 系统设计 Markdown

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

这不仅极大地减少了规划中的手动工作量,而且加快了决策过程,确保您的开发流程保持敏捷。通过 MetaGPT,您不仅可以自动化代码生成,还可以自动化智能项目规划,从而在快速应用开发中提供竞争优势。

结论:MetaGPT——革新软件开发

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

以下是本文的主要观点:

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

Your email address will not be published. Required fields are marked *