🏗️ MetaGPT: 多智能体协同框架

首个AI软件公司的自然语言编程实现

源码级别解析 · 源码深度解析 · 多智能体协作 · SOP标准化
2026-05-06 | 每日技术深度解读

什么是MetaGPT?

首个AI软件公司框架
  • 将ChatGPT组成协作的实体,完成复杂任务
  • 提供软件公司的完整流程,包括产品经理、架构师、项目经理、工程师等角色
  • Code = SOP(Team):将SOP具体化并应用于由LLM组成的团队

MetaGPT将一个需求输入转化为用户故事/竞争分析/需求/数据结构/API/文档等完整输出

核心理念:软件公司架构

多智能体协同模式
  • 角色专业化:每个GPT担任特定角色
  • 流程标准化:严格按照软件公司SOP执行
  • 自动协作:通过消息传递机制实现智能体间协作
  • 产品交付:从需求到完整可运行代码

内部包含产品经理、架构师、项目经理、工程师等角色,提供完整的软件开发流程

快速开始:一行命令启动项目

CLI使用示例
  • metagpt "Create a 2048 game" - 创建2048游戏项目
  • metagpt --investment 5.0 - 设置投资金额
  • metagpt --n-round 8 - 增加轮次
  • metagpt --code-review - 启用代码审查

CLI提供了简单易用的接口,支持多种参数配置

Python API调用

from metagpt.software_company import generate_repo
from metagpt.utils.project_repo import ProjectRepo

# 生成项目仓库
repo: ProjectRepo = generate_repo("Create a 2048 game")
print(repo)  # 输出项目结构

# 使用数据分析师
import asyncio
from metagpt.roles.di.data_interpreter import DataInterpreter

async def main():
    di = DataInterpreter()
    await di.run("Run data analysis on sklearn Iris dataset, include a plot")

asyncio.run(main())

MetaGPT既可作为CLI工具使用,也可作为Python库集成到其他项目中

核心架构:Team类深度解析

团队管理核心
  • Team是MetaGPT的核心管理层,负责协调各个智能体
  • 继承自BaseModel,使用Pydantic进行数据验证
  • 支持序列化和反序列化,实现状态持久化
  • 管理投资预算和成本控制

Team类实现了智能体团队的全生命周期管理

Team类源码结构

class Team(BaseModel):
    """
    Team: 拥有一个或多个角色(智能体),SOP(标准操作程序),
    以及用于即时通讯的环境,致力于任何多智能体活动,
    例如协作编写可执行代码。
    """
    
    model_config = ConfigDict(arbitrary_types_allowed=True)
    
    env: Optional[Environment] = None
    investment: float = Field(default=10.0)
    idea: str = Field(default="")
    use_mgx: bool = Field(default=True)
    
    def hire(self, roles: list[Role]):
        """招聘角色进行协作"""
        self.env.add_roles(roles)
        
    def invest(self, investment: float):
        """投资公司,超出最大预算时抛出NoMoneyException"""
        self.investment = investment
        self.cost_manager.max_budget = investment
        
    async def run(self, n_round=3, idea="", send_to="", auto_archive=True):
        """运行公司直到目标轮次或没钱"""
        if idea:
            self.run_project(idea=idea, send_to=send_to)
            
        while n_round > 0:
            if self.env.is_idle:
                break
            n_round -= 1
            self._check_balance()
            await self.env.run()
            
        self.env.archive(auto_archive)

Team类提供了智能体团队的核心管理功能,包括招聘、投资、运行等

环境层:Environment与MGXEnv

消息传递环境
  • Environment:基础消息环境,支持多智能体通信
  • MGXEnv:增强环境,提供更多高级功能
  • 消息发布和订阅机制
  • 智能体状态管理和历史记录

环境层是智能体间通信的基础,负责消息的传递和路由

Environment核心功能

class Environment:
    """环境:智能体间消息传递的基础设施"""
    
    def __init__(self, context: Context = None):
        self.context = context or Context()
        self.roles: dict[str, Role] = {}
        self.history: list[Message] = []
        self._is_idle = True
        
    def add_roles(self, roles: list[Role]):
        """添加角色到环境"""
        for role in roles:
            self.roles[role.name] = role
            role.env = self
        
    def publish_message(self, message: Message, send_to: str = ""):
        """发布消息到环境"""
        self.history.append(message)
        # 路由消息到相应的角色
        
    async def run(self):
        """运行环境,处理消息"""
        # 检查是否有待处理消息
        # 激活相应的角色
        # 处理角色响应

