企业级 RAG 智能体平台,基于 Java 17 + Spring Boot 3 + React 18,支持多路检索、意图识别、会话记忆、模型容错与 MCP 工具集成
项目概述#
Ragent 是一个企业级 RAG(检索增强生成)智能体平台,采用 Java 17 + Spring Boot 3 + React 18 技术栈,定位为 Java 开发者学习 RAG/Agent/MCP 的实战项目。
核心能力#
RAG 核心#
- 多路检索引擎:意图定向检索 + 全局向量检索并行执行,支持去重、Rerank 后处理流水线
- 意图识别与引导:树形意图分类体系(领域→类目→话题),置信度不足时主动引导用户澄清
- 问题重写与拆分:多轮对话上下文补全,复杂问题自动拆分为子问题
- 会话记忆管理:滑动窗口 + 自动摘要压缩,控制 Token 成本
模型能力#
- 模型路由与容错:多模型候选、优先级调度、首包探测、三态熔断器(CLOSED → OPEN → HALF_OPEN)
- 支持供应商:百炼、SiliconFlow、Ollama、vLLM
工具集成#
- MCP 工具集成:自动提取参数并执行业务工具,知识检索与工具调用无缝融合
文档处理#
- 文档入库流水线:节点编排的 Pipeline 架构:抓取→解析→增强→分块→向量化→写入 Milvus
- 支持格式:PDF/Word/PPT/网页等多格式文档解析
生产级特性#
- 队列式并发限流(Redis ZSET + Pub/Sub)
- 8 个专用线程池 + TTL 透传
- 全链路 Trace(AOP 实现)
- SSE 流式输出 + 首包探测
- Sa-Token 认证鉴权
- Spotless 代码规范
架构设计#
ragent/
├── framework/ # 基础设施层(异常体系、幂等、分布式ID、SSE封装)
├── infra-ai/ # AI 能力层(模型供应商抽象、ChatClient 接口)
├── bootstrap/ # 业务逻辑层(RAG 核心、检索、意图、会话)
├── frontend/ # React 18 前端
├── mcp-server/ # MCP 工具服务
└── resources/ # 数据库 schema、默认数据
扩展点#
| 扩展点 | 接口 |
|---|---|
| 新增检索通道 | 实现 SearchChannel 接口,注册为 Spring Bean |
| 新增后处理器 | 实现 SearchResultPostProcessor 接口 |
| 新增 MCP 工具 | 实现 MCPToolExecutor 接口 |
| 新增入库节点 | 实现 IngestionNode 接口 |
| 新增模型供应商 | 在 infra-ai 层实现 ChatClient 接口 |
管理后台功能#
- 用户问答界面(Markdown 渲染、代码高亮、回答评价)
- 知识库管理、意图树编辑
- 入库任务监控、链路追踪查看
- 用户管理、系统设置
代码规模#
- 后端 Java 代码:约 40,000 行,400+ 源文件
- 前端 TypeScript/React 代码:约 18,000 行
- 数据库:20 张业务表
- 前端页面:22 个页面/组件
适用场景#
- 企业知识库检索系统
- 智能客服与问答机器人
- Java 开发者 RAG/Agent/MCP 工程实践学习
- 面试/学习项目(覆盖设计模式、分布式并发限流等)
环境要求#
- Java 17+
- Node.js(前端构建)
- MySQL
- Milvus 2.6(向量数据库)
- Redis
- RocketMQ 5.x(可选)
快速启动#
# 1. 克隆仓库
git clone https://github.com/nageoffer/ragent.git
# 2. 配置数据库(MySQL + Milvus + Redis)
# 3. 配置模型供应商(百炼/SiliconFlow/Ollama)
# 4. 运行后端
./mvnw spring-boot:run
# 5. 构建前端
cd frontend && npm install && npm run dev