Enterprise-grade RAG Agent platform built on Java 17 + Spring Boot 3 + React 18, featuring multi-channel retrieval, intent recognition, conversation memory, model fault tolerance, and MCP tool integration.
Overview#
Ragent is an enterprise-grade RAG (Retrieval-Augmented Generation) Agent platform built on Java 17 + Spring Boot 3 + React 18, designed as a practical project for Java developers to learn RAG/Agent/MCP engineering.
Core Capabilities#
RAG Core#
- Multi-channel Retrieval Engine: Intent-directed retrieval + global vector retrieval in parallel, with deduplication and Rerank post-processing pipeline
- Intent Recognition & Guidance: Tree-based intent classification system (Domain → Category → Topic), actively guides users to clarify when confidence is insufficient
- Query Rewriting & Decomposition: Multi-turn dialogue context completion, automatic decomposition of complex queries into sub-queries
- Conversation Memory Management: Sliding window + auto summarization compression to control token costs
Model Capabilities#
- Model Routing & Fault Tolerance: Multi-model candidates, priority scheduling, first-packet detection, three-state circuit breaker (CLOSED → OPEN → HALF_OPEN)
- Supported Providers: Bailian, SiliconFlow, Ollama, vLLM
Tool Integration#
- MCP Tool Integration: Automatic parameter extraction and business tool execution, seamless fusion of knowledge retrieval and tool invocation
Document Processing#
- Document Ingestion Pipeline: Node-orchestrated Pipeline architecture: Fetch → Parse → Enhance → Chunk → Vectorize → Write to Milvus
- Supported Formats: PDF/Word/PPT/Web and other multi-format document parsing
Production Features#
- Queue-based rate limiting (Redis ZSET + Pub/Sub)
- 8 dedicated thread pools + TTL propagation
- Full-chain tracing (AOP implementation)
- SSE streaming output + first-packet detection
- Sa-Token authentication and authorization
- Spotless code standards
Architecture#
ragent/
├── framework/ # Infrastructure layer (exception system, idempotency, distributed ID, SSE wrapper)
├── infra-ai/ # AI capability layer (model provider abstraction, ChatClient interface)
├── bootstrap/ # Business logic layer (RAG core, retrieval, intent, conversation)
├── frontend/ # React 18 frontend
├── mcp-server/ # MCP tool service
└── resources/ # Database schema, default data
Extension Points#
| Extension Point | Interface |
|---|---|
| New retrieval channel | Implement SearchChannel interface, register as Spring Bean |
| New post-processor | Implement SearchResultPostProcessor interface |
| New MCP tool | Implement MCPToolExecutor interface |
| New ingestion node | Implement IngestionNode interface |
| New model provider | Implement ChatClient interface in infra-ai layer |
Admin Dashboard Features#
- User Q&A interface (Markdown rendering, code highlighting, answer rating)
- Knowledge base management, intent tree editing
- Ingestion task monitoring, trace viewing
- User management, system settings
Code Scale#
- Backend Java code: ~40,000 lines, 400+ source files
- Frontend TypeScript/React code: ~18,000 lines
- Database: 20 business tables
- Frontend: 22 pages/components
Use Cases#
- Enterprise knowledge retrieval systems
- Intelligent customer service and Q&A bots
- Java developers learning RAG/Agent/MCP engineering
- Interview/learning projects (covering design patterns, distributed rate limiting, etc.)
Requirements#
- Java 17+
- Node.js (frontend build)
- MySQL
- Milvus 2.6 (vector database)
- Redis
- RocketMQ 5.x (optional)
Quick Start#
# 1. Clone repository
git clone https://github.com/nageoffer/ragent.git
# 2. Configure databases (MySQL + Milvus + Redis)
# 3. Configure model providers (Bailian/SiliconFlow/Ollama)
# 4. Run backend
./mvnw spring-boot:run
# 5. Build frontend
cd frontend && npm install && npm run dev