项目周期#
2人,1.5-2个月即可。
参考周期:#
需求分析与架构设计1周
核心模块开发4周(可适当延长)
联调测试与优化2周
效果验证与上线2周
项目简介#
尚舆分析平台是一个面向舆情分析、热点研判和专题报告生成的 多 Agent 智能分析系统。系统构建了基于搜索引擎、私域数据、媒体信息、论坛协作和自动报告生成的多智能体引擎架构,支持帮助用户快速获取文本数据的情感倾向,支持多源数据接入、多种情感分析模型、可视化结果展示与报告导出,适用于电商评论分析、社交媒体舆情监测、用户反馈挖掘等场景。平台采用前后端分离架构,整合数据采集、预处理、模型推理、结果分析与可视化全流程,为用户提供一站式信息分析解决方案。
整体架构设计#
Q核心模块划分#
平台可以分为数据采集与存储模块、多 Agent 分析引擎模块、报告生成与可视化模块、后端服务与调度模块、前端交互模块,五大模块解耦、可独立扩展。
数据采集与存储模块:包含舆情爬虫(SentinelSpider)与数据存储(MySQL),负责从微博、抖音、小红书、知乎等平台采集舆情数据,实现数据清洗、入库与增量更新。#
多 Agent 分析引擎模块:包含私有数据挖掘(InsightEngine)、媒体信息挖掘(MediaEngine)、信息验证(QueryEngine)、辩论引擎(ForumEngine) 四大智能体,分别负责私域舆情挖掘、全网媒体分析、权威信息核验、多观点整合讨论。#
报告生成与可视化模块:包含报告生成引擎(ReportEngine)与前端可视化界面,负责汇总多Agent分析结果,生成结构化 Markdown/HTML/PDF 报告,并提供实时进度展示与结果交互。#
后端服务与调度模块:基于FastAPI构建的后端服务,负责任务调度、SSE事件推送、用户请求处理与服务编排。#
前端交互模块:基于 Vue3 构建的 Web 界面,支持用户任务创建、进度监控、报告预览与下载。#
Q整体架构#
本项目根据舆情分析的业务特点,设计了一种混合架构,融合了"并行编排"和"协作讨论"两种模式的优点。

项目整体分为三个阶段,并行编排、协作讨论、顺序汇总。#
并行编排阶段:进行角色划分,模拟现实中的舆情分析团队分工,通过独特的专业视角,产出互补的分析结果。#
协作讨论阶段:解决并行编排阶段三个引擎之间存在信息孤岛的问题,通过引入主持人角色,监听各引擎的研究进展,并提供建议。#
顺序汇总阶段:前两个阶段产出的是原材料,包括三份 Markdown 报告和一份论坛讨论日志。这一阶段,则是通过模板选择、敲定报告结构、分配篇幅、逐章生成、组装渲染的递进执行,将这些原材料加工为结构化报告。#
此外,平台采用 “数据层 - 引擎层 - 服务层 - 交互层” 四层架构:#
数据层:由 MySQL 数据库与 舆情爬虫(SentinelSpider) 组成,提供舆情数据存储与多源数据采集能力。#
引擎层:核心的多 Agent 分析引擎集群,通过 LangGraph 实现智能体间的协作与流程调度,完成舆情分析全流程。#
服务层:FastAPI 后端服务,提供任务管理、事件推送、接口转发与业务逻辑处理能力。#
交互层:Vue3 前端界面,实现用户交互、任务配置、进度展示与报告可视化。#
Q业务分层#
数据采集层:对接多平台数据源,实现舆情数据的定向采集、去重、清洗与入库,为分析引擎提供数据支撑。#
智能分析层:多 Agent 引擎集群,通过分工协作完成舆情数据的多维度分析、信息核验与观点整合。#
业务服务层:封装引擎能力,提供标准化 API 接口,实现任务调度、用户管理、事件推送等业务逻辑。#
用户交互层:提供可视化操作界面,支持用户配置分析任务、查看实时进度、获取分析报告与结果导出。#
技术架构设计#
Q技术架构#
后端服务:FastAPI 构建异步服务,结合SSE实现实时进度推送,支持高并发任务处理。#
多 Agent 引擎:使用LangGraph实现多智能体协作,集成大语言模型完成舆情分析、讨论与报告生成多个智能体协作环节。#
数据存储:MySQL存储结构化舆情数据与用户信息,Redis实现任务缓存与状态管理。#
数据采集:基于 MediaCrawler(SentinelSpider)实现多平台舆情数据采集,支持热榜抓取与关键词定向爬取。#
前端交互:Vue3 + TypeScript + Element Plus 构建响应式界面,集成 ECharts 实现数据可视化。#
部署架构:Docker Compose 容器化编排,实现后端、前端、数据库、爬虫服务的一键部署与扩展。#
Q关键技术选型#
实现流程图#
Q系统总流程#

