ProjectsMay 9, 202611 分钟/阅读时间

Agentic科研服务平台 - Project Detail

Agentic科研服务平台 - Project Detail

Research Agent — 项目概要描述

最后更新: 2026-05-02

1. 项目定位

Research Agent 是一个多服务 AI 研究助手平台,帮助研究人员高效完成文献检索、论文精读、对比分析、Related Work 生成、数据分析、论文库管理和知识沉淀等任务。平台将大语言模型(LLM)与学术搜索 API 深度整合,通过 LangGraph 编排多步骤 AI 工作流,并提供实时执行追踪。


2. 核心功能

2.1 用户认证

  • 支持 GoogleGitHub OAuth2 社交登录
  • JWT 无状态认证,Token 有效期 24 小时
  • 登录后前端存储 Token,所有 API 请求自动携带

2.2 研究项目管理

  • 创建、删除研究项目
  • 向项目添加成员,支持 OWNER / EDITOR / VIEWER 三级角色
  • 项目内集中管理文件、论文、工作流任务

2.3 六种 AI 工作流

工作流功能典型输入 → 输出
QA基于论文回答研究问题问题 + 论文列表 → 有证据引用的答案 + 质量评判
Compare多篇论文对比分析论文列表 → 多维度对比报告 + BibTeX 导出
Related Work生成文献综述主题关键词 → Related Work 文本(含修订循环)
Compute数据分析与可视化代码/表格/绘图参数 → 执行结果 + 图表/Notebook
Library搜索并保存论文搜索查询 → 去重后的论文列表 → 保存至个人库
Wiki自动生成知识条目论文/主题 → 结构化 Wiki 条目(7 节/6 节模板)

每种工作流均可开启 Judge 评判,由 LLM 自动评估结果质量(正确性、证据基础、引文一致性、完整性、清晰度)。

2.4 论文库管理

  • 上传文件(PDF 等)并自动解析、索引
  • 搜索并保存论文(支持幂等性 Key)
  • 列出、查看、删除收藏的论文
  • 添加笔记和标签

2.5 Wiki 知识库

  • 按论文或主题自动生成结构化 Wiki 条目
  • 条目包含多章节 Markdown 正文、标签、关联论文/条目链接
  • 支持按类型(PAPER / TOPIC)和标签过滤浏览

2.6 实时执行追踪

  • SSE 实时推送: 前端通过 EventSource 订阅任务状态、步骤执行、产物生成
  • Trace 查看器: 完整的执行轨迹回放(步骤时间线、工具调用、Judge 评分、可观测性指标)
  • 产物管理: 下载/预览任务生成的图表、BibTeX、Notebook 等文件

2.7 通知系统

  • 任务完成/失败、项目共享等事件自动生成通知
  • 未读计数轮询(30 秒间隔)
  • 支持单条/全部标记已读

3. 技术架构

3.1 整体架构

┌──────────────────────────────────────────────────────────────────┐
│                        用户浏览器                                 │
│                  React 18 + TypeScript + Vite                     │
└────────────────────────────┬─────────────────────────────────────┘
                             │ HTTPS / HTTP
                             ▼