Environment类实现了智能体间的消息传递和状态管理

角色系统:Role基类

智能体基础架构
  • Role是所有智能体角色的基类
  • 实现了观察者模式,可以观察特定类型消息
  • 支持记忆系统和上下文管理
  • 提供工具集成和动作执行框架

Role类为所有智能体提供了统一的基础架构

Role类核心结构

class Role(BaseModel):
    """角色:能够观察环境并执行动作的智能体"""
    
    name: str = ""
    profile: str = ""
    goal: str = ""
    constraints: str = ""
    
    env: Optional[Environment] = None
    memories: list[Memory] = []
    
    def __init__(self, **data):
        super().__init__(**data)
        self.rc = RoleContext()
        self.actions: dict[str, Action] = {}
        
    def _observe(self, obs: list[Message]) -> int:
        """观察环境中的消息"""
        count = 0
        for msg in obs:
            if self._can_handle(msg):
                self.memories.append(msg)
                count += 1
        return count
        
    async def _react(self) -> Message:
        """响应环境消息"""
        if not self.rc.todo:
            await self._think()
        return await self._act()
        
    async def _act(self) -> Message:
        """执行动作"""
        action = self.actions.get(self.rc.todo_action)
        if action:
            return await action.run(self.rc.todo)
        return Message(content="No action to execute")

Role类实现了智能体的核心行为模式:观察-思考-行动

产品经理角色深度解析

需求分析与产品设计
  • 继承自RoleZero,具有更高级的推理能力
  • 目标:创建产品需求文档或市场调研
  • 使用工具:Browser、Editor、SearchEnhancedQA
  • 动作链:PrepareDocuments → WritePRD

产品经理是软件开发流程的起点,负责将用户需求转化为产品需求文档

ProductManager实现细节

class ProductManager(RoleZero):
    """产品经理:负责产品开发和管理的角色"""
    
    name: str = "Alice"
    profile: str = "Product Manager"
    goal: str = "Create a Product Requirement Document or market research/competitive product research."
    constraints: str = "utilize the same language as the user requirements for seamless communication"
    
    tools: list[str] = ["RoleZero", "Browser", "Editor", "SearchEnhancedQA"]
    todo_action: str = "WritePRD"
    
    def __init__(self, **kwargs) -> None:
        super().__init__(**kwargs)
        if self.use_fixed_sop:
            self.enable_memory = False
            self.set_actions([PrepareDocuments(send_to=self), WritePRD])
            self._watch([UserRequirement, PrepareDocuments])
            self.rc.react_mode = RoleReactMode.BY_ORDER

ProductManager支持固定SOP模式,按照预定顺序执行动作

架构师角色设计

系统架构设计
  • 负责系统架构设计和技术方案制定
  • 分析产品需求,设计高可用架构
  • 制定技术规范和开发标准
  • 与产品经理和工程师紧密协作

架构师是技术决策的核心,确保系统的可扩展性和可维护性

架构师核心功能

class Architect(Role):
    """架构师:负责系统架构设计的角色"""
    
    name: str = "Bob"
    profile: str = "Architect"
    goal: str = "Design a system architecture based on product requirements"
    
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.set_actions([DesignArchitecture, DocumentArchitecture])
        self._watch([UserRequirement, WritePRD])
        
    async def _think(self) -> bool:
        """决定下一步行动"""
        if not self.rc.todo:
            # 检查是否有新的产品需求
            recent_messages = self.env.get_recent_messages(n=5)
            if any(msg.content_type == "user_requirement" for msg in recent_messages):
                self.rc.todo = "DesignArchitecture"
        return bool(self.rc.todo)

架构师通过观察产品需求文档来触发架构设计动作

工程师角色实现

代码编写与实现
  • Engineer2:新一代工程师角色,支持多文件编程
  • TeamLeader:团队负责人,协调开发进度
  • 支持代码审查和测试驱动开发
  • 遵循编码规范和最佳实践

工程师角色负责将设计转化为实际可运行的代码

Engineer2核心实现

