ragent
企业级 Agentic RAG 平台:多路检索、意图识别、模型路由与 MCP 工具调用全覆盖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
企业级 Agentic RAG 平台:多路检索、意图识别、模型路由与 MCP 工具调用全覆盖
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025 年,大多数技术团队都在尝试落地 RAG。但真正把 RAG 做到生产级别的团队,少之又少。常见的困境是:调通了 Embedding 接口,往向量数据库里塞了点数据,接上 LLM 生成答案,感觉"还行"。但一旦用户问一个稍微复杂的问题——比如"根据我们公司 Q3 的财报数据,分析一下营收下降的原因,并对比 Q2 的情况"——系统就开始胡说八道,或者干脆检索不到相关内容。
这不是模型的问题,而是整个 RAG 链路设计的问题。文档怎么切分?检索策略怎么设计?多路召回怎么融合排序?意图识别怎么做?MCP 工具调用如何与知识检索无缝衔接?每一个环节都有坑,每一个坑都需要真实的业务场景才能暴露。
Ragent 正是为解决这些问题而生的。它不是玩具级的 RAG Demo,而是一个完整的企业级 Agentic RAG 平台,覆盖从文档解析到智能问答的全链路,每一处工程细节都经过真实业务场景的打磨。
图1:Ragent 系统整体架构,覆盖多路检索、模型路由、意图识别与 MCP 工具调用全链路
Ragent 的作者是"拿个offer"社群的创始人,这个社群在 GitHub 上已有多个明星项目,其中 12306 项目收获了 1.5 万 + Star。2024 年以来,随着 AI 技术浪潮席卷整个技术行业,作者敏锐地察觉到:Java 开发者如果不懂 AI,面试时会越来越被动。
问题的关键不在于大模型的原理,而在于应用层。RAG、Agent、MCP 这些技术,对应用层开发者来说才是真正有价值的。但市面上大多数 RAG 教程都是 Python 方向的,对于 Java 生态的开发者来说,Spring Boot 写惯了,陡然转向 Python 去做 AI 应用,生态不通,上手成本很高。
作者基于自己公司实际落地 RAG 系统的经验,决定用 Java/Spring Boot 重写一个企业级 RAG 系统。这个项目不是为了"炫技",而是为了解决真实问题:信息孤岛、知识检索困难、AI 落地效果不可观测等。Ragent 的每一个设计决策,都来自生产环境的实际验证。
Ragent 的技术架构分为以下几个核心层次:
文档解析层:集成 Apache Tika(3.2.3)处理 PDF、Word、Excel、Markdown 等多格式文档,支持结构化提取文本内容。这是大多数 RAG 项目容易忽略的环节——文档格式千差万别,解析质量直接决定后续检索的上限。
多路检索层:支持向量检索(Milvus 2.6.6)、全文检索、关键词检索等多通道并行召回。Ragent 的多路检索不是简单的"把结果拼在一起",而是经过去重 + 重排(Rerank) 的后处理流水线,兼顾精准度与召回率。作者在 README 中专门指出了"RAG 就等于检索 + 生成两步走"这个常见误区——真实的 RAG 系统远不止这么简单。
意图识别层:采用树形多级分类 + 置信度机制。当用户提问时,系统首先判断是否属于知识库问答范围。如果置信度不足(低于预设阈值),系统会主动引导用户澄清问题,而不是给出一个模棱两可的答案。这种设计极大提升了用户体验,也减少了幻觉(Hallucination)的产生。
模型路由与容错层:支持多模型调度,具备首包探测、健康检查、自动降级能力。当主模型不可用时,系统自动切换到备用模型,确保服务不中断。这在生产环境中是刚需——模型 API 的稳定性并不是 100%。
MCP 工具调用层:对于非知识类的用户意图(如查询天气、计算数据),Ragent 通过 MCP(Model Context Protocol)协议调用业务工具,实现检索与工具调用的无缝融合。这代表了 RAG 向 Agent 演进的趋势。
会话记忆层:支持多轮对话上下文管理,用户可以在一个会话中追问、补充条件,系统能够"记住"之前的对话内容,而不是每次都当成独立问题处理。
图2:Ragent 问答界面,支持多轮对话与上下文记忆
Ragent 提供了一套完整的管理后台,包含知识库管理、数据集管理、模型配置、对话追踪(Trace)、系统主题定制等模块。每一块都是独立的功能模块,可以单独使用。
知识库管理允许管理员上传文档、配置向量化策略;数据集管理支持创建标准评测数据集(符合 RAGAS 评测框架要求),对 RAG 系统效果进行量化评估;模型配置页支持管理多个 LLM 和 Embedding 模型,配置调用参数;对话追踪则记录每一次问答的全链路调用情况,便于排查问题和优化系统。
这套管理后台的 UI 使用 React + Tailwind CSS + shadcn/ui 构建,整体风格现代、交互流畅。
图3:Ragent 管理后台概览,提供知识库、模型配置、追踪等完整功能
Ragent 是一个典型的 Java 微服务架构项目,使用 Spring Boot 3.5.7 构建,按功能划分为四个模块:
核心依赖包括:Spring AI 2.0(LLM 调用标准抽象层)、Milvus SDK 2.6.6(向量数据库客户端)、Apache Tika 3.2.3(多格式文档解析)、MyBatis-Plus(数据库访问)、Sa-Token(轻量级认证鉴权框架)、Redisson(分布式锁和缓存)、RocketMQ(消息队列,异步文档处理流程)、AWS S3 SDK(对象存储)、OkHttp3(HTTP 客户端)。
前端使用 React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui + Zustand 状态管理,整体技术选型现代,代码组织清晰。
项目使用 Spotless Maven Plugin 做代码格式化,Mockito 做单元测试,GitHub Actions 做 CI/CD。从多模块 Maven 项目结构和各模块复杂度来看,代码规模达数万行,是真实可信的企业级项目。
部署难度:较高。Ragent 没有提供 Dockerfile 和 docker-compose.yml(仅提供了 Milvus 和 RocketMQ 的中间件 compose 文件),需要手动配置 Java 17 + Maven + 多个中间件依赖(MySQL、Redis、Milvus、RocketMQ)。官方提供了本地开发指南和在线 Demo,适合先体验再决定是否部署。
硬件需求:无需 GPU,但建议 8GB+ RAM 和 20GB+ 磁盘空间,主要占用在 MySQL、Milvus 和 RocketMQ 等中间件上。
上手门槛:适合有 Spring Boot 经验的 Java 开发者。如果你是从零开始,建议先体验在线 Demo,阅读 README 中"常见误区"部分,再按官方文档搭建本地环境。
Ragent 代表了一个重要趋势:RAG 正在从"调 API 的玩具"向"企业级工程系统"演进。随着 AI 落地进入深水区,光靠调用几个 API 已经不够了——生产环境的 RAG 系统必须考虑:多模型路由与容错、意图识别与主动澄清、可观测性与效果评测、MCP 工具生态。
对于正在准备 AI 相关面试或希望系统学习 RAG 工程的开发者来说,Ragent 是一个值得深入研究的企业级范本。对于想将 AI 能力集成到自己产品中的团队来说,Ragent 的模块化设计提供了较好的参考价值。