# erupt **Repository Path**: erupt/erupt ## Basic Information - **Project Name**: erupt - **Description**: 通用 ADMIN 低代码框架,纯注解驱动开发,零前端代码,构建服务端多维表格,支持 AI、BI、工作流、SaaS 等能力 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.erupt.xyz - **GVP Project**: No ## Statistics - **Stars**: 4848 - **Forks**: 1421 - **Created**: 2018-10-09 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: backend **Tags**: 低代码, 流程引擎, AI, claw, MCP ## README 中文   |   [English](README.md) ---

Erupt

Erupt · 注解驱动的 Java 管理后台框架

AI Harness · 50+ 大模型 · MCP 原生 · A2A 协议

Java 注解 · Spring Boot 3 · 零前端 · 2~5s 启动

---

maven-central license Apache 2.0 GitHub stars GitHub forks gitcode Gitee star Gitee fork last-commit latest-release discussions

---

在线体验   创建项目   阅读文档   官网   Linq.J

---

Erupt · 注解驱动的 Java 管理后台框架 · AI Harness

[//]: # (

Erupt Engine

) --- ## 💡 为什么选 Erupt? - **一个类文件 = 一套后台页面。** 零 Controller、零前端打包、零脚手架。 - **极速启动。** Java 17 + Spring Boot 3.x,**2~5 秒**起一个完整管理后台。 - **20+ 表单组件**开箱即用:日期、滑块、树、代码编辑器、参照表格、自动补全、地图、签名、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 覆盖报表、工作流、多租户、语义层 BI。 --- ## ⚡ 60 秒上手 https://github.com/user-attachments/assets/aa348010-a894-4b3e-9217-a30fd3acadfa ### 1. 加两个依赖 ```xml xyz.erupt erupt-admin ${erupt.version} xyz.erupt erupt-web ${erupt.version} ``` ### 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 ``` 你已经拿到一个**带分页、搜索、导出、行列权限**的后台页面,数据来自 `User` 表。加一个字段、刷新、立刻出现。 > 不想克隆代码?直接试 **[demo.erupt.xyz](https://demo.erupt.xyz)**(`guest / guest`)。 > 想生成一个起手项目?**[start.erupt.xyz](https://start.erupt.xyz)** 在浏览器里就能生成。 > 需要完整说明?**[详细使用步骤 →](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(vague = true)) ) 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)**
--- ## 📦 开箱即用的能力
**🧱 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。[→ 详情见下方](#-erupt-ai-harness--spring-boot-上的生产级-ai-agent-框架) **🦞 AI Claw(`erupt-ai-claw`)** 用自然语言驱动 Erupt 实体、Shell、文件、浏览器。[→ 详情见下方](#-erupt-ai-claw) **☁️ 集群与多租户** `erupt-cloud` 提供分布式配置;商业模块 `erupt-tenant` 提供完整 SaaS 能力。
完整模块列表:**[erupt.xyz/#!/module](https://www.erupt.xyz/#!/module)**  ·  API 文档:**[javadoc.erupt.xyz](https://javadoc.erupt.xyz)** --- ## 🐴 Erupt AI Harness · Spring Boot 上的生产级 AI Agent 框架 > `erupt-ai` 模块 —— Spring Boot 的 **AI Harness**:50+ 大模型 · MCP 原生工具 · 内置 **RBAC** 角色权限 · 角色级 system prompt · 会话历史 —— 全部通过管理界面配置,零样板代码。 **为什么叫「Harness」?** 把 AI 推到生产环境,需要的不只是 SDK,而是 **治理(RBAC)+ 互操作(MCP)+ 可观测(会话/Token 追踪)+ 运维友好(管理界面配置)** 四件事。Erupt AI Harness 一次提供齐全。 ### 支持 50+ 大模型提供商 OpenAI · Claude · Gemini · DeepSeek · 通义千问 · 智谱 GLM · 豆包 · Moonshot · MiniMax · Mistral · Grok · Fireworks · Together · OpenRouter · Ollama(本地)—— **管理界面里随时热切换,共 50+ 个。** ### 核心能力 - **多模型切换** —— 通过管理界面配置多个 LLM,无需修改代码即可切换 - **流式输出(SSE)** —— 实时逐 token 响应,可配置超时时间 - **思考模型支持** —— 原生支持推理模型(DeepSeek、Kimi-K2) - **MCP 协议** —— 接入任意 MCP 工具服务器(SSE & STDIO),自动健康检查与重连 - **A2A 协议(Agent-to-Agent)** —— Agent 之间通过标准 A2A 协议互相调用,原生支持多 Agent 协作 - **AI Toolbox** —— 通过 `@AiToolbox` + `@Tool` 注解将任意 Spring Bean 暴露为 AI 工具 - **Tool 安全 · Role 动态管控** —— 每个 AI 工具都受 `LLMRole` 管控,可按角色白名单或回收单个工具,运行时生效,无需重启 - **Agentic AI 框架** —— 自定义 AI Agent 的系统提示词、提示词列表、动态 Prompt 处理器,原生集成 MCP 工具 - **会话历史** —— 按用户隔离的对话会话,记录 Token 用量,支持软删除 - **长期记忆** —— 跨会话记忆持久化,AI 自动将重要决策与上下文写入记忆文件,下次会话自动加载 ### AI Toolbox 示例 ```java @AiToolbox @Component public class MyTools { @Tool("根据订单ID查询订单状态") public String getOrderStatus(String orderId) { return orderService.getStatus(orderId); } } ``` LLM 提供商、MCP 服务器、Agent 均可通过内置管理界面配置,无需重启服务。 --- ## 🦞 Erupt AI Claw > 通过自然语言直接驱动服务器 —— 像与同事对话一样简单。 Erupt AI Claw 让你通过对话操作注解驱动的数据与业务、执行 Shell 命令、读写文件、扩展自定义 Skills,全程无需编写代码。 ### Claw 能力 - **Erupt 模型操作** —— 通过对话对任意 `@Erupt` 实体进行增删改查 - **Shell 执行** —— 用自然语言直接运行系统命令 - **文件读写** —— 读取和写入服务器文件 - **浏览器控制** —— 在 MCP 菜单中添加配置即可与浏览器交互 - **Skills(70 万+)** —— 兼容 [skills.sh](https://skills.sh) 70 万+ Skills;AI 根据提示词自动匹配执行;支持通过对话动态创建 Skill Claw 与 AI Harness 共享同一套基于 Role 的 Tool 安全机制 —— 非管理员账号只能调用被白名单的工具。Skills 存放于 `~/.erupt/skills/`,也可在对话中动态创建。 --- > 📌 **核心模块永久免费、永久开源** —— `erupt-core` / `erupt-annotation` / `erupt-web` / `erupt-jpa` / `erupt-upms` / `erupt-ai` 等核心模块永久遵循 Apache 2.0 协议,**无 License 限制 · 无项目数限制 · 无商用限制**(详见 [官方治理承诺 →](./GOVERNANCE.md))。下方是核心之外可选的企业级商业模块,与开源核心独立演进、互不影响。 ## 🔌 商业扩展模块 在开源核心之外,提供 4 个企业级商业模块(源码交付 · 一次买断 · 无 License / 项目数 / 商用限制): | 模块 | 用途 | 文档 | | --- | --- | --- | | **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)** --- ## 🤝 参与贡献 Erupt 是一个免费且开源的项目。我们欢迎任何人为 Erupt 做出贡献,包括但不限于:提交代码、反馈缺陷、交流想法,或分享你基于 Erupt 的使用案例。同时也欢迎用户在个人博客或社交媒体上分享 Erupt。 如果你想要贡献代码,请先阅读我们的[贡献指南](./CONTRIBUTING.md),然后在 GitHub 提交 [Issue](https://github.com/erupts/erupt/issues) 或 [Pull Request](https://github.com/erupts/erupt/pulls)。 **感谢以下贡献者对 Erupt 做出的贡献:** [![Contributors](https://contrib.rocks/image?repo=erupts/erupt)](https://github.com/erupts/erupt/graphs/contributors) > ⭐ **觉得 Erupt 帮到了你?请到 GitHub 给个 Star —— 开源不易,对项目成长帮助很大!** --- ## ⭐ Star History Star History Chart --- ## 📄 License Erupt 遵循 [Apache 2.0](./LICENSE) 许可证 —— 源代码开源免费、可商用、可二次开发。

作者:YuePeng  ·  erupts@126.com