class Engineer2(Role):
    """新一代工程师:支持多文件编程和代码审查"""
    
    name: str = "Charlie"
    profile: str = "Engineer2"
    goal: str = "Write clean, maintainable, and well-tested code"
    
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.set_actions([WriteCode, ReviewCode, RunTests])
        self._watch([DesignArchitecture, WriteCode])
        
    async def _act(self) -> Message:
        """执行代码编写动作"""
        if self.rc.todo == "WriteCode":
            # 根据架构设计文档编写代码
            design_doc = self._get_design_document()
            code_files = await self._generate_code(design_doc)
            return Message(content=f"Generated code: {len(code_files)} files")
        elif self.rc.todo == "ReviewCode":
            # 代码审查
            review_result = await self._review_code()
            return Message(content=f"Code review result: {review_result}")

Engineer2支持完整的开发流程,包括编写、审查和测试

数据分析师角色

数据分析与可视化
  • DataInterpreter:数据解释器,支持复杂数据分析
  • 集成sklearn、pandas等数据分析库
  • 自动生成数据可视化图表
  • 支持交互式数据分析流程

数据分析师角色扩展了MetaGPT在数据分析领域的能力

DataInterpreter实现

class DataInterpreter(Role):
    """数据解释器:复杂数据分析角色"""
    
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.set_actions([AnalyzeData, VisualizeData, GenerateReport])
        
    async def run(self, instruction: str):
        """运行数据分析任务"""
        # 解析用户指令
        task = self._parse_instruction(instruction)
        
        if task.type == "analysis":
            result = await self._analyze_data(task.data)
        elif task.type == "visualization":
            result = await self._visualize_data(task.data)
        
        return Message(content=result)

DataInterpreter支持自然语言指令驱动的数据分析

动作系统:Action基类

动作执行框架
  • Action是所有动作的基类,定义了动作的执行接口
  • 支持异步执行和结果返回
  • 可以访问智能体的记忆和上下文
  • 支持工具调用和外部服务集成

动作系统是MetaGPT执行具体任务的框架

Action基类实现

class Action(BaseModel):
    """动作:可执行的任务单元"""
    
    name: str = ""
    context: Optional[Context] = None
    
    async def run(self, context: Context, **kwargs) -> Message:
        """执行动作"""
        raise NotImplementedError
        
    def _get_relevant_memories(self, query: str, n: int = 5) -> list[Memory]:
        """获取相关记忆"""
        # 使用向量相似度搜索相关记忆
        embeddings = [self._embed_memory(mem) for mem in self.context.memories]
        query_embedding = self._embed_text(query)
        similarities = [self._cosine_sim(query_embedding, emb) for emb in embeddings]
        
        # 返回最相关的记忆
        top_indices = np.argsort(similarities)[-n:]
        return [self.context.memories[i] for i in top_indices]

Action类提供了动作执行的基础功能,包括记忆检索和上下文管理

关键动作实现

核心动作详解
  • UserRequirement:用户需求处理
  • WritePRD:产品需求文档生成
  • DesignArchitecture:架构设计
  • WriteCode:代码编写
  • ReviewCode:代码审查
  • RunTests:测试运行

这些动作构成了MetaGPT的核心执行流程

WritePRD动作实现

class WritePRD(Action):
    """编写产品需求文档"""
    
    name: str = "WritePRD"
    
    async def run(self, context: Context, requirement: str) -> Message:
        """生成产品需求文档"""
        # 获取相关市场信息和竞品分析
        market_research = await self._conduct_market_research(requirement)
        competitive_analysis = await self._analyze_competitors(requirement)
        
        # 生成PRD内容
        prd_content = self._generate_prd_content(
            requirement=requirement,
            market_research=market_research,
            competitive_analysis=competitive_analysis
        )
        
        # 保存PRD文档
        await self._save_prd(prd_content)
        
        return Message(content=prd_content, sent_to="Architect")

WritePRD动作整合了市场调研、竞品分析和产品规划

工具系统:Tool集成

外部工具集成
  • Browser:浏览器工具,支持网页浏览和信息抓取
  • Editor:编辑器工具,支持文件操作和代码编辑
  • SearchEnhancedQA:增强搜索,支持智能问答
  • GitRepository:Git仓库管理,支持版本控制

工具系统扩展了MetaGPT的能力边界,使其能够与外部系统交互

