MetaGPT:让你的 AI 团队个性十足

在之前的教程中,我们学习了如何整合开源 LLM,让你的 AI 团队更强大。但你是否想过,如何让团队中的每个成员都拥有独特的个性和能力?

MetaGPT 允许你为不同的角色和动作指定不同的 LLM,让你的 AI 团队更加灵活和真实。

个性化配置

MetaGPT 提供了两种方式来定制 LLM 配置:

  1. 默认配置: MetaGPT 提供了一些默认配置,你可以直接使用。
  2. 自定义配置: 你可以在 ~/.metagpt 目录中创建自定义配置文件。

示例:

假设你想为 GPT-4、GPT-4-turbo 和 GPT-3.5-turbo 创建配置:

from metagpt.config2 import Config

# 示例配置:gpt-4、gpt-4-turbo 和 gpt-3.5-turbo
gpt4 = Config.from_home("gpt-4.yaml")  # 从 `~/.metagpt` 目录加载 `gpt-4.yaml` 文件中的自定义配置
gpt4t = Config.default()  # 使用 `config2.yaml` 文件中的默认配置 (模型: "gpt-4-turbo")
gpt35 = Config.default()
gpt35.llm.model = "gpt-3.5-turbo"  # 将模型修改为 "gpt-3.5-turbo"

分配配置

创建配置后,你可以将它们分配给不同的角色和动作。

优先级:

  • 动作配置 > 角色配置 > 全局配置 ( config2.yaml 文件中的配置)

示例:

假设你想要创建一个模拟美国大选直播的环境,包含三个角色:

  • A: 民主党候选人
  • B: 共和党候选人
  • C: 选民
from metagpt.roles import Role
from metagpt.actions import Action

# 创建三个动作:a1、a2 和 a3。将 gpt4t 的配置分配给 a1。
a1 = Action(config=gpt4t, name="Say", instruction="用感情表达你的观点,不要重复")
a2 = Action(name="Say", instruction="用感情表达你的观点,不要重复")
a3 = Action(name="Vote", instruction="投票给候选人,并说明你为什么投票给他/她")

# 创建三个角色:A、B 和 C。分别代表“民主党候选人”、“共和党候选人”和“选民”。
# 虽然 A 在角色配置中配置了 gpt4,但由于动作配置设置,它将使用模型 gpt4t 的配置来执行 a1。
A = Role(name="A", profile="民主党候选人", goal="赢得选举", actions=[a1], watch=[a2], config=gpt4)
# 由于 B 在角色配置中配置了 gpt35,而 a2 没有动作配置,B 和 a2 都将使用角色配置,即模型 gpt35 的配置。
B = Role(name="B", profile="共和党候选人", goal="赢得选举", actions=[a2], watch=[a1], config=gpt35)
# 由于 C 没有设置配置,a3 也没有设置配置,C 和 a3 都将使用全局配置,即模型 gpt4 的配置。
C = Role(name="C", profile="选民", goal="投票给候选人", actions=[a3], watch=[a1, a2])

团队交互

完成配置后,你可以创建一个团队,并让它们进行交互。

示例:

import asyncio
from metagpt.environment import Environment
from metagpt.team import Team

# 创建一个名为“美国大选直播”的环境
env = Environment(desc="美国大选直播")
team = Team(investment=10.0, env=env, roles=[A, B, C])
# 运行团队,你应该能观察到它们之间的协作
asyncio.run(team.run(idea="主题:气候变化。每条消息不超过 80 个字。", send_to="A", n_round=3))
# await team.run(idea="主题:气候变化。每条消息不超过 80 个字。", send_to="A", n_round=3) # 如果在 Jupyter Notebook 中运行,使用此代码行

总结

本教程展示了如何使用 MetaGPT 为不同的角色和动作指定不同的 LLM,让你的 AI 团队更加灵活和真实。通过个性化配置,你可以让你的 AI 团队更加符合你的需求,并创造更加沉浸式的交互体验。

更多学习资源

发表评论