用户输入一个研究主题,系统调度 规划者 → 检索者 → 撰写者 → 审校者 四个智能体分工协作,自动产出带引用来源的结构化研究报告,并实时可视化每一步进度。核心链路:输入主题 → 规划大纲 → 检索素材 → 撰写正文 → 审校修订 → 输出报告(含大纲、引用来源、审校意见)。技术栈:Python 3.13 · FastAPI · pydantic · httpx · 原生 HTML/CSS/JS(无构建、无 CDN)。多智能体编排为手写编排器(零重依赖,便于讲解原理,可平滑升级 LangGraph)
功能与业务实现描述1. 登录与访客进入
业务功能:进入控制台前的访问门槛;支持账号登录或「访客进入」。
实现方式:前端 localStorage 会话标记(mlab_auth);演示环境不接真实鉴权。
2. 主题输入与任务创建
业务功能:输入研究主题并启动报告生成,支持回车提交。
实现方式:POST /api/reports 校验非空 → JobStore.create() 生成任务(内存)→ 后台线程 start_job() 启动流水线 → 立即返回 job_id,前端据此订阅进度。
3. 多智能体协作流水线
业务功能:四个智能体按「规划 → 检索 → 撰写 → 审校」依次分工,各自产出中间结果并传递给下一步。
实现方式:orchestrator.run_pipeline() 在后台线程顺序调用四个 Agent;每个 Agent 通过 emit() 回调上报进度。规划者产出 4 章节大纲;检索者收集素材并分配给各章节;撰写者按大纲写作并标注引用 [1][2];审校者产出改进意见与修订版。演示模式用内置模板 + 素材库确定性生成,真实模式调用大模型(失败自动回退,保证不崩)。
4. 实时进度可视化
业务功能:用户实时看到当前进行到第几步、正在做什么。
实现方式:GET /api/reports/{id}/stream 通过 SSE 推送 progress 事件;前端渲染垂直时间轴(待办 → 进行中发光 → ✓ 完成)+ 进度条 + 「第 X/4 步」计数 + 实时状态栏(如「正在联网检索…」)。
5. 研究大纲展示
业务功能:生成前先展示规划出的章节大纲,让流程透明。
实现方式:规划者产出 sections[{title, description}],完成后前端将其渲染到「研究大纲」卡片。
6. 报告生成与渲染
业务功能:产出结构化 Markdown 报告,以论文式排版呈现。
实现方式:撰写者按章节生成正文(含引用编号);前端内置轻量 Markdown 渲染器转成 HTML(支持标题/列表/引用/加粗/代码),无需外部依赖。
7. 审校意见
业务功能:展示审校者提出的改进意见,以及修订后的版本。
实现方式:审校者产出 critique(多条意见)+ revised_md(修订版);前端优先渲染修订版,并展示「审校意见」卡片。
8. 参考来源
业务功能:报告底部列出引用来源(可点击跳转),增强可信度。
实现方式:检索者产出 sources[{title, url, snippet}],前端渲染为来源列表卡片。
9. 历史报告
业务功能:查看过往生成的主题与状态,点击可回看历史报告。
实现方式:GET /api/reports 返回任务列表(倒序);点击某条 → GET /api/reports/{id} 拉取详情并渲染。
10. 导出 PDF
业务功能:一键把