工具使用模式

class Browser:
    """浏览器工具:支持网页浏览和信息抓取"""
    
    def __init__(self):
        self.driver = webdriver.Chrome()
        
    async def search(self, query: str) -> str:
        """搜索网页信息"""
        self.driver.get(f"https://www.google.com/search?q={query}")
        results = []
        for result in self.driver.find_elements(By.CSS_SELECTOR, '.g'):
            title = result.find_element(By.CSS_SELECTOR, 'h3').text
            link = result.find_element(By.CSS_SELECTOR, 'a').get_attribute('href')
            results.append({"title": title, "link": link})
        return results
        
    async def visit_page(self, url: str) -> str:
        """访问页面并提取内容"""
        self.driver.get(url)
        content = self.driver.find_element(By.CSS_SELECTOR, 'body').text
        return content

Browser工具提供了强大的网页信息获取能力

记忆系统:Memory管理

上下文记忆管理
  • Memory类用于存储和管理智能体的记忆
  • 支持向量化和语义搜索
  • 自动管理和清理过期记忆
  • 支持记忆持久化和恢复

记忆系统是智能体保持上下文连续性的关键

Memory系统实现

class Memory(BaseModel):
    """记忆:存储智能体的经验和知识"""
    
    content: str
    metadata: dict = {}
    embedding: list[float] = []
    timestamp: datetime = Field(default_factory=datetime.now)
    
    def embed(self):
        """生成记忆的向量表示"""
        if not self.embedding:
            self.embedding = self._generate_embedding(self.content)
        return self.embedding
        
    @staticmethod
    def search(memories: list['Memory'], query: str, n: int = 5) -> list['Memory']:
        """搜索相关记忆"""
        query_embedding = EmbeddingService.embed(query)
        similarities = []
        
        for memory in memories:
            mem_embedding = memory.embed()
            similarity = cosine_similarity(query_embedding, mem_embedding)
            similarities.append((memory, similarity))
        
        # 按相似度排序返回前n个记忆
        similarities.sort(key=lambda x: x[1], reverse=True)
        return [mem for mem, sim in similarities[:n]]

Memory系统支持高效的语义搜索和记忆管理

配置系统:Config管理

系统配置管理
  • config2.yaml:主配置文件
  • 支持多种LLM提供商(OpenAI、Azure、Ollama等)
  • 配置继承和覆盖机制
  • 环境变量和CLI参数支持

配置系统提供了灵活的系统配置管理

配置文件示例

llm:
  api_type: "openai"
  model: "gpt-4-turbo"
  base_url: "https://api.openai.com/v1"
  api_key: "YOUR_API_KEY"

project:
  name: "my_project"
  path: "/workspace/my_project"

team:
  investment: 3.0
  n_round: 5
  code_review: true

配置文件支持模块化的配置管理

状态管理:序列化与恢复

项目状态持久化
  • 支持Team和Environment的序列化
  • JSON格式存储,易于调试和迁移
  • 断点续传功能
  • 版本控制和状态回滚

状态管理使得MetaGPT能够处理长期项目并支持中断恢复

序列化实现

def serialize(self, stg_path: Path = None):
    """序列化团队状态"""
    stg_path = SERDESER_PATH.joinpath("team") if stg_path is None else stg_path
    team_info_path = stg_path.joinpath("team.json")
    
    serialized_data = self.model_dump()
    serialized_data["context"] = self.env.context.serialize()
    
    write_json_file(team_info_path, serialized_data)
        
    @classmethod
    def deserialize(cls, stg_path: Path, context: Context = None) -> "Team":
        """反序列化团队状态"""
        team_info_path = stg_path.joinpath("team.json")
        if not team_info_path.exists():
            raise FileNotFoundError("team.json not exist")
            
        team_info: dict = read_json_file(team_info_path)
        ctx = context or Context()
        ctx.deserialize(team_info.pop("context", None))
        team = Team(**team_info, context=ctx)
        return team

序列化系统支持完整的项目状态保存和恢复

SOP系统:标准操作程序

流程标准化管理
  • 固定SOP模式:按照预定顺序执行动作
  • 动态SOP模式:基于状态自动调整流程
  • RoleReactMode:反应模式控制
  • 动作依赖和条件触发

