Skip to content

第 1 章:项目概述与架构设计

1. 概述

1.1 背景与目标

在大语言模型(LLM)驱动的智能应用中,单一 Agent 往往难以应对复杂的研究型任务。Deep Research 项目采用多智能体协作架构,将深度研究任务拆解为意图识别、规划、检索、分析、反思、写作等阶段,由 9 个专业节点协同完成。

学习目标

  1. 理解 Deep Research 项目的定位与核心价值
  2. 掌握系统的分层架构设计
  3. 理解 LangGraph 9 节点工作流的执行逻辑
  4. 了解项目的技术栈选型与依赖关系

1.2 核心概念

概念说明
多智能体(Multi-Agent)多个具有不同职责的 AI Agent 协作完成复杂任务
LangGraphLangChain 生态的状态图编排框架,用于定义 Agent 工作流
RAG(检索增强生成)结合外部知识库检索与 LLM 生成,提升回答准确性
SSE(Server-Sent Events)服务端向客户端的单向流式推送协议
StateGraphLangGraph 中定义节点和边的状态机图结构

2. 系统架构设计

2.1 整体分层架构

架构说明

  • 表现层:Vue 3 单页应用和 CLI 终端,分别通过 SSE 和直接调用与后端交互
  • API 层:FastAPI 提供 RESTful 和 SSE 端点,WorkflowService 负责桥接 HTTP 请求与 LangGraph 工作流
  • Agent 层:LangGraph StateGraph 编排 9 个节点,形成有向图执行流
  • 数据层:4 种存储后端分别承担不同粒度的记忆和检索职责

2.2 模块划分

模块职责关键文件依赖关系
多智能体核心工作流编排、节点实现mult_agents/graph.py, nodes.pyLangGraph, LangChain
配置管理统一配置加载mult_agents/config.pypydantic-settings
提示词系统15 个 Agent 角色提示词mult_agents/prompts.py
工具系统20+ 工具函数mult_agents/tools.pyBocha API, 计算器
记忆系统4 种记忆类型管理mult_agents/memory/Redis, PostgreSQL, Milvus
RAG 系统文档检索增强mult_agents/rag/Milvus, DashScope
后端服务HTTP API + SSEapp/backend/FastAPI, Uvicorn
前端应用用户界面front/agent_front/Vue 3, Vite

3. LangGraph 9 节点工作流

3.1 工作流全景

3.2 节点职责说明

节点职责输入输出
intent_node规则 + LLM 双重分类,判断用户意图用户查询route: "direct" 或 "multiagent"
direct_answer_node处理简单问题(问候、天气等)用户查询直接回答文本
plan_node生成研究计划,拆解子问题用户查询sub_queries 列表
web_search_node调用 Bocha API 搜索互联网子查询web_results 文档列表
local_rag_node从 Milvus 向量库检索本地知识子查询local_results 文档列表
evidence_judge_node对检索结果进行可信度评分检索结果scored_evidence 列表
analyze_node综合分析,识别信息缺口评分后的证据analysis + missing_gaps
reflect_node生成补充查询,填补信息缺口信息缺口新的 sub_queries
write_node渲染最终报告,验证引用分析结果最终研究报告

3.3 数据流图


4. 技术栈详解

4.1 后端技术栈

技术版本用途选型理由
Python≥ 3.10运行环境LangGraph 生态要求
LangGraph≥ 0.2.0Agent 工作流编排状态图模型,支持条件路由和循环
LangChain≥ 1.0LLM 抽象层统一的工具和 Agent 接口
FastAPI≥ 0.123Web 框架原生异步、自动 OpenAPI 文档
Uvicorn≥ 0.35ASGI 服务器高性能异步 HTTP 服务
DashScope-LLM 提供商阿里云通义千问,国内访问稳定
psycopg≥ 3.3PostgreSQL 驱动异步支持,连接池
redis≥ 7.3Redis 客户端短期记忆和检查点存储
pymilvus≥ 2.6Milvus 客户端向量数据库交互
pydantic-settings≥ 2.0配置管理类型安全的环境变量加载

4.2 前端技术栈

技术版本用途
Vue 3≥ 3.5UI 框架(Composition API)
TypeScript≥ 5.9类型安全
Vite≥ 7.3构建工具 + 开发服务器

4.3 数据存储选型


5. 项目源码结构

5.1 核心目录

目录说明关键文件
app/mult_agents/多智能体核心graph.py, nodes.py, state.py, prompts.py, tools.py
app/mult_agents/memory/记忆系统manager.py, short_term.py, long_term.py, base.py
app/mult_agents/rag/RAG 系统core.py, ingest.py
app/backend/FastAPI 后端app_main.py, router/, schemas/, service/
front/agent_front/Vue 3 前端App.vue, vite.config.ts

5.2 配置文件

文件说明
config.json运行时配置(模型、记忆后端、集合名)
.env环境变量(API 密钥、数据库连接)
pyproject.tomlPython 项目元数据和依赖
requirements.txt精确的 Python 依赖锁定(111 个包)

6. 运行模式

6.1 CLI 交互模式

bash
# 启动交互式 REPL
python main.py

# 单次查询模式
python main.py --once-query "对比 GPT-4 和 Claude 3 的技术架构"

适用场景:本地开发调试、终端用户直接使用

6.2 Web API 模式

bash
# 启动 FastAPI 服务
uvicorn app.app_main:app --host 0.0.0.0 --port 8000

# 启动前端开发服务器
cd front/agent_front && npm run dev

适用场景:团队协作、浏览器访问、API 集成


7. 总结

7.1 核心要点

  1. 多智能体协作:9 个专业节点各司其职,通过 LangGraph StateGraph 编排为有向图工作流
  2. 双源检索:Web 搜索(Bocha API)+ 本地 RAG(Milvus)并行执行,提升信息覆盖率
  3. 迭代研究:通过 analyze → reflect → search 的循环机制,自动识别并填补信息缺口
  4. 四层存储:PostgreSQL、Redis、Milvus、SQLite 分别承担不同粒度的记忆职责
  5. 双模运行:支持 CLI 交互和 Web API 两种使用模式

7.2 扩展阅读


📖 下一章第 2 章:环境搭建与依赖管理

基于 LangGraph · FastAPI · Vue 3 · Milvus · Neo4j 构建