7天狂揽 1.3w star 的 MetaGPT,他们的目标让软件公司为之一惊

在 AI 产品爆炸的今天,拥有各种本领的 AI 产品层出不穷,但 MetaGPT 的出现仍然显的格外耀眼,其可以实现只输入单一 prompt,就可以输出需求分析、需求文档、技术架构、最终代码等等产物,这相当于一个开发团队的输出成果,为何 MetaGPT 拥有此等本事,且听我娓娓道来。

图片

MetaGPT 是一个多代理协同的元编程框架(META PROGRAMMING FOR MULTI-AGENT COLLABORATIVE FRAMEWORK),读起来感觉有些拗口?

那你需要首先了解一下什么是多代理的语言模型,这里先容我讲一个故事:

想必大家都用过 ChatGPT 或者和它类似的生成式 AI 程序,他就像一个知识丰富的老者,每当你向他进行提问时,或者换句话说向他输入一个 prompt 时,他都会用他渊博的知识对你进行解答,让我们带入一个场景,某一天你想让 ChatGPT 给你生成一份低脂健康菜谱,当你输入相应的提示词时,它给你返回了所需要的食材,但你突然发现有一道菜你不会做,这时,你又需要问它关于这道菜的制作流程,等你知道这道菜的制作流程后,你突然发现有一个食材你不知道哪里有卖,这时你还需要查找该食材的购买方法... ...

看到这里,想必聪明的你一定想到了,既然 AI 懂得这么多,为什么还需要一次又一次的进行询问呢?它自己应该可以分饰多个角色,可以既是一个营养师,也是一个大厨,还可以是一个采购专家,而我们只需要提出一个需求,这些 AI 角色就可以各司其职帮我解决问题。

没错!这就是拥有多个代理的语言模型,像营养师、大厨、采购专家,它们就是一个个的代理,它们经过专属领域知识的训练,是各自领域的专家,重要的是他们之间懂得协作,可以合作解决问题。这就是 MetaGPT 要做的事情,只不过它专攻的是软件领域,培养的专家是产品经理,项目经理,架构师和开发工程师,就和现实的软件公司一样,他想通过这些 AI 专家来干掉软件公司!

图片

说了这么多,接下来我们来了解一下 MetaGPT 是如何实现多代理间的协同的:

图片

图片

MetaGPT 的框架主要分为两个层级,分别是 基础组件层(Foundation Components Layer),协同层(Collaborations Layer),让我们对这两个层级分别进行介绍:

图片

基础组件层(Foundation Components Layer):基础组件,顾名思义,其是为上层提供基础能力的,包括 AI 代理的角色设置,代理角色可以执行的动作,代理角色们所处的环境以及共享的记忆等

图片

协同层(Collaborations Layer)是 MetaGPT 的核心功能所在,包含其两大法宝分别为 封装工作流程(Encapsulating Workflows),知识共享(Knowledge Sharing)。

  • 封装工作流程(Encapsulating Workflows):

工作流是人们对从事工作协同的总结和提炼,是来自人类社会的智慧,我们可以将总结和提炼出的流程称作标准化操作流程(Standardized Operating Procedures),简称 SOPs。

对于标准化操作流程来说,我们需要关心的是任务拆解包含哪些流程,由哪些角色参与了流程,以及每一步流程的标准化输出是什么。

  • 知识共享(Knowledge Sharing):

可以理解为不同角色间存在着一个消息中心,他就像是这些角色的司令,在统领着他们,把控整个流程。

它负责实现不同角色的消息传递,并且也负责通知在当前流程轮到那个角色需要干活了。

图片

在 MetaGPT 中每一个角色就相当于一个 AI 代理,你需要填写它的名称,职业,目标,以及对它的约束条件,角色构建完成后就会根据 SOPs 给它分配到相应的流程中,就可以让它开始上班了!

那么 MetaGPT 中软件开发的 SOPs 是什么样的呢?

图片

对于用户输入的需求,首先由产品经理角色进行处理,该角色的标准化输出包括 :

  • 产品目标

  • 用户故事

  • 竟品分析

  • 需求分析

  • 需求池

这些标准化的输出内容会进入共享知识库,从而让下一节点的角色可以学习。接下来由架构师的角色进行架构设计,该角色的标准化输出包括:

  • 程序调用图(时序图,类图)

  • 程序文件列表

