MetaGPT多智能体配置:用Team类搭一个软件公司角色团队
MetaGPT 的多智能体配置,本质是写一个继承 Team 的入口文件,把产品经理、架构师、工程师等 Role 按顺序加进去,再交给 Team.invest() 或 Team.run() 驱动协作。
下面按“能跑起来”的顺序讲清楚准备、配置、运行和排错。
先确认运行环境和模型凭据
MetaGPT 是 Python 项目,建议使用 Python 3.10 或 3.11,并单独建虚拟环境,避免和系统里其它包冲突。
python -m venv metagpt-env
source metagpt-env/bin/activate # Windows 用 metagpt-env\Scripts\activate
pip install metagpt
模型凭据通过环境变量传入,不要写死在代码里。
以 OpenAI 兼容接口为例:
export OPENAI_API_KEY="你的Key"
export OPENAI_BASE_URL="https://api.openai.com/v1"
如果你用的是其它兼容 OpenAI 协议的模型服务,
把 OPENAI_BASE_URL 换成服务商提供的地址即可。关键点:
Key 和 Base URL 必须对应同一个服务商,
否则会报 401 或 404。
用 Team 类组织多智能体角色
MetaGPT 内置了 ProductManager、Architect、ProjectManager、Engineer 等角色,对应软件公司的标准分工。
最小可运行入口文件 main.py 如下:
import asyncio
from metagpt.team import Team
from metagpt.roles import ProductManager, Architect, ProjectManager, Engineer
async def main():
team = Team()
team.hire([
ProductManager(),
Architect(),
ProjectManager(),
Engineer(n_borg=2), # 两个工程师并行
])
team.invest(investment=3.0) # 预算,单位美元,按模型计费估算
await team.run(idea="做一个命令行待办事项工具")
if __name__ == "__main__":
asyncio.run(main())
几个配置项需要理解:
team.hire([...]):把角色加入团队,列表顺序就是大致执行顺序。Engineer(n_borg=2):n_borg表示工程师实例数量,适合需要并行写代码的场景;新手先用 1 个跑通。team.invest(investment=3.0):设置预算上限,防止模型调用失控消耗。team.run(idea=...):传入需求描述,团队按 SOP 推进。
运行:
python main.py
预期结果是终端依次输出产品经理的需求文档、架构师的系统设计、项目经理的任务拆分和工程师的代码文件,产物默认落在项目工作目录下。
常见报错与避坑
报 401 或提示 API Key 无效:先确认环境变量在当前 shell 生效,可用 echo $OPENAI_API_KEY 检查;
Windows PowerShell 用 $env:OPENAI_API_KEY="..."。
依赖冲突:MetaGPT 依赖较多,不要装在系统全局 Python 里。
如果 pip install metagpt 报版本冲突,先升级 pip,再在干净虚拟环境重装。
模型输出格式不符合预期:部分兼容模型对结构化输出支持不完整,可能出现解析失败。
优先使用官方文档推荐支持的模型,或检查 Base URL 是否指向正确的兼容端点。
预算耗尽提前停止:investment 设得太小会导致流程中断,可适当调大,但不要一次设置过高。
不要把 Key 提交到 Git:用 .env 或 shell 环境变量管理,.gitignore 里排除 .env。
验证多智能体是否真的在协作
跑完后检查两点:一是工作目录下是否生成了需求、设计、代码等分阶段产物;
二是终端日志里是否出现不同角色名依次发言。
如果只有单个角色输出,通常是 hire 列表里角色没加全,或 run 的 idea 描述过于模糊导致流程提前结束。
建议第一次用简单需求(如“命令行待办工具”)验证流程,确认角色协作正常后,再换成更复杂的项目描述。
MetaGPT 多智能体配置的重点不在参数多少,而在角色顺序、预算和需求描述三者配合是否合理。