当前位置: 首页 > news >正文

AI Agent工程师认证-学习笔记(3)——【多Agent】MetaGPT

学习链接:【多Agent】MetaGPT学习教程

源代码链接(觉得很好,star一下):GitHub - 基于MetaGPT的多智能体入门与开发教程

MetaGPT链接:GitHub - MetaGPT

前期准备

        1、获取MetaGPT

(1)使用pip获取MetaGPT

pip install metagpt==0.6.6

#或者在国内加速安装镜像
#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt==0.6.6

(2)通过github仓库获取MetaGPT

#如果要获取指定版本的MetaGPT,可以自行选择不同的分支与tag
git clone https://github.com/geekan/MetaGPT.git
cd /your/path/to/MetaGPT
pip install -e .

        2、配置MetaGPT

 (以配置ChatGPT为例)

        与我们在 chatgpt 官网使用的所见即所得的 chat 功能不同,在使用metagpt时我们需要确保自己能够使用 openai的 api 服务,OpenAI API 服务是付费的,每一个开发者都需要首先获取并配置 OpenAI API Key,才能在自己构建的应用中访问 ChatGPT。

命令行执行:

export OPENAI_API_KEY="sk-..."  填入你自己的OpenAI API key
export OPENAI_API_MODEL="intended model" 选择你要使用的模型,例如:gpt-4, gpt-3.5-turbo

或者在代码中使用os库来将自己的OpenAI API key设定为环境变量来使用OpenAI API 服务:

import os
os.environ["OPENAI_API_KEY"] = "sk-..."  # 填入你自己的OpenAI API key
os.environ["OPENAI_API_MODEL"] = "intended model" # 选择你要使用的模型,例如:gpt-4, gpt-3.5-turbo
os.environ["OPENAI_API_BASE"] = "https://api.openai-forward.com/v1"

同时MetaGPT还提供了利用config.yaml文件来配置OpenAI API服务的方法

  1. 在当前项目的工作目录下,新建一个文件夹config并在该文件夹下添加一个config.yamlkey.yaml文件

  2. 拷贝样例配置 config.yaml 中的内容到你的新文件中。

  3. 在新文件内设置自己的OPENAI API KEY配置

OPENAI_API_KEY:"sk-..."
YOUR_API_KEYOPENAI_API_MODEL:"intended model" # gpt-4, gpt-3.5-turbo, etc.

        记住:如果你按照通过github仓库获取MetaGPT,config/config.yaml已经存在于目录中。只需要直接进行配置,或拷贝一个新文件 config/key.yaml 并进行配置。 这样你就不会因为不小心提交了API KEYT而导致泄露。

MetaGPT将会按照下述优先级来读取你的配置:

config/key.yaml > config/config.yaml > environment variable

        我们也可以配置其他LLM大模型的API,这里只是以ChatGPT为例进行配置。 

        3、首次尝试 

        代码中创建了两个角色,分别代表民主党候选人Alex和共和党候选人Bob。他们将在一个名为"US election live broadcast"的环境中进行对话。您的代码还定义了两个动作,分别是"AlexSay"和"BobSay",以及一个团队,其中包括了这两个角色。目标是模拟两位候选人在直播环境中就气候变化这一话题进行对话。这将有助于模拟候选人在现实选举中的表现和对话。 

import asyncio

from metagpt.actions import Action
from metagpt.environment import Environment
from metagpt.roles import Role
from metagpt.team import Team

action1 = Action(name="AlexSay", instruction="Express your opinion with emotion and don't repeat it")
action2 = Action(name="BobSay", instruction="Express your opinion with emotion and don't repeat it")
alex = Role(name="Alex", profile="Democratic candidate", goal="Win the election", actions=[action1], watch=[action2])
bob = Role(name="Bob", profile="Republican candidate", goal="Win the election", actions=[action2], watch=[action1])
env = Environment(desc="US election live broadcast")
team = Team(investment=10.0, env=env, roles=[alex, bob])

asyncio.run(team.run(idea="Topic: climate change. Under 80 words per message.", send_to="Alex", n_round=5))

智能体综述及多智能体框架介绍

        1、AI Agent体系介绍

