likes
comments
collection
share

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

作者站长头像
站长
· 阅读数 47

大模型构建合作性的Agent,多代理框架MetaGpt

前言

MetaGPT 框架将标准的操作程序(SOP)与基于大模型的多智能体相结合,使用标准操作程序来编码提示,确保协调结构化和模块化输出。

MetaGPT 允许 Agent 在类似流水线的范式中扮演多中角色,通过结构化的 Agent 协作和强化领域特定专业知识来处理复杂任务,以提高在协作软件工程任务中解决方案的连贯性和正确性。

可能小伙伴们还很陌生,不太明白具体它能做什么,我下面通过具体例子详细来介绍分析一下。

我们以软件公司举例,我们拥有老板,产品经理,架构师,项目经理,工程师和测试角色。

每个角色各司其职处理复杂的任务,MetaGPT 就像是模仿了这些角色,通过一些需求,它可以输出用户故事,竞争分析,需求,数据结构,API,文档等。

然后 MetaGPT 通过精心安排来模拟软件公司的流程,它的核心理念就是 Code = SOP(Team),将 SOP 具体化应用于由大模型组建的团队。

  • 老板为项目设定需求,
  • 产品经理负责编写和修订产品需求文档,
  • 架构师负责编写和修订设计,审查产品需求文档和代码,
  • 项目经理编写任务,分配任务,审查产品需求文档,设计和代码,
  • 工程师编写代码,调试代码,
  • 测试工程师进行测试,确保软甲质量。

MetaGpt 描述的这个合作环境中,每个角色都为项目开发和完成作出贡献。

下面我们从头开始进入 MetaGPT

1.MetaGPT安装

pip install metagpt

安装完成之后执行下面命令生成 config2.yaml 配置文件

metagpt --init-config

然后打开如下目录:

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

打开配置文件,填写你的 openai key

  api_type: "openai"  # or azure / ollama / open_llm etc. Check LLMType for more options
  model: "gpt-4o-mini"  # or gpt-3.5-turbo-1106 / gpt-4-1106-preview
  base_url: ""  # or forward url / other llm url
  api_key: ""

当然不仅仅支持 openai ,还支持 claude智普科大讯飞谷歌千帆阿里通义 以及我们本地的 ollama 等多种大模型,它们的配置字段都一样,根据自己的需要进行配置。

ollama API:

  llm:
  api_type: 'ollama'
  base_url: 'http://127.0.0.1:11434/api'
  model: 'llama2'

阿里云 DashScope API

llm:
  api_type: dashscope
  api_key: 'YOUR_API_KEY'
  model: 'YOUR_ENDPOINT_NAME like qwen-max'

2:简单的团队协作处理任务

导入角色,架构师,开发工程师,产品经理,项目经理:

import asyncio
from metagpt.roles import (
    Architect,
    Engineer,
    ProductManager,
    ProjectManager,
)
from metagpt.team import Team

然后开始后续组建团队,配备代理,设定预算,并提供预先编写的小游戏的要求:

async def startup(idea: str):
    company = Team()
    company.hire(
        [
            ProductManager(),
            Architect(),
            ProjectManager(),
            Engineer(),
        ]
    )
    company.invest(investment=3.0)
    company.run_project(idea=idea)

    await company.run(n_round=5)

然后用 fire 库来简化命令行接口的创建:

async def main() :
    await startup(idea="Create a 2048 game")
#执行程序
if __name__ == "__main__":
    fire.Fire(main)    

运行python 文件 py .\game2048.py

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

可以看到这次的花费是3美元,并且由产品经理Alice(模拟角色)开始编写文档,content 里面是产品经理写的文档具体内容,我们可以大致看一下。

比如给定义游戏语言,定义游戏规则,定义游戏的特性等等,感兴趣的小伙伴可以详细了解。

接下来就是架构师登场:

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

架构师bob定义了项目结构,项目风格,接口规范。

然后项目经理开始做项目分析,需要用到的第三方库,中间件,每个代码文件里面的结构风格。

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

最后就是我们的开发人员开始具体的功能开发,对每个文件的补充,完成产品经理的需求。

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

我们可以打开我们的 workspace 工作目录,这是 MetaGPT 自动为我们生成的,里面存储了模拟角色为我们写的文档,分析,以及代码。

整个项目到此就生成好了。

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

可以尝试运行他试试,进入它的目录 game_2048, 执行 py main.py

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

由我们创建的公司一起完成的项目就成功啦!!

3:模拟花艺销售公司

我们定义三个角色,库管,运营以及客服,看看 metagpt 是怎么通过设定复杂的角色完成我们花艺销售的过程的。

import re
import fire
from metagpt.actions import Action, UserRequirement
from metagpt.logs import logger
from metagpt.roles import Role
from metagpt.schema import Message
from metagpt.team import Team
# 定义订单处理动作
class ProcessOrder(Action):
# 定义订单处理角色
class OrderProcessor(Role):
# 定义库存管理动作
class ManageInventory(Action):
# 定义库存管理角色
class InventoryManager(Role):
  
# 定义客服处理动作
class HandleCustomerService(Action):
# 定义客服处理角色
class CustomerServiceRepresentative(Role):
# 主函数
async def main(
    order_details: str = "A bouquet of red roses",
    investment: float = 3.0, #消费
    n_round: int = 5,        
    add_human: bool = False,
):
    logger.info(order_details)
    team = Team()
    team.hire(
        [
            OrderProcessor(),
            InventoryManager(),
            CustomerServiceRepresentative(is_human=add_human),
        ]
    )

    team.invest(investment=investment)
    team.run_project(order_details)
    await team.run(n_round=n_round)

# 执行程序
if __name__ == "__main__":
    fire.Fire(main)

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

大模型构建合作性的Agent,多代理框架MetaGptMetaGPT` 允许 `Agent` 在类似流水线的范式中扮演多

运行我们的文件,可以看到我们要的一束玫瑰,交给运营销售下单,然后库管检查库存,够得话就减一,确保库存数量足够,最后客服给我们反馈订购成功。

可以看到整个一个流程由 MetaGPT 模拟角色自主的完成。

4:总结

MetaGPT 在协作软件工程基准测试中表现出色,凸显了它在复杂实际挑战中的潜力。

Agent 框架和 生成式AI 的结合体正在开拓新的领域,并在解决复杂问题方面展现出巨大的潜力。

这些结合体的灵活性和可扩展性使得它们能够适应不断变化的业务需求,同时提高效率和生产力。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

转载自:https://juejin.cn/post/7410728037419302922
评论
请登录