Learn Prompt-Prompt 高级技巧:MetaGPT

2023-09-21 09:00:00

MetaGPT是一项引起广泛关注的研究成果,它引入了一个将人工工作流程与多智能体协作无缝集成的框架。通过将标准化操作(SOP) 程序编码为提示,MetaGPT确保解决问题时采用结构化方法,从而减少出错的可能性。

🎉开始阅读前,如果你对其他文章感兴趣,可以到欢迎页关注我们!「卡尔的AI沃茨」开源中文社区实时获得后续的更新和最新的教程🎉

metagpt1

当前Agent的解决方案存在一个问题:尽管这些语言模型驱动的 Agent 在简单的对话任务上取得了显著进展,但在面对复杂任务时,LLM 会陷入困境,仿佛看到了并不存在的事物(幻觉)。当将这些 Agent 串联起来时,就会引发混乱的连锁反应。

现在MetaGPT引入了标准化操作程序。这些操作程序就像作弊码一样,用于顺利协调工作。它们告诉代理们发生了什么事,以有条不紊的方式指导他们。借助这些操作程序,代理几乎可以像领域专家一样熟悉他们的工作,并验证输出以避免错误。就像高科技流水线一样,每个代理都扮演着独特的角色,共同理解复杂的团队合作。

为什么 MetaGPT 很重要

在人工智能驱动的解决方案正在成为常态的世界中,MetaGPT 提供了一个全新的视角。这就是它掀起波澜的原因:

  • 出众的解决方案:借助SOP,与其他 Agents 相比,MetaGPT 已被证明可以生成更一致和正确的解决方案。
  • 多样化的角色分配:为LLM分配不同角色的能力确保了解决问题的全面性。

MetaGPT 软件开发过程

metagpt

  1. 需求分析:收到需求后,该过程开始。这一阶段致力于明确软件所需的功能和要求。
  2. 扮演产品经理:产品经理以需求和可行性分析为基础,开启整个流程。他们负责理解需求,并为项目制定明确的方向。
  3. 扮演架构师:一旦需求明确,架构师将为项目创建技术设计方案。他们负责构建系统接口设计,确保技术实现符合需求。在MetaGPT中,架构 Agent 可以自动生成系统界面设计,如内容推荐引擎的开发。
  4. 扮演项目经理:项目经理使用序列流程图来满足每个需求。他们确保项目按计划前行,每个阶段都得到适时执行。
  5. 扮演工程师:工程师负责实际的代码开发。他们使用设计和流程图,将其转化为功能完备的代码。
  6. 扮演质量保证(QA)工程师:在开发阶段结束后,QA工程师进行全面的测试。他们确保软件符合所需标准,不存在任何错误或问题。

Examples

举个例子,当你输入 python startup.py “Design a RecSys like Toutiao”,MetaGPT会为你提供多个输出,其中之一是有关数据和API设计的指导。

metagpt3

生成一个包含分析和设计示例的成本大约为0.2美元(使用GPT-4 API),而完整项目的成本约为2.0美元。通过这种方式,MetaGPT提供了低廉的解决方案,让你能够快速获取所需的信息和指导。

快速体验

目前MetaGPT暂无在线体验版本。这里我会列出docker的安装方法,最大程度减少大家安装面对的环境难度:

# Step 1: Download metagpt official image and prepare config.yaml
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 # Change the config

# Step 2: Run metagpt demo with container
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 "Write a cli snake game"
# You can also start a container and execute commands in it
docker run --name metagpt -d \
    --privileged \
    -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
    -v /opt/metagpt/workspace:/app/metagpt/workspace \
    metagpt/metagpt:v0.3.1
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"

将"Write a cli snake game"更换成你喜欢的命令试试吧!

更多安装的教程建议看官方指南

下一节我们将介绍AI小镇,欢迎关注「卡尔的AI沃茨」🧙

Reference

更多推荐

Dubbo3基础使用

1、Dubbo概述现在SpringCloudAlibaba比较火,用的比较多是吧,那dubbo是不是过时的呢?并不是的,以前有人把Dubbo和SpringCloud进行对比,其实两者是不同维度的,不能对比,dubbo就是一个rpc框架,SpringCloud是一个生态,里面包括很多组件,并且dubbo3也可以和Spri

【K8S系列】深入解析k8s网络插件—Weave Net

序言做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。文章标记颜色说明:黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点Kubernetes(k8s)是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s网络插件-WeaveNet相关知识希望这篇文章能让你不仅有一定的收

一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT

夕小瑶科技说原创编译|谢年年大语言模型LLM被视为一个巨大的知识库,它可以根据你提出问题或陈述的方式来提供答案。就像人类可能会根据问题的不同提供不同的答案一样,LLM也可以根据输入的不同给出不同的答案。因此,你的问题或陈述方式就显得非常重要。如何引导大语言模型给出更恰当的答案,是最近研究的热点。经常用到的方法如让大模型

Python基础学习笔记3

深度学习实践深度学习离不开编程深度学习离不开数学分析(高等数学)、线性代数、概率论等知识,更离不开以编程为核心的动手实践。Python编程语言无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架都提供Python接口,Python被用于数据预处理、定义网络模型、执行训练

2023华数杯数学建模A题2023华数杯A 题隔热材料的结构优化控制研究

问题1问题1:该问题需要建立一个数学模型来描绘织物整体热导率与单根纤维热导率之间的关系。这个模型需要考虑织物的结构(如纤维的排列、空隙大小和分布等)以及纤维和空隙中的空气对热传导的贡献。此外,我们需要根据织物的整体热导率来逆向推算出单根纤维的热导率。解题思路:使用热传导的基础理论,结合题目给出的纤维和空气的热导率,以及

单片机C语言实例:24、红外通讯

一、红外接收原理程序实例1:#include<reg52.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbitLED=P1^0;//用sbit关键字定义LED到P1.0端口,LED是自己任意定义且容易记忆的符号sbitIR_IN=P3^2;/*-------------------------

NLP(6)--Diffusion Model

目录一、Flow-BasedGeneralModel1、概述2、函数映射关系3、CouplingLayer4、Glow二、DiffusionModel1、概述2、前向过程3、反向过程4、训练获得噪声估计模型5、生成图片三、马尔科夫链一、Flow-BasedGeneralModel1、概述Flow-BasedGenera

浅谈C++|构造.析构函数篇

一对象的初始化和处理1.1构造函数和析构函数C++拥有构造函数和析构函数,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器提供的构造函数和析构函数是空实现。·构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编

socket编程|TCP

一.套接字概念套接字(Socket)是一种用于网络通信的编程接口,它提供了一种机制,使得不同计算机上的应用程序能够通过网络进行通信和交换数据。套接字可以看作是应用程序和网络之间的端点,它定义了应用程序与网络之间的通信规则和数据格式。通过套接字,应用程序可以创建、连接、发送和接收数据,实现与其他计算机上的应用程序进行通信

【Linux】进程控制

文章目录一.进程创建1.fork函数初识2.fork函数返回值3.写时拷贝4.fork常规用法5.fork调用失败的原因二.进程终止1.进程退出场景2.进程退出码3.进程正常退出(1)return退出(2)exit函数(3)_exit函数(4)return、exit和_exit之间的区别与联系4.进程异常退出三.进程等

http客户端Feign使用

一、RestTemplate方式调用存在的问题先来看我们以前利用RestTemplate发起远程调用的代码:Stringurl="http://userservice/user/"+order.getUserId();Useruser=restTemplate.getForObject(url,User.class);

热文推荐