(1)什么是AI Agent

         Agent(智能体) = 一个设置了一些目标或任务,可以迭代运行的大型语言模型。这与大型语言模型(LLM)在像ChatGPT这样的工具中“通常”的使用方式不同。在ChatGPT中,你提出一个问题并获得一个答案作为回应。而Agent拥有复杂的工作流程,模型本质上可以自我对话,而无需人类驱动每一部分的交互。

——Logan Kilpatrick,OpenAI 开发者关系负责人

        ChatGPT接收单一查询的输入并返回输出,它一次不能完成超过一个任务。而AI Agent则可以自驱的定义工作流程并规划任务进行解决。 

        在 LLM 支持的自主Agent系统中,LLM 充当Agents的大脑,并辅以几个关键组成部分如下:

①规划
  • 子目标和分解:Agents将大型任务分解为更小的、可管理的子目标,从而能够有效处理复杂的任务。

  • 反思和完善:Agents可以对过去的行为进行自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,从而提高最终结果的质量。

②记忆
  • 短期记忆:我认为所有的上下文学习都是利用模型的短期记忆来学习。

  • 长期记忆:这为Agents提供了长时间保留和回忆(无限)信息的能力,通常是通过利用外部向量存储和快速检索来实现。

③工具使用
  • Agents学习调用外部 API 来获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等。

(2)智能体用例

 ①概念验证Agent-BabyAGI

Baby AGI 是一个 python 脚本,它使用 OpenAI 和 Pinecone API 以及 LangChain 框架来创建、组织、确定优先级以及执行任务。Baby AGI 背后的过程是,它将使用基于上一个任务结果的预定义目标创建一个任务。

这是通过使用 OpenAI 的自然语言处理 (NLP) 功能实现的,该功能允许系统根据目标创建新任务。它使用 Pinecone 来存储该特定任务的结果并检索上下文,并使用 LangChain 框架来处理决策过程。

②生成Agents模拟
  • 记忆流:是一个长期记忆模块(外部数据库),用自然语言记录智能体经验的完整列表。

  • 检索模型:根据相关性、新近度和重要性,呈现上下文以告知Agents的行为

  • 反射机制:随着时间的推移将记忆合成更高层次的推论,并指导智能体未来的行为。它们是对过去事件的更高层次的总结

  • 规划与反应:将反思和环境信息转化为

③应用层的Moe-多人求解

(3)更多仓库和产品 

        2、多智能体框架介绍

①什么是MetaGPT
②经典案例:软件公司
③更多关于MetaGPT
④其他多智能体框架

单智能体开发

多智能体开发 

相关文章:

  • 2025蓝桥杯省赛C++B组解题思路
  • 月之暗面视觉模型(Kimi-VL)论文速读
  • OBS SDK 中 ffmpeg_muxer 与 ffmpeg_output 的区别与使用 QSV 编码器的正确方式
  • 《前端面试题之 CSS篇(第一集)》
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据导出
  • data_analysis13
  • 神经网络背后的数学原理
  • 探索 Python 的 functools 模块:缓存、属性缓存与 LRU 缓存
  • Day22 -php开发01--留言板+知识点(超全局变量 文件包含 数据库操作 第三方插件)
  • 可配置多功能门芯片的12种用法推导——基于74LVC1G97芯片(附1G98、1G57、1G58、1G99用法)
  • SpringBoot3快速入门笔记
  • 漏洞报告:多短视频平台时间差举报滥用漏洞
  • Python实例题:使用Python生成分形图片
  • java基础 运算符
  • android display 笔记(十三)surfcaeflinger的DEQUEUED、QUEUED
  • android中dp和px的关系
  • 高阶函数/柯里化/纯函数
  • 常用图像滤波及色彩调节操作(Opencv)
  • 改进神经风格迁移
  • 巧用递归算法:破解编程难题的“秘密武器”
  • 怀化网站推广/建网站公司哪里好
  • 深圳市龙华区网站建设/论坛推广的步骤
  • 建设网站的骗局是什么/广告推广语
  • fm网站开发/百度app官方下载安装
  • bootstrap3网站模板/原版百度
  • 产品推广介绍/优化网站排名的方法