基于 MetaGPT 自部署一个类似 MGX 的多智能体协作框架

news2025/3/1 6:17:51

MGX(由 MetaGPT 团队开发的 mgx.dev)是一个收费的多智能体编程平台,提供从需求分析到代码生成、测试和修复的全流程自动化功能。虽然 MGX 本身需要付费,但您可以通过免费服务和开源项目搭建一个类似的功能。以下是一个分步骤的实现方案,充分利用开源工具和免费云服务,模拟 MGX 的多智能体协作开发体验。目标是实现“一次性输入需求,自动生成完整项目代码”的功能,同时尽量减少人工干预。

在这里插入图片描述

文章目录

  • 一、目标与前提
  • 二、分步骤实现
    • 2.1 步骤 1:选择开源多智能体框架
    • 2.2 步骤 2:搭建本地运行环境
    • 2.3 步骤 3:实现角色分工与协作
    • 2.4 步骤 4:自动化测试与纠错
    • 2.5 步骤 5:部署到免费云服务
    • 2.6 步骤 6:优化与扩展
  • 三、实现结果
  • 四、总结

一、目标与前提

  • 目标: 部署一个类似 MGX 的系统,支持多角色智能体(项目经理、架构师、工程师等)协作,输入需求后自动生成项目代码。
  • 前提:
    • 您有基本的编程知识(如 Python、Linux 命令)。
    • 有一台本地计算机或免费云服务器(如 Google Colab、Kaggle、Replit)。
    • 使用开源工具和免费 API(如 Grok、Ollama)替代付费服务。

二、分步骤实现

2.1 步骤 1:选择开源多智能体框架

MGX 的核心是多智能体协作,因此我们需要一个类似的基础框架。以下是推荐的开源选项:

  • MetaGPT:
    • GitHub: github.com/geekan/MetaGPT
    • 简介: 一个成熟的多智能体框架,支持角色分工(产品经理、架构师、工程师等),能从单行需求生成完整项目。
    • 优点: 接近 MGX 的功能,开源免费,社区活跃。

在这里插入图片描述

  • ChatDev:
    • GitHub: github.com/OpenBMB/ChatDev
    • 简介: 模拟软件开发公司,支持瀑布模型的多角色协作。
    • 优点: 简单易用,适合小型项目。
  • AutoGen:
    • GitHub: github.com/microsoft/autogen
    • 简介: 微软开发的多智能体框架,强调灵活性和跨语言支持。
    • 优点: 可扩展性强,支持本地模型。

选择理由: MetaGPT 是最接近 MGX 的开源替代品,提供完整的 SOP(标准操作流程)和角色协作机制,因此我们以 MetaGPT 为主。

操作:

  • 克隆 MetaGPT 仓库:

    bash

    git clone https://github.com/geekan/MetaGPT.git
    cd MetaGPT
    

2.2 步骤 2:搭建本地运行环境

MetaGPT 默认依赖 OpenAI API(收费),但我们可以用免费替代品(如 Ollama 或 Grok)运行本地大语言模型(LLM)。

  1. 安装 Python 环境:

    • 确保系统有 Python 3.9 或 3.10:

      bash

      python --version
      
    • 如果没有,使用 Conda 创建环境:

      bash

      conda create -n metagpt python=3.9
      conda activate metagpt
      
  2. 安装 Ollama(本地 LLM):

    • 下载并安装 Ollama(ollama.ai):

      bash

      curl -fsSL https://ollama.ai/install.sh | sh
      
    • 拉取一个免费开源模型(如 LLaMA 或 Mistral):

      bash

      ollama pull llama3
      
    • 运行 Ollama 服务:

      bash

      ollama serve
      
  3. 配置 MetaGPT 使用本地 LLM:

    • 编辑 config2.yaml 文件(位于 MetaGPT 根目录):

      yaml

      llm:
        api_type: "ollama"
        model: "llama3"
        base_url: "http://localhost:11434/v1"
        api_key: "ollama"  # Ollama 不需真实 API 密钥
      
    • 安装 MetaGPT 依赖:

      bash

      pip install -r requirements.txt
      

2.3 步骤 3:实现角色分工与协作

