01 项目概述与多 Agent 架构
学习理念:这是整门课程中**最接近"多 Agent 企业级应用"**的项目。前面 Ch19/20/23 都是单 Agent 系统,而这里是 5 个 Agent 协同工作——每个 Agent 有独立的 LangGraph 工作流,通过 Harness 编排层统一调度,用 EventBus + SSE 实时推送进度。理解了这个项目的架构,你就理解了复杂多 Agent 系统的通用设计模式。
海外对标:OpenAI Swarm(多 Agent 编排)、AutoGen(Agent 协作框架)、CrewAI
📖 阅读优先级
| 等级 | 章节 | 说明 |
|---|---|---|
| 🔴 必须深入 | 多 Agent 架构设计模式 | 面试常考,4 种模式的选择依据 |
| 🔴 必须深入 | 5 个引擎的分工与协作 | 理解各引擎的职责和通信方式 |
| 🟡 理解即可 | 部署与配置 | 用到时再回来看 |
一、项目定位
尚舆分析平台是一个面向舆情分析、热点研判和专题报告生成的多 Agent 智能分析系统。
核心流程:
用户输入自然语言分析需求
↓
5 个 Agent 引擎并行 + 协作分析
↓
生成结构化舆情分析报告| 特性 | 说明 |
|---|---|
| 多引擎并行 | Insight/Media/Query 三引擎同时工作 |
| Agent 工作流 | 每个引擎内部用 LangGraph 组织搜索→总结→反思→再搜索 |
| 事件驱动 | EventBus 发布进度、结果、错误等事件 |
| SSE 推送 | 前端实时接收各引擎状态和论坛发言 |
| 论坛协作 | ForumEngine 模拟专家讨论,提升研判质量 |
| 自动报告 | ReportEngine 汇总多源信息生成 HTML/MD 报告 |
二、多 Agent 架构设计模式
🔴【必须深入】 这四种模式面试常考,而且直接决定了多 Agent 系统的骨架。
2.1 并行编排
多个 Agent 同时对任务的不同维度进行分析,各自独立运行:
用户: "分析某品牌最近一周的舆情"
│
├── Agent A: 社交媒体舆情分析(搜索微博/知乎 → 情感分析)
├── Agent B: 媒体报道分析(搜索新闻 → 传播路径)
└── Agent C: 信息核验(搜索官方数据 → 可信度评级)
↓
汇总 → 综合分析报告- ✅ 速度快,Agent 间无依赖
- ❌ 缺乏跨维度交流
2.2 顺序编排
Agent 按顺序执行,前一个输出作为后一个输入:
用户 → Agent A(搜索) → Agent B(分析) → Agent C(报告)- ✅ 流程清晰,每步利用前序结果
- ❌ 延迟高,上游错误会级联
2.3 层级路由
主控 Agent 根据意图类型路由到不同专业 Agent:
用户 → Orchestrator
├── 舆情分析 → InsightAgent
├── 事实查询 → QueryAgent
└── 报告生成 → ReportAgent- ✅ 灵活性高
- ❌ Orchestrator 需要强意图理解
2.4 协作讨论
多个 Agent 围绕同一主题进行多轮讨论,类似专家圆桌会议:
共享上下文
┌────┴────┐
Insight Media Query
Agent Agent Agent
└────────┬────────┘
互相补充、质疑、深化- ✅ 洞見更深入
- ❌ 耗时较长
三、本项目采用的混合架构
🔴【必须深入】 本项目结合了并行编排 + 协作讨论两种模式。
用户问题
│
Harness(编排层)
│
┌────────────────┼────────────────┐
▼ ▼ ▼
InsightEngine MediaEngine QueryEngine
(私域情感分析) (媒体内容分析) (互联网检索)
│ │ │
└────────────────┼────────────────┘
▼
ForumEngine(专家讨论)
▼
ReportEngine(报告生成)
▼
HTML/Markdown 报告3.1 Harness 编排层
Harness 是系统的"大脑",负责:
- 接收用户请求,启动所有引擎
- 管理各引擎的生命周期
- 通过 EventBus 收集各引擎进度和结果
- 触发 ForumEngine 讨论
- 触发 ReportEngine 生成报告
3.2 五个引擎的分工
| 引擎 | 职责 | 核心能力 |
|---|---|---|
| InsightEngine | 私域数据情感分析 + 聚类 | NLP 情感分析、主题聚类 |
| MediaEngine | 媒体内容搜索分析 | 新闻搜索、传播路径分析 |
| QueryEngine | 互联网事实查询核验 | 搜索引擎优化、信息交叉验证 |
| ForumEngine | 模拟专家讨论 | 多角色讨论、意见汇总 |
| ReportEngine | 报告生成 | 多源汇总、HTML/MD 输出 |
3.3 事件驱动通信
Harness → EventBus 发布事件
│
├── 进度事件 → SSE → 前端显示各引擎进度
├── 结果事件 → ForumEngine 消费 → 触发讨论
├── 错误事件 → SSE → 前端显示错误
└── 论坛事件 → SSE → 前端实时显示讨论内容四、本项目用到的技术栈
| 技术 | 用途 |
|---|---|
| Python 3.12+ | 开发语言 |
| LangGraph | 各引擎内部工作流编排 |
| FastAPI | 后端 API + SSE 推送 |
| Vue3 + Vite | 前端展示 |
| SSE | 实时进度推送 |
| EventBus | 引擎间通信 |
| Docker Compose | 容器化部署 |
| MySQL | 数据存储 |
五、本阶段文件索引
| 优先级 | 文件 | 路径 |
|---|---|---|
| 🔥 P0 | 01_项目全景介绍.md | 1.笔记/课件/ |
| 🔥 P0 | 02_关键组件设计讲解.md | 1.笔记/课件/ |
| 🟡 P1 | 04_项目脚手架与单引擎工作流构建.md | 1.笔记/课件/ |