# erupt
**Repository Path**: erupt/erupt
## Basic Information
- **Project Name**: erupt
- **Description**: 通用 ADMIN 低代码框架,纯注解驱动开发,零前端代码,构建服务端多维表格,支持 AI、拖拽分析、流程引擎、SaaS 等能力
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://www.erupt.xyz
- **GVP Project**: No
## Statistics
- **Stars**: 4856
- **Forks**: 1428
- **Created**: 2018-10-09
- **Last Updated**: 2026-07-20
## Categories & Tags
**Categories**: backend
**Tags**: 低代码, 流程引擎, AI, claw, MCP
## README
中文 | [English](README.md)
---
ERUPT
注解驱动的 JAVA 管理后台框架 · AI HARNESS
一个类 = 一套后台页面 · 零前端 · 2~5s 启动 · 50+ 大模型 · MCP 原生 · A2A
[ 在线体验 ]
[ 创建项目 ]
[ 文档 ]
[ 官网 ]
---

---
## 00 · 为什么选 ERUPT
| | |
|------------------|---|
| `一个类 = 一套页面` | 在 JPA 实体上写注解,直接得到完整后台页面。零 Controller、零前端打包、零脚手架。 |
| `极速启动` | 2~5 秒起一个完整管理后台。Java 17 + Spring Boot 3.x。 |
| `30+ 组件` | 日期、滑块、树、代码编辑器、参照表格、自动补全、地图、签名、Markdown —— 开箱即用。 |
| `内置全家桶` | RBAC、审计日志、Excel 导入导出、OpenAPI。每个 `@Erupt` 实体自动是一个带权限的 REST 接口。 |
| `AI NATIVE` | 50+ 大模型、MCP 原生工具、70 万+ Skills。全部通过管理界面配置。 |
| `多数据库` | JPA:MySQL · PostgreSQL · Oracle · SQL Server · 达梦。MongoDB 走 `erupt-mongodb`。 |
| `生态` | `erupt-cloud` 分布式配置。商业模块 Chart / Flow / Tenant / Cube 覆盖报表、工作流、SaaS、BI。 |
---
## 01 · 快速开始
### A — 源码启动
克隆并运行内置示例。内嵌 H2,无需配置。
```bash
git clone https://github.com/erupts/erupt.git
cd erupt
mvn spring-boot:run -pl erupt-sample -am
# → http://localhost:8080 登录:erupt / erupt
```
### B — DOCKER
全家桶镜像 —— [hub.docker.com/r/erupts/erupt](https://hub.docker.com/r/erupts/erupt)。基于 `erupt-spring-boot-starter-all` 构建:designer、job、monitor、magic-api、notice、AI、cloud-server、内嵌 H2。零配置启动。
```bash
docker run -p 8080:8080 erupts/erupt
# → http://localhost:8080 登录:erupt / erupt
```
生产环境:通过 `-e` 环境变量切换 MySQL / Redis —— [镜像使用说明 →](./deploy/erupt-docker/README.md)
### C — MAVEN
**1 · 加一个依赖。**
```xml
xyz.erupt
erupt-spring-boot-starter
${erupt.version}
```
这一个 starter 已包含跑起来一个 admin 所需的全部依赖(`erupt-admin` + `erupt-web`)。想要全部可选模块(designer、job、generator、monitor、magic-api、websocket、notice、print、terminal、AI、cloud-server)?改用 `erupt-spring-boot-starter-all`。
**2 · 在 JPA 实体上写注解。这就是整个 UI。**
```java
@Erupt(name = "用户")
@Entity
public class User extends BaseModel {
@EruptField(
views = @View(title = "姓名"),
edit = @Edit(title = "姓名", search = @Search)
)
private String name;
}
```
**3 · 启动。**
```bash
mvn spring-boot:run
# → http://localhost:8080 登录:erupt / erupt
```
分页、搜索、导出、行列权限,全都有了。加一个字段,刷新,立刻出现。
> `零安装` —— [demo.erupt.xyz](https://demo.erupt.xyz)(`guest / guest`)
> `起手项目` —— [start.erupt.xyz](https://start.erupt.xyz) 在浏览器里直接生成
> `完整教程` —— [docs.erupt.xyz/guide/quick-start](https://docs.erupt.xyz/guide/quick-start)
更多 —— 滑块、Choice、自定义按钮、LambdaQuery
```java
@Erupt(
name = "Simple",
power = @Power(importable = true, export = true),
rowOperation = @RowOperation(
title = "自定义操作",
mode = RowOperation.Mode.SINGLE,
operationHandler = OperationHandlerImpl.class
)
)
@Table(name = "t_simple")
@Entity
public class Simple extends BaseModel {
@EruptField(
views = @View(title = "文本"),
edit = @Edit(title = "文本", notNull = true, search = @Search)
)
private String input;
@EruptField(
views = @View(title = "日期"),
edit = @Edit(title = "日期", search = @Search)
)
private Date date;
@EruptField(
views = @View(title = "滑块"),
edit = @Edit(title = "滑块", type = EditType.SLIDER, search = @Search,
sliderType = @SliderType(max = 90, markPoints = {0, 30, 60, 90}, dots = true))
)
private Integer slide;
@EruptField(
views = @View(title = "选择项"),
edit = @Edit(title = "选择项", type = EditType.CHOICE, search = @Search,
choiceType = @ChoiceType(
fetchHandler = SqlChoiceFetchHandler.class,
fetchHandlerParams = "select id, name from e_upms_menu"
))
)
private Long choice;
}
```
类型安全的 LambdaQuery 链式查询:
```java
List list = eruptDao.lambdaQuery(EruptUser.class)
.like(EruptUser::getName, "e")
.isNull(EruptUser::getWhiteIp)
.in(EruptUser::getId, 1, 2, 3, 4)
.ge(EruptUser::getCreateTime, "2023-01-01")
.list();
```
更多场景 —— [erupt.xyz/#!/contrast](https://www.erupt.xyz/#!/contrast)
---
## 02 · 开箱即用
| | |
|---|---|
| `UI 自动生成` | 表格、表单、搜索、分页、树视图、甘特图、卡片视图、20+ 表单组件 —— 全部由 `@View` / `@Edit` / `@Search` 驱动。 |
| `权限管控 · UPMS` | 用户、角色、菜单、行级筛选、列级可见性。`@Filter` 上写 SpEL。OAuth2 / LDAP / SSO。 |
| `OPENAPI` | 每个 `@Erupt` 实体自动成为 REST 接口,权限规则与界面完全一致。 |
| `多数据库` | JPA:MySQL · PostgreSQL · Oracle · SQL Server · 达梦。MongoDB 走 `erupt-mongodb`。 |
| `EXCEL` | 导入导出走 `erupt-excel`。自定义就覆盖 `DataProxy` 的 `excelImport` / `excelExport`。 |
| `AI HARNESS` | `erupt-ai` —— 50+ 大模型、MCP 原生工具、内置 RBAC。[→ 03](#03--ai-harness) |
| `AI CLAW` | `erupt-ai-claw` —— 用自然语言驱动实体、Shell、文件、浏览器。[→ 04](#04--ai-claw) |
| `集群` | `erupt-cloud` 分布式配置。商业模块 `erupt-tenant` 提供完整 SaaS。[→ 05](#05--cloud) |
> `该引入哪个 AI 模块?` —— 要原生 LLM / MCP 能力、自己写 agent,选 `erupt-ai`;想直接给 admin 装个开箱即用的 AI 助手,选 `erupt-ai-claw`(已传递依赖 `erupt-ai`,只需引这一个)。
模块列表 —— [erupt.xyz/#!/module](https://www.erupt.xyz/#!/module) · API 文档 —— [javadoc.erupt.xyz](https://javadoc.erupt.xyz)
---
## 03 · AI HARNESS
> `erupt-ai` —— JVM 上的生产级 AI Agent。50+ 大模型 · MCP 原生 · 内置 RBAC · 角色级 system prompt · 会话历史。全部通过管理界面配置。零样板代码。
**为什么叫「HARNESS」** —— 把 AI 推到生产环境,需要的不只是 SDK:**治理**(RBAC)+ **互操作**(MCP)+ **可观测**(会话历史、Token 追踪)+ **运维友好**(管理界面配置)。四件事,一次配齐。
**支持的大模型** —— OpenAI · Claude · Gemini · DeepSeek · 通义千问 · 智谱 GLM · 豆包 · Moonshot · MiniMax · Mistral · Grok · Fireworks · Together · OpenRouter · Requesty · Ollama(本地)—— 管理界面里随时热切换,共 50+ 个。
| | |
|---|---|
| `多模型切换` | 通过管理界面配置多个 LLM。无需修改代码即可切换。 |
| `流式输出 · SSE` | 实时逐 token 响应,可配置超时时间。 |
| `思考模型` | 原生支持推理模型(DeepSeek、Kimi-K2)。 |
| `MCP` | 接入任意 MCP 工具服务器。SSE & STDIO 传输。自动健康检查与重连。 |
| `A2A` | Agent 之间通过标准 A2A 协议互相调用。原生支持多 Agent 协作。 |
| `AI TOOLBOX` | 将任意 Spring Bean 暴露为 AI 工具 —— `@AiToolbox` + `@Tool`。 |
| `TOOL 安全` | 每个 AI 工具都受 `LLMRole` 管控。按角色白名单或回收,运行时生效,无需重启。 |
| `AGENTIC` | 自定义 Agent 的系统提示词、提示词列表、动态 Prompt 处理器,原生集成 MCP 工具。 |
| `会话历史` | 按用户隔离的对话会话,Token 用量追踪,支持软删除。 |
| `长期记忆` | 跨会话记忆持久化。重要决策自动写入记忆,下次会话自动加载。 |
```java
@AiToolbox
@Component
public class MyTools {
@Tool("根据订单ID查询订单状态")
public String getOrderStatus(String orderId) {
return orderService.getStatus(orderId);
}
}
```
LLM 提供商、MCP 服务器、Agent —— 全部通过内置管理界面配置。无需重启。
---
## 04 · AI CLAW
> `erupt-ai-claw` —— 通过自然语言直接驱动服务器,像与同事对话一样简单。
| | |
|---|---|
| `模型操作` | 通过对话对任意 `@Erupt` 实体进行增删改查。 |
| `SHELL` | 用自然语言直接运行系统命令。 |
| `文件读写` | 读取和写入服务器文件。 |
| `浏览器` | 在 MCP 菜单中添加配置即可与浏览器交互。 |
| `SKILLS · 70 万+` | 兼容 [skills.sh](https://skills.sh) 70 万+ Skills。AI 自动匹配执行。支持动态创建 Skill。 |
Claw 与 AI Harness 共享同一套基于 Role 的 Tool 安全机制 —— 非管理员账号只能调用被白名单的工具。Skills 存放于 `~/.erupt/skills/`,也可在对话中动态创建。
---
## 05 · CLOUD
> `erupt-cloud` —— 把注解驱动的后台体验带到分布式 Spring Boot 部署。集中配置、服务拓扑、节点级后台 —— 同一套 `@Erupt` 模型。
```
┌────────────────────────────┐
│ erupt-cloud-server │ 中心控制台
│ 配置 · 节点 · 拓扑 │
└──────────────┬─────────────┘
│ 注册 / 拉取配置
┌───────────┼───────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐
│ node │ │ node │ │ node │ erupt-cloud-node
│ + own │ │ + own │ │ + own │ 每个服务自带后台
│ admin │ │ admin │ │ admin │
└───────┘ └───────┘ └───────┘
```
| | |
|---|---|
| `配置中心` | 多维度:配置结构、节点、发布策略。实例按需同步。 |
| `轻依赖` | 对 Spring Boot / 微服务栈侵入极小。版本与 Erupt 主线保持一致。 |
| `拓扑` | 集群拓扑、调用关系、配置发布 —— 一个控制台看全。 |
| `集群内后台` | 每个业务服务都能挂载自己的 Erupt 后台。无需为每个子系统重复搭脚手架。 |
| `审计` | 每次配置变更都有迹可循。比版本级回滚更细粒度。 |
[docs.erupt.xyz/modules/erupt-cloud](https://docs.erupt.xyz/modules/erupt-cloud) · [erupt.xyz/#!/cloud](https://www.erupt.xyz/#!/cloud)
---
## 06 · 商业模块
> `核心永久免费开源` —— `erupt-core` / `erupt-annotation` / `erupt-web` / `erupt-jpa` / `erupt-upms` / `erupt-ai` 等核心模块永久遵循 Apache 2.0 协议。无 License 限制 · 无项目数限制 · 无商用限制([官方治理承诺 →](./.github/GOVERNANCE.md))。商业模块是核心之外可选的企业级扩展,与开源核心独立演进。
| 模块 | 用途 | 文档 |
|---|---|---|
| `ERUPT CHART` | 报表图表 / 数据可视化 | [文档 →](https://docs.erupt.xyz/modules/pro/erupt-chart) |
| `ERUPT FLOW` | 流程引擎 / 审批工作流 | [文档 →](https://docs.erupt.xyz/modules/pro/erupt-flow) |
| `ERUPT SAAS` | 多租户基建 | [文档 →](https://docs.erupt.xyz/modules/pro/erupt-tenant) |
| `ERUPT CUBE` | BI 平台(语义层 + 拖拽分析) | [文档 →](https://docs.erupt.xyz/modules/pro/erupt-cube) |
源码交付 · 一次买断 · 永久使用。
**[定价与购买 →](https://www.erupt.xyz/?utm_source=gitee&utm_medium=readme&utm_campaign=pro#!/pro)**
---
## 07 · 参与贡献
免费且开源。提交代码、反馈缺陷、交流想法、分享案例、撰写博客 —— 一切贡献都欢迎。
请先阅读[贡献指南](./.github/CONTRIBUTING.md),然后提交 [Issue](https://github.com/erupts/erupt/issues) 或 [Pull Request](https://github.com/erupts/erupt/pulls)。
[](https://github.com/erupts/erupt/graphs/contributors)
> `觉得 Erupt 帮到了你?请给个 Star。` 开源不易,对项目成长帮助很大。
---
## 08 · LICENSE
[Apache 2.0](./LICENSE) —— 免费 · 开源 · 可商用 · 可二次开发。
作者 — YuePeng · erupts@126.com