MetaGPT 默认支持多角色智能体(产品经理、架构师、工程师等)。我们需要确保其能自动完成需求分析到代码生成的全流程。

  1. 定义角色:

    • MetaGPT 已内置角色(如 ProductManager、Architect、Engineer),无需额外定义。您只需确保配置文件正确。
    • 检查 metagpt/roles/ 目录,确认角色实现。
  2. 输入需求:

    • 创建一个简单的启动脚本(start.py):

      python

      from metagpt.software_company import generate_repo
      
      repo = generate_repo("Create a CLI-based To-Do list app using Python")
      print(repo)
      
    • 这将触发 MetaGPT 的多智能体协作,生成项目结构和代码。

  3. 运行测试:

    • 执行脚本:

      bash

      python start.py
      
    • 输出将包括需求文档、架构设计和完整代码,保存在 workspace/ 目录。

2.4 步骤 4:自动化测试与纠错

MGX 提供自动测试和修复功能,我们需要为 MetaGPT 添加类似能力。

  1. 集成单元测试:

    • 使用 Python 的 unittest 检查生成代码:

      python

      import unittest
      import os
      
      class TestGeneratedCode(unittest.TestCase):
          def test_code_runs(self):
              os.system("python workspace/todo_app/main.py")
              self.assertEqual(os.system("echo $?"), 0)
      
      if __name__ == "__main__":
          unittest.main()
      
    • 将此脚本保存为 test_generated.py。

  2. 自动纠错:

    • 添加反馈循环:如果测试失败,重新运行 MetaGPT 的工程师角色修复代码。

    • 修改 start.py:

      python

      from metagpt.software_company import generate_repo
      import os
      
      def run_and_fix():
          repo = generate_repo("Create a CLI-based To-Do list app using Python")
          os.system("python test_generated.py")
          if os.system("echo $?") != 0:
              print("Test failed, re-running Engineer role...")
              repo.engineer.run_fix()  # 假设有此方法,需自定义
          return repo
      
      repo = run_and_fix()
      print(repo)
      
    • 注意:MetaGPT 默认没有 run_fix(),需自行实现,参考其 Engineer 类。

  3. 运行完整流程:

    bash

    python start.py
    

2.5 步骤 5:部署到免费云服务

华为云免费试用

  • 服务: 华为云弹性云服务器 (ECS) 免费试用
  • 特点: 新用户可免费试用 1 核 2G 或 2 核 4G 云服务器 30 天。
  • 获取: 访问 华为云免费试用,注册并完成实名认证后领取。

部署步骤:

  1. 注册与领取:

    • 在华为云官网注册账号,完成个人或企业实名认证。
    • 领取免费云服务器(例如 2 核 4G S6,带 5M 带宽和 100G 数据盘)。
  2. 配置服务器:

    • 登录华为云控制台,选择“弹性云服务器 ECS”。
    • 创建实例,选择 Ubuntu 20.04 系统,设置密码或 SSH 密钥。
  3. 上传 MetaGPT:

    • 使用 SSH 客户端(如 XShell 或终端)连接服务器:

      bash

      ssh root@<服务器公网IP>
      
    • 上传 MetaGPT 文件夹:

      bash

      scp -r /path/to/MetaGPT root@<服务器公网IP>:/root/
      
  4. 安装依赖:

    • 登录服务器,安装 Python 和依赖:

      bash

      apt update
      apt install python3.9 python3-pip -y
      cd /root/MetaGPT
      pip3 install -r requirements.txt
      
  5. 配置 API:

    • 编辑 config2.yaml,填入 Grok 或其他 API 密钥(参考步骤 2)。
  6. 运行项目:

    • 执行启动脚本:

      bash

      python3 start.py
      
    • 输出结果保存在 workspace/,可通过 SCP 下载。

2.6 步骤 6:优化与扩展

  • 添加前端界面(可选):

    • 使用 Gradio 创建简单 Web 界面:

      python

      import gradio as gr
      from metagpt.software_company import generate_repo
      
      def generate_project(requirement):
          repo = generate_repo(requirement)
          return str(repo)
      
      interface = gr.Interface(fn=generate_project, inputs="text", outputs="text")
      interface.launch()
      
    • 安装 Gradio:pip install gradio。

  • 支持复杂需求:

    • 输入更详细的需求(如“开发一个支持用户注册和支付的在线商店”),调整 MetaGPT 的 SOP。

