
Enterprise-grade AI Agent Development and Operation Platform - Providing a complete solution for agent creation and distribution, knowledge base management, model proxy, memory system, and plugin ecosystem.
English | 简体中文
- Visual Orchestration: Drag-and-drop workflow design, zero-code agent creation
- Code-based Development: Support for Java/Python plugin development, flexible extension
- Multi-model Support: OpenAI, Claude, Ollama, Qwen, and other mainstream models
- Streaming Output: SSE real-time response, smooth user experience
- Multi-turn Conversations: Complete session context management
- Document Parsing: PDF, Word, Excel, Markdown, and other formats
- Vector Storage: Milvus vector database, efficient similarity search
- Intelligent Chunking: Automatic document segmentation and overlap processing
- Hybrid Retrieval: Vector search + Full-text search + QA search
- Long-term Memory: Persistent user data and preferences
- Short-term Memory: Session context management
- Classification System: 12 main categories, 50+ sub-categories
- Sensitive Information Filtering: Automatic desensitization
- Unified Interface: Shield differences between different model APIs
- Intelligent Routing: Select the optimal model based on scenarios
- Quota Management: Token billing and rate limiting
- Failover: Automatic fault tolerance switching
- Plugin Market: Publish and discover plugins
- MCP Protocol: Model Context Protocol support
- Page Applications: No-code page builder
| Category | Technology | Version |
|---|
| Language | Java | 17 |
| Framework | Spring Boot | 3.3.8 |
| Database | MySQL | 8.0+ |
| Vector Database | Milvus | 2.5.4 |
| Cache | Redis | 7.0+ |
| ORM | MyBatis Plus | 3.5+ |
| API Documentation | Knife4j | 4.0+ |
| Container | Docker | - |
| Orchestration | Kubernetes | - |
┌────────────────────────────────────────────────────────────────────────────┐
│ Frontend Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────────────────┐ │
│ │ PC Web │ │ H5 │ │ Mini App │ │ IM (Feishu/DingTalk/ │ │
│ │ │ │ │ │ │ │ WeCom/Slack) │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Access Layer │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────────┐ │
│ │ REST API │ │ Long │ │ WebSocket │ │
│ │ │ │ Connection │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Application Layer │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Component Library │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ Model│ │Know- │ │ Data │ │Plugin│ │ Work-│ │ MCP │ │ Skill│ │ │
│ │ │ │ │ ledge│ │ Table│ │ │ │ flow │ │ │ │ │ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Management Portal │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ User │ │ Audit │ │ Public │ │ Content │ │ Task │ │ │
│ │ │Management│ │Management│ │ Model │ │Management│ │Management│ │ │
│ │ ├──────────┤ ├──────────┤ ├──────────┤ ├──────────┤ ├──────────┤ │ │
│ │ │ Log │ │ Menu │ │ System │ │ │ │ │ │ │
│ │ │ Query │ │Permission│ │ Config │ │ │ │ │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Product Applications │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐ │ │
│ │ │ Web App │ │ Q&A │ │ General Agent │ │ │
│ │ │ │ │ Agent │ │ │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────┐
│ Infrastructure Layer │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Lower-level Components │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────────┐ │ │
│ │ │ Cloud │ │ nuwaclaw │ │ General Agent Engine │ │ │
│ │ │ Sandbox │ │ PC Client │ │ │ │ │
│ │ │ │ │ (mac/win/ │ │ ┌───────────────────────┐ │ │
│ │ │ │ │ docker) │ │ │ MCP Integration │ │ │
│ │ │ │ │ │ │ ├───────────────────────┤ │ │
│ │ │ │ │ │ │ │ File Management │ │ │
│ │ │ │ │ │ │ │ Skill Management │ │ │
│ │ │ │ │ │ │ │ ACP Adapter Layer │ │ │
│ │ │ │ │ │ │ │ ┌─────────────────┐ │ │ │
│ │ │ │ │ │ │ │ │ Supported Agent:│ │ │ │
│ │ │ │ │ │ │ │ │ claudecode │ │ │ │
│ │ │ │ │ │ │ │ │ opencode │ │ │ │
│ │ │ │ │ │ │ │ │ codex │ │ │ │
│ │ │ │ │ │ │ │ │ openclaw │ │ │ │
│ │ │ │ │ │ │ │ │ kimicli │ │ │ │
│ │ │ │ │ │ │ │ └─────────────────┘ │ │ │
│ │ │ │ │ │ │ ├───────────────────────┤ │ │
│ │ │ │ │ │ │ │ Browser │ │ │
│ │ │ │ │ │ │ │ Automation │ │ │
│ │ │ │ │ │ │ │ GUI Automation │ │ │
│ │ │ │ │ │ │ │ Network Channel │ │ │
│ │ │ │ │ │ │ │ Runtime Integration │ │ │
│ │ │ │ │ │ │ └───────────────────────┘ │ │
│ │ │ │ │ │ └─────────────────────────────┘ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Core Infrastructure │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────┐ │ │
│ │ │ Database │ │ Cache │ │ Vector │ │ Search │ │ Model │ │ │
│ │ │ MySQL │ │ Redis │ │ Milvus │ │ Elastic │ │ Proxy│ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────────┘
The Nuwax AI Agent Platform consists of multiple interconnected repositories:
- DDD (Domain-Driven Design): Clear layer separation
- CQRS: Command Query Responsibility Segregation
- Strategy Pattern: Model selection, plugin invocation
- Observer Pattern: Message broadcasting
- Repository Pattern: Data access abstraction
| Component | Minimum | Recommended |
|---|
| Java | JDK 17 | OpenJDK 17 |
| MySQL | 8.0+ | 8.0+ |
| Redis | 6.0+ | 7.0+ |
| Milvus | 2.5+ | 2.5+ |
| Elasticsearch | 9.2.1 | 9.2.1 |
| Memory | 4GB | 8GB+ |
| CPU | 2 cores | 4 cores+ |
git clone https://github.com/nuwax-ai/nuwax-backend.git
cd nuwax-backend
For development and testing, you can use the official deployment package to run all basic services directly.
Copy application-${env}.sample.yml to application-${env}.yml:
Option 1: Using IDE (IntelliJ IDEA, etc.)
- Open
app-platform-bootstrap/app-platform-web-bootstrap/src/main/java/com/xspaceagi/PlatformApiApplication.java
- Click the run button to start
Option 2: Using Maven Commands
# Build the project
mvn clean package -DskipTests
# Start the application
cd app-platform-bootstrap/app-platform-web-bootstrap
java -jar target/app-platform-web-bootstrap-*.jar
# Or run directly with Maven
mvn spring-boot:run -pl app-platform-bootstrap/app-platform-web-bootstrap -Pdev
Option 3: Using IDEA Maven Panel
- Open the Maven panel
- Find the
app-platform-web-bootstrap module
- Right-click and select
Run -> spring-boot:run
After starting, access the application (default port 8081):
agent-platform/
├── app-platform-bootstrap/ # Bootstrap module
│ └── app-platform-web-bootstrap/ # Web application entry point
├── app-platform-foundation/ # Foundation module
│ ├── system-spec/ # System specification
│ ├── system-sdk/ # System SDK
│ └── system-domain/ # System domain models
├── app-platform-modules/ # Business modules
│ ├── app-platform-agent/ # Agent core module
│ ├── app-platform-knowledge/ # Knowledge base module
│ ├── app-platform-memory/ # Memory module
│ ├── app-platform-model-proxy/ # Model proxy module
│ ├── app-platform-mcp/ # MCP protocol module
│ ├── app-platform-compose/ # Custom table module
│ ├── app-platform-custom-page/ # Custom page module
│ ├── app-platform-eco-market/ # Ecosystem market module
│ ├── app-platform-sandbox/ # Sandbox module
│ ├── app-platform-log/ # Logging module
│ └── platform-system/ # Platform system module
├── fast-boot-dependencies/ # Dependency management
└── specs/ # Specification documents
| Module | Description |
|---|
| Agent | Agent creation, session management, message processing |
| Knowledge | Knowledge base management, document upload, vector search |
| Memory | Long-term memory storage and retrieval |
| Model Proxy | Unified model proxy interface |
| MCP | Model Context Protocol implementation |
| Eco Market | Plugin market and template management |
| Compose | Custom table functionality |
| Custom Page | No-code page builder |
app-platform-web-bootstrap/src/main/resources/
├── application.yml # Main configuration file (common settings)
├── application-dev.yml # Development environment configuration (local use, not committed)
├── application-test.yml # Test environment configuration (optional)
└── application-prod.yml # Production environment configuration (optional)
| Variable | Description | Required | Default |
|---|
DB_HOST | MySQL database host | ✅ | localhost |
DB_PORT | MySQL port | ✅ | 3306 |
DB_NAME | Database name | ✅ | agent_platform |
DB_USERNAME | Database username | ✅ | root |
DB_PASSWORD | Database password | ✅ | - |
| Variable | Description | Required | Default |
|---|
DORIS_HOST | Doris host | ✅ | localhost |
DORIS_DB_NAME | Doris database name | ✅ | agent_custom_table |
DORIS_USERNAME | Doris username | ✅ | root |
DORIS_PASSWORD | Doris password | ✅ | - |
| Variable | Description | Required | Default |
|---|
REDIS_HOST | Redis host | ✅ | localhost |
REDIS_PORT | Redis port | ✅ | 6379 |
REDIS_PASSWORD | Redis password | ✅ | - |
REDIS_DB | Redis database number | ✅ | 1 |
| Variable | Description | Required | Default |
|---|
MILVUS_URI | Milvus connection URI | ✅ | http://localhost:19530 |
MILVUS_USER | Milvus username | ✅ | root |
MILVUS_PASSWORD | Milvus password | ✅ | - |
| Variable | Description | Required | Default |
|---|
ES_URL | Elasticsearch URL | ✅ | http://localhost:9200 |
ES_USERNAME | Elasticsearch username | ✅ | elastic |
ES_PASSWORD | Elasticsearch password | ✅ | - |
ES_API_KEY | Elasticsearch API Key | ✅ | - |
| Variable | Description | Required | Default |
|---|
JWT_SECRET_KEY | JWT signing key | ✅ | - (at least 32 characters) |
| Variable | Description | Required | Default |
|---|
COS_SECRET_ID | Tencent Cloud COS secret ID | ✅ | - |
COS_SECRET_KEY | Tencent Cloud COS secret key | ✅ | - |
COS_BASE_URL | COS access domain | ✅ | https://... |
| Variable | Description | Required | Default |
|---|
FILE_UPLOAD_FOLDER | File upload directory | ✅ | /tmp/uploads |
FILE_BASE_URL | File access URL | ✅ | https://yourdomain/api/file |
STORAGE_TYPE | Storage type, currently supports Tencent Cloud COS and local file storage | ✅ | file |
| Variable | Description | Required | Default |
|---|
SERVICE_HOST | Internal service address | ❌ | 127.0.0.1 |
BIND_HOST | Bind address | ❌ | 0.0.0.0 |
REVERSE_PORTS | Port range | ❌ | 30000-40000 |
OUTER_HOST | Client connection IP address | ❌ | - |
OUTER_PORT | Client connection port | ❌ | 6443 |
| Variable | Description | Required | Default |
|---|
MODEL_API_BASE_URL | Model API URL, corresponding to accessible MODEL_PROXY_PORT | ❌ | - |
MODEL_PROXY_ENABLE | Whether to enable proxy | ❌ | true |
MODEL_PROXY_PORT | Proxy port | ❌ | 18086 |
MODEL_PROXY_SAVE_LOG | Whether to save logs, depends on Elasticsearch | ❌ | true |
The project follows DDD layered architecture:
UI Layer → Adapter Layer → Application Layer → Domain Layer → Infrastructure Layer
Contributions of code, documentation, and bug reports are welcome!
- Fork this repository
- Create a feature branch (
git checkout -b feature/AmazingFeature)
- Commit your changes (
git commit -m 'Add some AmazingFeature')
- Push to the branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
Thanks to all developers who have contributed to this project!
This project is licensed under the Apache License 2.0.
See LICENSE file for details.
This software can be used, modified, and distributed for free, but you must:
- ✅ Retain original copyright notices
- ✅ Include the Apache 2.0 license text
- ✅ State that your product is based on this software
If you need:
- 🏢 Remove copyright notices (white-label products)
- 🔄 OEM partnership (integrate into your products for resale)
- 🎨 Custom branding (use your own brand)
- 🚀 Priority support (enterprise-level technical support)
You can apply for a commercial license to obtain additional rights.
For details, see: COMMERCIAL_LICENSE.md