紧接着就由项目经理进行项目分析,该角色的标准化输出包括:

  • 任务分析

  • 任务列表

  • 逻辑分析(即每个文件的作用)

完成角色的标准化输出后,就可以由工程师进行开发,这时,该角色的标准化输出为每一个文件的代码内容。最后一个步骤则是 QA 环节,测试工程师会 review 每一个文件的代码,最终输出程序代码本体。

从上述流程来看, MetaGPT 相当还原一个标准的程序开发流程,通过该流程串联其每一个 AI 代理角色进行工作,简直就像是一个程序生成车间!

图片

说到这里你有没有很心动,也想试用一下 MetaGPT,当然没问题,MetaGPT 是完全开源的,你可以在 Github Repo 上来访问其使用方法,这里我只做一个简单的介绍

  • 确保在你的环境中存在 node 和 npm,并且使用 npm 安装 mermaid-cli :

sudo npm install -g @mermaid-js/mermaid-cli

  • 确保你的环境中存在 python,并且版本为 v3.9;

  • 克隆 MetaGPT 到本地,并且安装依赖:

git clone https://github.com/geekan/metagptcd metagptpip install -e.

  • 设置你的 AI token,通常使用 ChatGPT 4.0 API token :

// config/config.yamlOPENAI_API_KEY: "your-openai-token"

  • 现在你就可以尝试输入你的 prompt :

# Run the scriptpython startup.py "Write a cli snake game"

运行后代码以及相应的设计文件会生成在 workspace 目录下,接着就可以运行生成后的代码:

# workspace/your-projectpython main.py

图片

就现阶段来说, MetaGPT 还远远不能替换掉软件公司,因为软件开发是一个不断迭代改进的过程,而只通过一句话的 prompt 还是远远不能生成一个完整的软件,其还需要增加更多可以对程序进行设计的节点,例如反复的需求讨论,以及增加 ui 设计,数据库设计等流程,AI 自动化的程序设计还有很长的路要走。

但它的出现也向我们传递了一个信号,即:这是一个程序开发走向工业化的时代,而像 MetaGPT 这样的多代理协同编程框架必然将如同蒸汽机一样,带领我们打开新时代的大门。

那么,如何在变化中求生存,如何在颠覆中找到新风口呢?鼎道智联一直在探索新兴科技技术,并且,DingOS 智能操作系统也正在探索利用这些新兴技术,来实现“助天下人尽享智能物联服务”。如果你也认可我们的想法,欢迎关注我们加入鼎道生态~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160575.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux:【Kafka四】集群介绍与单机搭建

目录 环境简介 一、搭建kafka集群 1.1、复制出两个kafka的配置文件 1.2、修改配置文件中的如下属性 二、启动kafka集群 三、可校验kafka三个节点是否均启动成功 四、查看集群中主题的分区和副本 4.1、新建一个包含了分区和副本的主题 4.2、查看该主题的详细信息 五、…

Android查看签名信息系列 · 使用逆向分析工具JadxGUI获取签名

前言 Android查看签名信息系列之使用逆向分析工具JadxGUI获取签名,通过这种方式,可以获取到的签名信息包括:MD5、SHA1、SHA-256、公钥(模数)等信息 实现方法 1、进入JadxGUI目录下的lib文件夹内,找到jadx-gui-1.4.7.jar文件 2、…

计算机网络第2章-HTTP和Web协议(2)

