← 返回项目列表

核心项目

MetaGPT 多智能体平台

基于 MetaGPT 框架的 Web 可视化管理平台

ReactTypeScriptFastAPIWebSocketMetaGPTMulti-Agent

核心指标

7

前端核心页面

5

智能体角色

Real-time

日志推送

SOTA

代码生成

功能导览

← 拖动滚动查看全部截图 →

技术架构

基于 MetaGPT 开源多智能体框架,搭建了 Web 可视化管理平台。将 MetaGPT 的原生执行框架封装为 FastAPI 后端服务,提供项目管理的全周期支持。技术栈:React 18 + TypeScript + AntDesign 5 / FastAPI + WebSocket + SQLite / MetaGPT 原生框架。

前端交互层

  • React 18 + TypeScript + AntDesign 5
  • 7 个核心页面:项目管理、工作台、智能体工作区、人工审核、日志管理
  • WebSocket 实时日志推送
  • 双工作台互斥机制(普通/高级)

后端服务层

  • FastAPI:RESTful API + WebSocket 服务
  • TaskScheduler:项目级互斥与启动控制
  • execute_metagpt:MetaGPT 原生框架工程化封装
  • SQLite 文件索引:记录文件名称、路径、大小、归属 agent

数据存储层

  • JSON 文件存储:users_data.json / projects_data.json
  • SQLite 索引:文件元数据管理
  • MetaGPT 输出目录:outputs/{project_id}/
  • 混合存储模式:JSON + SQLite 索引

核心亮点

故事 1:Python 3.12 兼容性地狱

现象在 Python 3.12 环境下安装 MetaGPT,pip install metagpt 直接报错,大量依赖解析失败。
排查过程检查 setup.py 和 requirements.txt,发现部分依赖在 Python 3.12 下没有预编译 wheel。同时 pydantic v1 → v2 的迁移导致多个子模块 API 不兼容。
根因MetaGPT 的依赖链很深(100+ 个包),其中数个关键包在 Python 3.12 发布时尚未完成适配。同时项目内部混用了 pydantic v1 和 v2 的语法。
解决方案使用 conda create -n metagpt python=3.9 创建独立环境(README 明确建议 Python 3.9-3.11)。不在系统 Python 上直接操作。
教训AI 框架项目的依赖管理比业务项目复杂得多。Python 版本选择是第一道关卡,一定要先看官方文档的版本约束。

故事 2:LLM 输出解析的「薛定谔格式」

现象同样的 Prompt,GPT-4 有时返回纯 JSON,有时返回 Markdown 包裹的 JSON,有时在 JSON 前后加解释文字。导致 json.loads() 间歇性失败。
排查过程在 ActionNode.fill() 中增加日志,发现 LLM 输出格式极不稳定。搜索代码库,发现 repair_llm_output 配置项和 extract_state_value_from_output 等修复函数。项目实现了多层次的输出修复策略。
根因LLM 本质是概率模型,即使是 GPT-4 也无法保证每次都输出完全一致的格式。尤其是当 Prompt 中包含 Markdown 格式示例时,LLM 可能「过度模仿」示例中的 Markdown 结构。
解决方案项目使用 tenacity 库实现带退避策略的重试机制。OutputParser 类实现了多层降级解析:先尝试 JSON,失败则尝试 Markdown 代码块提取,再失败则尝试正则匹配。关键 Prompt 中加入强约束。

故事 3:消息路由的死锁陷阱

现象自定义多 Agent 协作时,两个 Role 互相等待对方的消息,整个 Team 陷入死锁,永远无法完成。
排查过程检查 Environment.run() 的实现,发现它依赖 is_idle 属性判断是否所有 Role 都完成了动作。追踪发现 Role 通过 _watch() 订阅特定的 Action 类型。如果 Role B 没有订阅 Role A 的 Action,消息就不会被 B 观察到。
根因Role 通过 _watch() 订阅特定的 Action 类型。如果 Role B 没有订阅 Role A 的 Action(即 cause_by 不匹配),消息就不会被 B 观察到,B 就会一直等待,而 A 也在等待 B 的响应。
解决方案确保每个 Role 的 _watch() 集合包含所有上游 Role 的 Action 类型。使用 observe_all_msg_from_buffer=True 让 Role 观察所有消息(适合调试阶段)。仔细设计 Message 路由:send_to 和 addresses 必须正确配置。

设计特色

前后端分离异步调度机制:将 Web 服务调度与 MetaGPT 内核调度解耦,异步执行耗时任务,兼顾系统响应性与多智能体串行协作的元编程执行逻辑
双工作台互斥机制:普通工作台(任务执行 + 文件预览)与高级工作台(按智能体角色划分工作区)不可同时启动,符合权限分级管控
全局 - 私有双层消息机制:构建「全局消息池共享 + 角色私有缓存隔离」的上下文模型,既保证多智能体数据互通,又实现角色任务的独立执行
文件索引系统:通过 SQLite 记录文件元数据,支持按项目、文件类型和智能体归属查询,用户可在各个智能体工作区中查看对应产物
WebSocket 实时日志推送:后端通过 WebSocket 向前端推送 execution_logs,用户可实时查看任务执行进度和智能体工作状态
工程化封装:将 MetaGPT 原生执行框架(metagpt/software_company.py)封装为 FastAPI 后端服务,支持 Web 界面触发、状态查询、结果展示

项目历程

2026-01-30

环境搭建与框架拉取

创建 Python 3.9 虚拟环境,解决 pydantic v1/v2 兼容性问题。拉取 MetaGPT GitHub 仓库代码,配置 OpenAI API 密钥,成功运行第一个示例(编写 PRD)。

里程碑

2026-02-06 ~ 2026-02-20

框架核心机制理解

深入研读 MetaGPT 源码,理解 Team → Environment → Role 三层架构。掌握 _watch() 消息订阅机制、SOP 标准化操作流程、ReAct 执行循环。调试消息路由,解决 Role 间通信死锁问题。

2026-03-06 ~ 2026-03-20

后端服务封装

基于 FastAPI 封装 MetaGPT 执行框架,实现 TaskScheduler 项目级互斥控制。开发 execute_metagpt 模块,支持异步调用 MetaGPT Team。搭建 SQLite 文件索引系统,记录生成文件的元数据。

里程碑

2026-03-27 ~ 2026-04-10

前端 WebUI 平台开发

使用 React 18 + TypeScript + AntDesign 5 搭建前端交互平台。实现项目管理、工作台、智能体工作区、人工审核、日志管理等 7 个核心页面。集成 WebSocket 实时日志推送功能。

2026-04-17

前后端联调与功能测试

完成前后端接口联调,解决跨域、WebSocket 连接、文件索引查询等问题。测试多智能体协作流程,验证产品经理→架构师→工程师→QA 的完整工作流。优化前端页面布局和交互体验。

里程碑

个人角色

职责:独立负责从需求分析、架构设计、前后端开发、测试联调到部署上线的完整流程。

技术决策:技术栈选型、数据库 Schema 设计、API 规范制定、代码 Review 标准。

团队协作:与论文指导老师定期同步进展,将学术框架工程化落地。