三、实现结果

  • 功能: 您将拥有一个本地或云端的系统,支持一次性输入需求,生成完整项目代码(包括需求文档、架构和实现),并通过测试验证。
  • 成本: 完全免费,利用开源工具(MetaGPT、Ollama)和免费云服务(Replit、Colab)。
  • 类似 MGX: 通过多角色协作和自动化测试,接近 MGX 的核心体验。

注意事项与局限

  1. 性能: 本地 LLM(如 LLaMA)可能不如 OpenAI GPT-4,复杂任务可能需要更高算力。(可直接调用大模型API,不必自己部署)
  2. 稳定性: 开源工具的纠错能力有限,可能需手动调整。
  3. 算力需求: 在免费服务上运行大模型可能受限,建议用 16GB+ RAM 的本地机器。

四、总结

通过 MetaGPT 和 Ollama,您可以用免费资源搭建一个类似 MGX 的系统。步骤包括选择框架、配置本地 LLM、实现角色协作、添加测试纠错、并部署到云端。虽然不如 MGX 商业化产品完善,但它满足了“一次性输入、全自动化生成”的需求,且成本为零。

Form: Gork 3 beta

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字人技术再超越,TANGO 可生成与音频匹配的全身手势视频

TANGO 是由东京大学与 CyberAgent AI Lab 于 2024 年共同研发的开源框架&#xff0c;专注于声音驱动的全身数字人生成。该技术能够根据目标语音音频生成与之同步的全身手势视频&#xff0c;突破了传统数字人技术仅支持面部或上半身动作的局限性。TANGO 的工作原理利用隐式分层音…

DeepSeek 开源周(2025/0224-0228)进度全分析:技术亮点、调用与编程及潜在影响

DeepSeek 技术开源周期间所有开放下载资源的目录及简要说明: 1. FlashMLA 描述:针对 Hopper GPU 优化的高效 MLA 解码内核,专为处理可变长度序列设计,显著提升大语言模型(LLM)的解码效率。性能:内存受限配置下可达 3000 GB/s 带宽,计算受限配置下可达 580 TFLOPS 算力(…

let、const【ES6】

‌“我唯一知道的就是我一无所知。” - 苏格拉底 目录 块级作用域&#xff1a;var、let、const的对比&#xff1a;Object.freeze()&#xff1a; 块级作用域&#xff1a; 块级作用域指由 {} 包围的代码块&#xff08;如 if、for、while、单独代码块等&#xff09;形成的独立作用…

Ollama下载安装+本地部署DeepSeek+UI可视化+搭建个人知识库——详解!(Windows版本)

目录 1️⃣下载和安装Ollama 1. &#x1f947;官网下载安装包 2. &#x1f948;安装Ollama 3.&#x1f949;配置Ollama环境变量 4、&#x1f389;验证Ollama 2️⃣本地部署DeepSeek 1. 选择模型并下载 2. 验证和使用DeepSeek 3️⃣使用可视化工具 1. Chrome插件-Page …

STM32内存五区及堆栈空间大小设置(启动文件浅析)

前言 嘿&#xff0c;朋友们&#xff01;今天咱们来聊聊STM32的内存五区和堆栈空间大小设置。这可是嵌入式开发里的“必修课”&#xff0c;要是没整明白&#xff0c;程序说不定就“翻车”了。别担心&#xff0c;我这就带你一步步搞懂这事儿&#xff0c;让你轻松上手&#xff0c…

Go红队开发—语法补充

文章目录 错误控制使用自定义错误类型错误包装errors.Is 和 errors.Aspanic捕获、recover 、defer错误控制练习 接口结构体实现接口基本类型实现接口切片实现接口 接口练习Embed嵌入文件 之前有师傅问这个系列好像跟红队没啥关系&#xff0c;前几期确实没啥关系&#xff0c;因为…

IP----访问服务器流程

这只是IP的其中一块内容-访问服务器流程&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一段学习内容为IA内容&#xff0c;还有更多内容可以查看IA专栏&#xff0c;可通过以下路径查看IA-----配置NAT-CSDN博客CSDN,欢迎指正 1.访问服务器流程 1.分层 1.更利于标准化…

阿里云ack的创建与实战应用案例

阿里云ack的创建与应用案例 创建前开通ack相关服务&#xff1a;开始创建简单的魔方游戏&#xff0c;熟悉sv与clb自动注册创建部署一个nginx 服务示例&#xff1a;走不同域名访问不同svc资源&#xff1a;为什么需要 Ingress &#xff1f;创建第一个域名的 Deployment和Service。…

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…

BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】

模板&#xff1a; {{.__class__.__base__.__subclasses__()[80].__init__.__globals__[__builtins__].eval("__import__(os).popen(type flag.txt).read()")}} 是个空字符串&#xff0c;.__class__代表这个空字符串的类是什么&#xff08;这里是单引号双引号都行&a…

C# | GDI+图像测距辅助线的实现思路

C# | GDI图像测距辅助线的实现思路 文章目录 C# | GDI图像测距辅助线的实现思路一、辅助线需求概述二、坐标系与角度计算2.1 笛卡尔坐标系2.2 线长和角度计算方法2.3 文本角度矫正计算方法2.4 坐标变换实现步骤 三、与if判断方式对比四、总结 一、辅助线需求概述 在图像测量工…

免费使用 DeepSeek API 教程及资源汇总

免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型&#xff0c;凭借其卓越的逻辑推理能力和成本优势&#xff0c;迅速…

java后端开发day20--面向对象进阶(一)--static继承

&#xff08;以下内容全部来自上述课程&#xff09; 1.static–静态–共享 static表示静态&#xff0c;是java中的一个修饰符&#xff0c;可以修饰成员方法&#xff0c;成员变量。 1.静态变量 被static修饰的成员变量&#xff0c;叫做静态变量。 特点&#xff1a; 被该类…

Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)

