在 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 智能操作系统也正在探索利用这些新兴技术,来实现"助天下人尽享智能物联服务"。如果你也认可我们的想法,欢迎关注我们加入鼎道生态~