┌────────────────────────────┴─────────────────────────────────────┐
│                    Frontend (Nginx :80)                           │
│             静态文件服务 + /api/* 反向代理                         │
└────────────────────────────┬─────────────────────────────────────┘
                             │ /api/* (JWT Bearer Token)
                             ▼
┌────────────────────────────┴─────────────────────────────────────┐
│                Java Backend (Spring Boot 3.3.4 :8080)            │
│                                                                   │
│  认证授权  │  项目管理  │  工作流编排  │  论文库  │  Wiki         │
│  OAuth2    │  CRUD     │  任务分发    │  CRUD   │  CRUD         │
│  + JWT     │  + 共享   │  SSE 推送   │  + 文件  │               │
│                                                                   │
│  数据持久化:Spring Data JPA + Flyway 迁移                        │
└──────┬───────────────────────────────┬───────────────────────────┘
       │ SQL (JDBC)                    │ HTTP REST
       ▼                               │ POST /workflows/*
┌──────┴──────────┐          ┌─────────┴───────────────────────────┐
│   PostgreSQL    │          │   Python Agent (FastAPI :8000)       │
│   :5432         │          │                                      │
│                  │          │  LangGraph 工作流引擎                │
│  15 张表        │          │  7 种工作流 · 22 个图节点 · 27 个工具│
│                  │          │                                      │
│                  │          │  LLM 集成  │  学术搜索 API           │
│                  │          │  OpenAI    │  OpenAlex / arXiv       │
│                  │          │  兼容 API  │  Semantic Scholar 等    │
│                  │          │                                      │
│                  │          │  向量存储  │  产物管理               │
│                  │          │  ChromaDB  │  本地文件系统            │
└──────────────────┘          └─────────────────────────────────────┘

3.2 技术选型

层级技术说明
前端框架React 18.3 + TypeScript 5.617 个组件,React Router 客户端路由
前端构建Vite 5.4快速 HMR,生产构建
前端实时EventSource (SSE)任务执行状态实时推送
API 网关Nginx 1.25静态服务 + 反向代理
业务中台Spring Boot 3.3.4 + Java 17认证、项目、工作流编排、REST API
安全框架Spring Security + OAuth2 + JWT社交登录 + 无状态 Token
ORMSpring Data JPA + Hibernate实体映射,ddl-auto: validate
数据库迁移Flyway6 个版本迁移脚本
数据库PostgreSQL 16 (生产) / H2 (开发)UUID 主键,CLOB 存 JSON
AI 编排LangGraph 0.2.20StateGraph 构建 7 种工作流
Web 框架FastAPI 0.111Python 异步 REST API
数据验证Pydantic 2.8AgentState ~90 字段 + 请求/响应 Schema
LLM 调用自定义 urllib 客户端OpenAI 兼容 API,速率限制,指数退避
学术搜索OpenAlex / arXiv / Semantic Scholar / PubMed / DBLP / Crossref并行搜索,DOI 去重
PDF 解析pdfplumber 0.10结构化内容提取
数据分析pandas 2.2 + matplotlib 3.8表格分析 + 图表生成
向量存储ChromaDB 0.5可选,支持语义检索
部署编排Docker Compose4 服务 + 3 命名卷
CI/CDGitHub Actions4 Job 流水线(lint-test + build + docker-build)

3.3 核心设计模式

Provider Mode 系统: Python 后端的每个外部依赖(LLM、学术 API、向量存储、Java 客户端等)都通过 mock / real / hybrid 模式控制。开发时使用 mock 模式无需外部服务,生产环境强制 real 模式。

回调架构: Java 和 Python 之间采用回调模式——Java 是编排器/状态存储,Python 是执行引擎。Python 在执行过程中通过 HTTP 回调向 Java 报告进度。

图节点包装器: LangGraph 的每个节点通过 run_node() 统一包装,自动获得重试、检查点、可观测性发射和 Java 客户端同步能力。


4. 工作流执行流程

QA 工作流为例:

1. 用户输入问题 + 选择论文 → 前端 POST /api/workflows/qa
2. Java 创建 AgentTask,@Async 转发至 Python
3. Python LangGraph 执行:
   a. intent_router: 分析意图,路由至文档管线
   b. search_node: 并行搜索 5 个学术 API
   c. resolve_identity_node: 论文去重与标识解析
   d. prepare_documents: 下载 PDF → 解析 → 分块 → 向量索引
   e. ask_node: 检索相关证据 + LLM 生成回答
   f. judge_node: LLM 评估回答质量(5 维度评分)
   g. compose_node: 组装最终答案 + Judge 评分
   h. observability_node: 记录 Trace 指标
4. 执行过程中逐步回调 Java 更新步骤/事件
5. Java 通过 SSE 将实时状态推送给前端
6. 前端 TaskDetailPage 展示执行时间线 + 最终答案

5. 部署方式

# 1. 配置环境变量
cp .env.example .env
# 编辑 .env: 设置 LLM_API_KEY、JWT_SECRET、OAuth2 Client ID/Secret 等

# 2. 一键启动
docker compose up -d

# 3. 访问
# 前端: http://localhost
# Java API: http://localhost:8080
# Python API: http://localhost:8000
# Swagger: http://localhost:8000/docs

四个容器: frontend(Nginx:80) + java-backend(Spring Boot:8080) + python-agent(FastAPI:8000) + postgres(PostgreSQL:5432)


6. 项目结构速览

research_agent/
├── frontend/                # React 18 + TypeScript + Vite 前端
│   ├── src/
│   │   ├── api/             # API 客户端 + 服务函数 + SSE Reducer
│   │   ├── components/      # 17 个 UI 组件
│   │   ├── context/         # Auth React Context
│   │   ├── pages/           # 9 个页面
│   │   └── types/           # TypeScript 类型契约
│   └── nginx.conf           # Nginx 反向代理 + SPA 回退
├── java-backend/            # Spring Boot 3.3.4 Java 中台
│   └── src/main/
│       ├── java/com/research/agent/
│       │   ├── controller/  # 12 个 REST 控制器
│       │   ├── service/     # 12 个业务服务
│       │   ├── entity/      # 15 个 JPA 实体
│       │   ├── repository/  # 15 个数据仓库
│       │   ├── dto/         # 请求/响应 DTO
│       │   └── config/      # 安全、JWT、CORS、异步配置
│       └── resources/db/migration/  # 6 个 Flyway SQL 迁移
├── app/                     # FastAPI 应用入口 + API Schema
├── domain/                  # Pydantic 领域模型
├── graph/                   # LangGraph 工作流 + 22 个图节点
├── tools/                   # 27 个工具(8 类别)
├── integrations/            # 18 个第三方集成
├── judge/                   # LLM 评判管线
├── observability/           # 三层可观测性系统
├── prompts/                 # 7 个 LLM Prompt 模板
├── tests/                   # 单元测试 + 集成测试
├── scripts/                 # 开发环境引导 + E2E 脚本
├── docker-compose.yml       # 4 服务编排
└── TECHNICAL_DOCUMENTATION.md  # 详细技术文档