SOP系统确保了开发流程的标准化和可重复性

成本管理:Budget控制

预算和成本管理
  • 投资金额设置和预算控制
  • 实时成本跟踪和监控
  • 资金不足时的异常处理
  • 成本优化和资源管理

成本管理系统确保项目的经济可行性

成本管理实现

class CostManager:
    """成本管理器:跟踪和控制项目成本"""
    
    def __init__(self, max_budget: float = 10.0):
        self.max_budget = max_budget
        self.total_cost = 0.0
        self.token_usage = {
            "input": 0,
            "output": 0
        }
        
    def add_cost(self, cost: float):
        """添加成本"""
        self.total_cost += cost
        if self.total_cost > self.max_budget:
            raise NoMoneyException(
                self.total_cost,
                f"Insufficient funds: {self.max_budget}"
            )

成本管理系统提供了详细的成本跟踪和控制

消息系统:Message传递

智能体间通信
  • Message类定义了消息的结构和类型
  • 支持多种消息内容和元数据
  • 消息路由和传递机制
  • 消息历史和状态管理

消息系统是智能体间协作的基础

Message类实现

class Message(BaseModel):
    """消息:智能体间通信的载体"""
    
    content: str
    sent_by: str = ""
    send_to: str = ""
    content_type: str = "text"
    metadata: dict = {}
    timestamp: datetime = Field(default_factory=datetime.now)
    
    def __str__(self):
        return f"Message(from={self.sent_by}, to={self.send_to}, type={self.content_type})"

Message类提供了完整的消息管理和通信功能

文件系统:ProjectRepo管理

项目文件管理
  • ProjectRepo类管理项目文件结构
  • 支持多种编程语言和框架
  • 自动生成项目模板
  • 文件版本控制和备份

文件系统管理MetaGPT生成项目的完整文件结构

ProjectRepo实现

class ProjectRepo:
    """项目仓库:管理项目文件结构"""
    
    def __init__(self, project_path: str):
        self.project_path = Path(project_path)
        self.structure = {}
        
    def create_structure(self, design_document: dict):
        """根据设计文档创建项目结构"""
        # 创建根目录
        self.project_path.mkdir(parents=True, exist_ok=True)
        
        # 创建基本目录结构
        directories = ["src", "tests", "docs", "config", "data"]
        for dir_name in directories:
            (self.project_path / dir_name).mkdir(exist_ok=True)

ProjectRepo提供了完整的项目文件生成和管理功能

测试系统:自动化测试

测试驱动开发
  • 支持单元测试、集成测试和端到端测试
  • 自动生成测试用例
  • 测试结果分析和报告
  • 持续集成和部署支持

测试系统确保生成代码的质量和可靠性

测试生成示例

class TestGenerator:
    """测试用例生成器"""
    
    def generate_tests(self, code_files: dict) -> dict:
        """生成测试文件"""
        test_files = {}
        
        for file_path, code in code_files.items():
            if file_path.endswith(".py"):
                # 生成对应的测试文件
                test_code = self._generate_test_code(code, file_path)
                test_files[f"tests/test_{file_path.split('/')[-1]}"] = test_code
                
        return test_files

测试系统支持自动化的测试用例生成

部署系统:项目部署

自动化部署
  • 支持多种部署平台和云服务
  • 容器化部署支持
  • CI/CD管道集成
  • 部署监控和回滚

部署系统将MetaGPT生成项目部署到生产环境

监控与日志系统

系统监控
  • 实时监控项目执行状态
  • 详细的日志记录和分析
  • 性能指标和资源使用
  • 异常处理和报警

监控系统确保项目的稳定运行

扩展机制:插件系统

功能扩展
  • 支持自定义角色和动作
  • 插件系统架构
  • 第三方工具集成
  • API扩展接口

扩展机制使MetaGPT能够适应各种不同的应用场景

使用案例:软件开发流程

完整开发示例
  • 需求分析:产品经理分析用户需求
  • 产品设计:生成PRD和竞品分析
  • 架构设计:架构师设计系统架构
  • 编码实现:工程师编写高质量代码
  • 测试验证:自动化测试确保质量
  • 部署上线:完整的部署流程

MetaGPT实现了从需求到上线的完整软件开发流程

完整开发流程示例