Q核心子流程图#
舆情数据采集模块#

多 Agent 协作分析模块#

实时进度推送模块#

关键实现细节#
Q舆情数据采集与存储模块#
基于舆情爬虫工具(MediaCrawler)实现了微博、抖音、小红书、知乎等多平台舆情数据采集,支持热榜抓取与关键词定向爬取,适配不同平台的反爬机制。
实现了数据清洗与去重机制,通过内容哈希与时间戳过滤重复数据,同时对文本数据进行格式标准化,适配后续分析引擎处理。
采用 MySQL 存储结构化舆情数据,设计了合理的表结构,包含平台、发布时间、内容、情感倾向、关键词等字段,支持高效查询与分析。
Q多 Agent 协作分析引擎模块#
基于 LangGraph 实现了四大核心智能体的工作流编排:私有数据挖掘智能体(InsightEngine)、媒体信息挖掘智能体(MediaEngine)、信息验证智能体(QueryEngine)并行执行,结果汇总后由辩论智能体(ForumEngine)进行讨论整合,最终由报告生成引擎(ReportEngine)生成报告。
每个智能体职责清晰:私有数据挖掘智能体(InsightEngine)负责本地舆情库的情感分析与倾向挖掘,媒体信息挖掘智能体(MediaEngine) 分析全网媒体的传播路径与立场,信息验证智能体(QueryEngine)核验信息真实性,辩论智能体(ForumEngine) 通过多轮对话整合多方观点。
实现了智能体间的状态同步与结果传递,通过统一的上下文管理模块,确保各智能体的分析结果可被后续流程复用,避免重复计算。
Q报告生成与可视化模块#
报告生成引擎(ReportEngine)基于多Agent分析结果,自动生成结构化 Markdown 报告,包含舆情概况、情感分析、媒体传播、权威信息核验、专家讨论等多种结论。
支持将 Markdown 报告转换为 HTML/PDF 格式,实现一键导出,满足不同场景的汇报需求。
前端通过 SSE 实时接收引擎执行进度、论坛讨论消息与报告生成状态,在界面上动态展示任务进度与关键信息,提升用户体验。
项目成果#
实现了一个功能完整的多Agent舆情分析平台,支持从数据采集到报告生成的全流程自动化分析。#
平台支持单任务万级舆情数据处理,多Agent协作分析流程自动化,平均任务处理时间控制在30分钟以内,报告生成准确率达到业务可用标准。#
实现了多平台舆情数据的定向采集与存储,覆盖多个主流社交平台,支持增量更新与历史数据回溯。#
生成的结构化报告可直接用于品牌舆情监测、社会热点分析、市场调研等业务场景,帮助用户快速获取关键信息并辅助决策。#
技术亮点#
多Agent协作分析架构:基于LangGraph实现多智能体分工协作,通过并行分析与讨论整合,提升舆情分析的全面性与准确性,解决单一模型分析视角单一的问题。#
全流程自动化处理:从数据采集、清洗、分析、讨论到报告生成全流程自动化,无需人工干预,大幅提升舆情分析效率,降低人工成本。#
实时进度推送与交互:通过 SSE 实现引擎执行进度、论坛讨论消息的实时推送,前端界面动态展示任务状态,用户可直观了解分析过程,提升使用体验。#
模块化可扩展设计:各模块职责清晰,接口标准化,可灵活新增采集平台、扩展分析引擎与报告模板,便于后续功能迭代与场景适配。#
面试项目阐述#
Q项目背景#
随着互联网舆情数据的爆发式增长,企业与机构面临舆情监测、热点研判与报告生成的需求日益迫切,传统人工分析方式效率低、成本高、视角单一,无法满足大规模数据与多维度分析的需求。本项目旨在构建一个基于多 Agent 协作的智能舆情分析平台,通过自动化流程与多视角分析,帮助用户快速完成舆情监测与分析,输出专业的结构化报告,为业务决策提供数据支撑。
Q核心职责#
- 负责平台整体架构设计与模块划分,制定技术选型与开发规范。
- 主导多Agent分析引擎模块开发,基于LangGraph实现智能体协作与工作流编排。
- 负责后端服务开发与 SSE 实时推送功能实现,保障平台高并发与稳定性。
- 参与舆情数据采集模块开发,实现多平台数据采集、清洗与入库。
- 负责报告生成模块设计,实现结构化报告的自动生成与格式转换。
- 完成平台测试、部署与优化,处理开发过程中的技术难点与性能问题。
Q技术难点与解决思路#
多 Agent 协作流程编排复杂,状态同步困难#
难点:多个智能体并行执行,需要统一管理任务状态、上下文信息与结果传递,避免流程混乱。
解决:基于 LangGraph 实现工作流编排,定义明确的智能体执行顺序与依赖关系;设计统一的上下文管理模块,存储各智能体的分析结果,确保状态同步与结果复用。
舆情数据采集适配性差,反爬机制复杂#
难点:不同社交平台的接口与反爬机制差异大,数据采集稳定性差,易被限制。
解决:基于MediaCrawler框架进行二次开发,适配各平台的请求逻辑与反爬策略;采用代理池、请求头模拟、请求间隔控制等方式提升采集稳定性,同时实现增量采集与断点续爬。
大模型生成报告质量不稳定,格式不统一#
难点:不同大模型生成的报告内容、格式差异较大,难以满足业务标准化报告的需求。
解决:设计标准化的报告模板,通过 Prompt 工程约束大模型的输出格式与内容结构;在 ReportEngine 中对模型生成的内容进行校验与格式化处理,确保报告结构统一、内容完整。
Q项目价值#
项目价值可以分为业务价值与技术价值两部分。
业务价值:为用户提供一站式舆情分析解决方案,大幅提升舆情监测与报告生成的效率,降低人工成本,为品牌运营、市场决策提供数据支撑。#
技术价值:验证了多 Agent 协作架构在舆情分析场景的可行性,实现了从数据采集到报告生成的全流程自动化,为同类智能分析平台提供了可复用的架构设计与实现方案。#
面试高频问题与回答#
Q核心技术类问题#
项目中多 Agent 的工作流是如何设计的?各智能体的职责是什么?#
回答:
项目基于 LangGraph 设计了多 Agent 工作流,核心分为三个阶段:①并行分析阶段,InsightEngine(私有舆情数据挖掘)、MediaEngine(主流媒体信息挖掘)、QueryEngine(信息核验)并行执行,各自输出分析结果;②讨论整合阶段,ForumEngine (辩论智能体)接收三方结果,模拟专家圆桌讨论,整合多方观点并形成统一结论;③报告生成阶段,报告生成引擎(ReportEngine)汇总所有结果,生成结构化报告。各智能体职责清晰,分工协作,确保分析结果的全面性与准确性。
SSE 实时推送是如何实现的?如何保证消息的可靠传输?#
回答:
SSE是基于标准 HTTP 协议实现的,无需额外握手的单向通信协议。项目中后端基于 FastAPI 实现SSE接口,引擎执行过程中生成进度事件,通过SSE 推送至前端并更新界面。为保证消息可靠传输,后端通过实现事件两级缓存机制,使得客户端中断重连时可补发未接收的消息;同时对事件进行编号,前端按序号处理消息,避免重复或丢失。
后端做了两级缓存:
环形缓冲区:保存最近100条事件;#
最新状态字典:保存每个引擎最新进度。#
前端重连后,先回放历史缓冲区,再接收新消息,做到永不丢进度。
为什么选用SSE而不用WebSocket?#
回答:
本项目通信特点:只需要后端推、前端不收。
SSE优势:
基于HTTP,无需握手协议;#
浏览器自带断线重连;#
自带缓冲区,适合流式推送日志;#
协议简单、兼容性强。#
WebSocket适合双向频繁通信,本项目属于单向数据流,SSE最简最优。
如何保证情感分析结果的准确性与一致性?#
回答:
统一预处理流程;采用 Few-shot 示例约束模型输出;加入人工校验与结果打分;低频错误场景持续优化引擎与规则;测试用例覆盖正负样本与边界文本。
LangGraph的State状态池你怎么理解?存了什么数据?#
回答:
State是引擎的全局记忆,贯穿整个工作流,主要存储:用户输入、报告大纲、段落索引、反思次数、搜索历史、最新摘要、完成状态。
特点:
增量更新,只修改变动字段;#
可序列化,方便调试保存;#
保证段落之间记忆不丢失,后一段可以参考前一段搜索结果。#
Q项目设计类问题#
为什么采用多 Agent 架构,而不是单一大模型直接生成报告?#
回答:
单一大模型直接生成报告存在视角单一、信息来源有限、容易产生幻觉等问题。多 Agent 架构通过分工协作,让不同智能体专注于不同的分析任务,如舆情挖掘、媒体分析、事实核验等,不仅能覆盖更多维度的信息,还能通过多方讨论减少模型幻觉,提升分析结果的全面性与准确性,同时也便于后续扩展新的分析能力。
舆情数据采集模块是如何适配多平台的?如何解决平台反爬问题?#
回答:
数据采集模块使用了MediaCrawler爬虫工具。采用适配器模式设计数据采集模块,为每个平台实现独立的采集适配器,封装不同平台的请求逻辑与数据解析规则,新增平台时只需新增适配器即可,无需修改核心逻辑。
解决反爬问题主要通过:
使用代理池分散请求 IP;#
不直接逆向获取加密参数,而是模拟真实浏览器请求头与行为;#
控制请求频率与间隔,避免触发平台反爬机制;#
实现请求失败重试与断点续爬,提升采集稳定性。#
多引擎架构如何设计,为什么要拆分引擎?#
回答:
按能力边界拆分为私有舆情数据挖掘、主流媒体信息挖掘、信息核验、讨论整合、报告产出,实现高内聚低耦合;不同场景路由不同引擎,提升效率与精度;支持单模块升级不影响整体,便于维护与扩展。
报告生成这里为何不直接生成HTML/Markdown等格式的文件?#
回答:
不直接生成HTML/Markdown的原因:
LLM直接写HTML容易格式错乱、标签错误;#
Markdown表现力弱,无法承载图表、KPI、SWOT;#
一份IR可以同时渲染HTML、Markdown、PDF三份文件。#
项目采用了IR(Intermediate Representation),IR是一个介于LLM和渲染器之间的JSON结构化中间层,通过定义了16种块类型,严格约束格式,可以大幅降低大模型排版错误率。
Q项目落地与优化类问题#
项目上线后遇到过哪些性能问题?如何优化的?#
回答:
上线初期遇到过两个主要问题:#
多任务并发执行时,后端服务 CPU 占用过高,任务执行效率低;#
舆情数据入库时存在写入瓶颈,影响采集速度。#
优化方案:#
对任务调度进行优化,限制同时执行的任务数量,采用异步队列控制并发;#
对数据库写入进行批量处理,减少单条写入操作,同时对热点数据进行 Redis 缓存,提升查询效率;#
对大模型推理请求进行优化,采用批量请求与模型推理缓存,减少重复调用。优化后平台并发处理能力提升约 50%,任务执行效率显著提升。#
如何保障大模型生成报告的质量?#
回答:
通过多维度保障报告质量:①设计标准化的报告模板,通过 Prompt 工程约束大模型的输出格式、内容模块与关键信息点;②在 ReportEngine 中对模型生成的内容进行校验,检查是否存在关键信息缺失、格式错误等问题,若不满足要求则触发重新生成;③引入人工审核接口,用户可对报告内容进行修正与标注,后续可基于用户反馈优化 Prompt 与模型参数,持续提升报告质量。
Q个人能力类问题#
项目中你认为最有挑战性的部分是什么?你是如何解决的?#
回答:
最有挑战性的是多 Agent 工作流的设计与实现,初期各智能体执行混乱,状态同步困难,导致分析流程经常中断。我通过深入学习 LangGraph 的工作流编排机制,重新梳理了各智能体的依赖关系与执行顺序,设计了统一的上下文管理模块,确保各智能体的状态与结果可被正确传递;同时增加了流程监控与错误重试机制,对失败的智能体任务进行重试,确保流程稳定执行,最终解决了这一问题。
通过这个项目,你对多 Agent 架构有哪些理解与收获?#
回答:
通过这个项目,我对多 Agent 架构有了更深入的理解:多 Agent 架构的核心是分工协作与流程编排,通过将复杂任务拆解为多个子任务,让不同智能体专注于特定领域,可大幅提升任务处理的效率与质量;同时,上下文管理、状态同步与流程控制是多 Agent 架构的关键,需要设计合理的机制确保智能体间的协作顺畅。项目中我不仅掌握了 LangGraph 的使用,还对大模型应用、异步服务开发、数据采集与存储有了更全面的实践经验,提升了系统架构设计与问题解决能力。