Spring Boot集成MyBatis访问MySQL 一、引言 在当今企业级应用开发中&#xff0c;Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性&#xff0c;成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目&#xff0c;掌握Spring Boot集成MyBatis的基础入门内容。…

ShenNiusModularity项目源码学习(14:ShenNius.Infrastructure项目分析)

ShenNius.Infrastructure项目用于定义ShenNius.Admin.Mvc项目和ShenNius.Admin.API项目共用的特性类、数据操作接口实现类、上下文类、通讯类&#xff0c;主要文件的用途如下&#xff1a;   Attributes文件夹保存特性类或过滤器类定义&#xff0c;主要包括&#xff1a;   …

【C语言】第八期——指针、二维数组与字符串

目录 1 初始指针 2 获取变量的地址 3 定义指针变量、取地址、取值 3.1 定义指针变量 3.2 取地址、取值 4 对指针变量进行读写操作 5 指针变量作为函数参数 6 数组与指针 6.1 指针元素指向数组 6.2 指针加减运算&#xff08;了解&#xff09; 6.2.1 指针加减具体数字…

Spring Boot集成Spring Security之HTTP请求授权

一、HTTP请求授权工作原理 ​ 基于Spring Security最新的Http请求授权讲解&#xff0c;不再使用旧版的请求授权 授权过滤器AuthorizationFilter获取认证信息 调用RequestMatcherDelegatingAuthorizationManager的check方法验证该用户是否具有该请求的授权 RequestMatcherDele…

可以免费无限次下载PPT的网站

前言 最近发现了一个超实用的网站&#xff0c;想分享给大家。 在学习和工作的过程中&#xff0c;想必做PPT是一件让大家都很头疼的一件事。 想下载一些PPT模板减少做PPT的工作量&#xff0c;但网上大多精美的PPT都是需要付费才能下载使用。 即使免费也有次数限制&#xff0…

从零开始自主「起身站立」,上海AI Lab发布最新控制算法,机器人:起猛了

来源 | 机器之心 近日&#xff0c;上海 AI Lab 具身智能中心研究团队在机器人控制领域取得了最新突破&#xff0c;提出的 HoST&#xff08;Humanoid Standing-up Control&#xff09;算法&#xff0c;成功让人形机器人在多种复杂环境中实现了自主站起&#xff0c;并展现出强大…