Web和HTTP 一个新型应用即万维网(World Wide Web)Web。 HTTP概况 Web的应用层协议是超文本传输协议(HTTP),它是Web的核心。 HTTP由两个程序实现:一个用户程序和一个服务器程序。 Web页面(W…

VSCode 调试 u-boot

文章目录 VSCode 调试 u-boot调试配置启动 u-boot 脚本调试界面重定向之后继续调试参考 VSCode 调试 u-boot 调试配置 参考 qemu基础篇——VSCode 配置 GDB 调试 要想调试 u-boot 只需要再添加一个 u-boot 的配置即可 {"version": "0.2.0","conf…

如果你有一次自驾游的机会,你会如何准备?

常常想来一次说走就走的自驾游,但是光是想想就觉得麻烦的事情好多:漫长的公路缺少娱乐方式、偏僻拗口的景点地名难以导航、不熟悉的城市和道路容易违章…… 也因为如此,让我发现了HUAWEI HiCar这个驾驶人的宝藏! 用HUAWEI HiCar…

科研上新 | 第2期:可驱动3D肖像生成;阅读文本密集图像的大模型;文本控制音色;基于大模型的推荐智能体

编者按:欢迎阅读“科研上新”栏目!“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里,你可以快速浏览研究院的亮点资讯,保持对前沿领域的敏锐嗅觉,同时也能找到先进实用的开源工具。 本期内容速览 …

16 个 Linux 最佳 Markdown 编辑器(2)

对于初学者来说,Markdown 是一个用 Perl 编写的简单且轻量级的工具,它使用户能够编写纯文本格式并将其转换为有效的 HTML(或 XHTML)。它是一种易于阅读、易于编写的纯文本语言,也是一种用于文本到 HTML 转换的软件工具…

操作系统四大特征

OS四大特征 1.OS的并发性(同一时间间隔内执行和调度多个程序的能力) 宏观上,处理机同时执行多道程序 微观上,处理机在多道程序间高速切换(分时交替执行),微观上并非是同时执行的。 关注单个处理机同一时间段内处理任…

IOS课程笔记[4-5] 计算器实现与更换主题 的使用

计算 控件介绍 文本输入 设置键盘格式为NumberPad字符串与数字转换方法 NSInteger num2 [str2 integerValue]; 弹窗控件 UIAlertController 新版本弹窗 UIAlertController *alert [UIAlertController alertControllerWithTitle:"error" message:"输入有…

数据结构-----红黑树的插入

目录 前言 红黑树的储存结构 一、节点旋转操作 左旋(Left Rotation) 右旋(Right Rotation) 二、插入节点 1.插入的是空树 2.插入节点的key重新重复 3.插入节点的父节点是黑色 4.插入节点的父节点是红色 4.1父节点是祖父…

软考-网络安全体系与网络安全模型

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全体系相关安全模型 BLP机密性模型 BLP(Biba-格雷泽-麦克拉伦&#x…

嵌入式平台的电源总结

本文引注: https://mp.weixin.qq.com/s/PuSxHDFbJjjHEReukLSvyg 1.AC的定义 Alternating Current(交流)的首字母缩写。AC是大小和极性(方向)随时间呈周期性变化的电流。电流极性在1秒内的变化次数被称为频率,以Hz为单位…

Sql Server 数据库中的所有已定义的唯一约束 (列名称 合并过了)

查询Sql Server Database中的唯一约束 with UniqueBasic as (SELECTtab.name AS TableName, -- 表名称idx.name AS UniqueName, -- 唯一约束的名称col.name AS UniqueFieldName -- 唯一约束的表字段FROMsys.indexes idxJOIN sys.index_columns idxColON (idx.object_id idxCo…

【分享Python代码】图片转化为素描画

哈喽,大家好,我是木易巷~ 代码生成效果图 原图: 生成图: 原图: 生成图: 准备工作 Python编程首先需要安装环境,下面是详细步骤: 会的小伙伴可自行跳过,代码在最后 1…

spring boot RabbitMq基础教程

RabbitMq 由于RabbitMQ采用了AMQP协议,因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息,都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不同语言的客户端。 但是,RabbitMQ官方提供的Java客户端编码相对复杂,一般…

idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

项目场景: 提示:这里先简述项目创建后遇到的问题和解决方案: idea 使用 Spring Initializer 创建springboot项目后, 有以下问题: ① 右键没有Run ② 右键New新建文件发现无Java Class选项 然后解决掉 ①② 问题后出…

总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例

总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例 一方法调用顺序是按照英文字母顺序从A-Z二该示例可以用作servlet中request的API参考,从而知道该如何获取哪些路径参数等等三Servlet的API版本5.0.0、JSP的API版本:…

WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)

首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。 /*** 媒体中心上传 js **/ jQuery(document).ready(function($){var mediaUploader;$(#upload_image_but…

软件工程与计算总结(十七)软件构造

一.概述 1.定义 软件构造是以编程为主的活动,类似于软件实现。但软件构造又不止编程这么简单,除了核心的编程任务之外,还设计详细设计(数据结构与算法设计)、单元测试、集成与集成测试以及其他活动~ 2.软件构造是设计…

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制) 目录 多维时序 | MATLAB实现SSA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描…