一个基于 A2A + MCP + ADK 的多智能体系统,支持流式并发生成高质量 (可在线编辑)PPT 内容。
MultiAgentPPT 利用多智能体架构实现从主题输入到完整演示文稿生成的自动化流程,主要步骤包括:
- 大纲生成 Agent:根据用户需求生成初步内容大纲。
- Topic 拆分 Agent:将大纲内容细分为多个主题。
- Research Agent 并行工作:多个智能体分别对每个主题进行深入调研。
- Summary Agent 汇总输出:将调研结果汇总生成 PPT 内容,实时流式返回前端。
- 多Agent协作:通过多智能体并行工作,提高内容生成的效率和准确性。
- 实时流式返回:支持流式返回生成的 PPT 内容,提升用户体验。
- 高质量内容:结合外部检索和智能体协作,生成高质量的内容大纲和演示文稿。
- 可扩展性:系统设计灵活,易于扩展新的智能体和功能模块。
- 多模态的理解图片,图片格式处理(例如方向,大小等检测),用于PPT的不同位置。
- metadata数据传输,传输一些前端的配置给Agent,Agent返回给前端结果时,也携带metadata信息
- (已修复)除gemini以为流的输出Bug修复,adk和a2a的包问题:https://github.com/johnson7788/MultiAgentPPT/blob/stream/backend/birthday_planner/README.md
以下是 MultiAgentPPT 项目的核心功能演示:
用户在界面中输入希望生成的 PPT 主题内容:
系统根据输入内容,实时流式返回生成的大纲结构:
最终系统将展示完整的大纲,供用户进一步确认:
确认大纲后,系统开始流式生成每页幻灯片内容,并返回给前端:
flowchart TD
A[大纲生成 Agent<br>根据用户需求生成初步内容大纲] --> B[Topic 拆分 Agent<br>将大纲细分为多个主题]
B --> C1[Research Agent 1<br>对主题 1 调研]
B --> C2[Research Agent 2<br>对主题 2 调研]
B --> C3[Research Agent N<br>对主题 N 调研]
C1 --> D[Summary Agent 汇总输出<br>整合调研结果生成 PPT 内容]
C2 --> D
C3 --> D
D --> E[实时流式返回前端]
MultiAgentPPT/
├── backend/ # 后端多Agent服务目录
│ ├── simpleOutline/ # 简化版大纲生成服务(无外部依赖)
│ ├── simplePPT/ # 简化版PPT生成服务(不使用检索或并发)
│ ├── slide_outline/ # 带外部检索的大纲生成大纲服务(大纲根据MCP工具检索后更精准)
│ ├── slide_agent/ # 并发式多Agent PPT生成主要xml格式的PPT内容
├── frontend/ # Next.js 前端界面
-
创建并激活 Conda 虚拟环境(推荐python3.11以上版本,否则可能有bug):
conda create --name multiagent python=3.12 conda activate multiagent
-
安装依赖:
cd backend pip install -r requirements.txt
-
设置后端环境变量:
# 为所有模块复制模板配置文件 cd backend/simpleOutline && cp env_template .env cd ../simplePPT && cp env_template .env cd ../slide_outline && cp env_template .env cd ../slide_agent && cp env_template .env
模块 | 功能 | 默认端口 | 启动命令 |
---|---|---|---|
simpleOutline |
简单大纲生成 | 10001 | python main_api.py |
simplePPT |
简单PPT生成 | 10011 | python main_api.py |
slide_outline |
高质量大纲生成(带检索) | 10001(需关闭 simpleOutline ) |
python main_api.py |
slide_agent |
多Agent并发生成完整PPT | 10011(需关闭 simplePPT ) |
python main_api.py |
数据库存储用户生成的PPT:
-
使用 Docker 启动 PostgreSQL:
使用VPN时使用 docker run --name postgresdb -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=welcome -d postgres 国内使用: docker run --name postgresdb -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=welcome -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/sclorg/postgresql-15-c9s:latest
-
修改
.env
示例配置:DATABASE_URL="postgresql://postgres:welcome@localhost:5432/presentation_ai" A2A_AGENT_OUTLINE_URL="http://localhost:10001" A2A_AGENT_SLIDES_URL="http://localhost:10011"
-
安装依赖并推送数据库模型:
# 安装前端依赖 pnpm install # 推送数据库模型和插入用户数据 pnpm db:push # 启动前端 npm run dev
当前系统内置调研示例为:“电动汽车发展概述”。如需其他主题调研,请配置对应 Agent 并对接真实数据源。
前端项目部分基于开源仓库:allweonedev/presentation-ai
johnsongzc