async def develop_software(idea: str, investment: float = 3.0, n_round: int = 5):
    """完整的软件开发流程"""
    
    # 1. 初始化团队
    from metagpt.config2 import config
    from metagpt.context import Context
    from metagpt.roles import (
        TeamLeader, ProductManager, Architect, Engineer2, DataAnalyst
    )
    from metagpt.team import Team
    
    config.update_via_cli()
    ctx = Context(config=config)
    
    company = Team(context=ctx)
    company.hire([
        TeamLeader(),
        ProductManager(),
        Architect(),
        Engineer2(),
        DataAnalyst(),
    ])
    
    # 2. 投资并启动项目
    company.invest(investment)
    
    # 3. 运行开发流程
    project_path = await company.run(n_round=n_round, idea=idea)
    
    return project_path

这个示例展示了完整的MetaGPT软件开发流程

使用案例:数据分析项目

数据分析示例
  • 数据收集:使用Browser工具收集数据
  • 数据清洗:自动数据预处理
  • 数据分析:机器学习模型训练
  • 可视化:自动生成图表和报告
  • 洞察提取:从数据中提取有价值信息

MetaGPT在数据分析领域也有强大的应用能力

最佳实践:项目配置

配置优化建议
  • 合理设置投资金额和轮次数
  • 启用代码审查提高质量
  • 选择合适的LLM模型
  • 配置适当的工具集
  • 监控成本和性能

合理的配置能够显著提高项目质量和效率

最佳实践:角色配置

角色优化建议
  • 根据项目需求选择合适的角色组合
  • 设置明确的角色目标和约束
  • 优化角色间协作流程
  • 合理使用固定SOP和动态SOP
  • 定期评估和调整角色配置

合适的角色配置是项目成功的关键

性能优化:成本控制

成本优化策略
  • 选择合适的模型和参数
  • 优化提示和上下文管理
  • 合理设置最大预算
  • 监控和分析成本使用
  • 使用缓存和批处理

成本控制确保项目的经济可行性

性能优化:响应速度

性能优化策略
  • 异步处理和并发执行
  • 智能缓存和记忆管理
  • 优化消息路由和处理
  • 减少重复计算
  • 使用高效的工具和服务

性能优化提高系统的响应速度和效率

错误处理:异常管理

错误处理策略
  • NoMoneyException:资金不足处理
  • Role执行异常:角色错误处理
  • 工具调用异常:外部服务错误
  • 网络异常:连接和超时处理
  • 数据异常:格式和验证错误

完善的错误处理确保系统的稳定性

错误处理:恢复机制

系统恢复策略
  • 状态序列化和恢复
  • 断点续传功能
  • 回滚和重试机制
  • 人工干预和手动修复
  • 日志分析和问题定位

恢复机制确保系统的可靠性和容错性

未来发展方向

技术演进路线
  • 多模态智能体支持
  • 更强的推理和规划能力
  • 分布式和并行处理
  • 更丰富的工具和API
  • 更自然的人机交互

MetaGPT正在不断发展和完善

社区与生态

开源生态
  • 活跃的开源社区
  • 丰富的插件和扩展
  • 详细的使用文档
  • 示例项目和教程
  • 持续的技术支持

强大的社区和生态是MetaGPT持续发展的重要保障

学习资源

学习路径
  • 官方文档:docs.deepwisdom.ai
  • GitHub仓库:github.com/FoundationAgents/MetaGPT
  • 示例项目:examples目录
  • 教程指南:tutorials系列
  • 社区讨论:Discord频道

丰富的学习资源帮助用户快速上手

总结:MetaGPT核心价值

框架优势
  • 标准化:提供完整的软件开发流程
  • 自动化:大幅提高开发效率
  • 专业化:角色分工明确,质量保证
  • 可扩展:支持多种应用场景
  • 智能化:AI驱动的智能协作

MetaGPT代表了AI软件开发的未来方向

参考资料

  • MetaGPT GitHub: https://github.com/FoundationAgents/MetaGPT
  • 官方文档: https://docs.deepwisdom.ai/
  • 在线演示: https://huggingface.co/spaces/deepwisdom/MetaGPT-SoftwareCompany
  • Discord社区: https://discord.gg/DYn29wFk9z

感谢阅读!
访问 https://atcfu.com/ai-articles/metagpt-multi-agent-framework/ 回顾本文