# easyai-plus **Repository Path**: aizuda/easyai-plus ## Basic Information - **Project Name**: easyai-plus - **Description**: 🔥🔥🔥 easyai-plus 是一个大模型+小模型的AI中台,可以被多系统多平台接入,提供完备的AI能力。大模型+小模型可以弥补大模型垂直领域不足,如小模型人脸识别,识别成功结果告诉大模型,以便更好的交互效果 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: https://doc.gyei.cn/ - **GVP Project**: No ## Statistics - **Stars**: 653 - **Forks**: 182 - **Created**: 2025-02-13 - **Last Updated**: 2026-03-06 ## Categories & Tags **Categories**: ai **Tags**: Java, AI, Vue, pangu, easy-security ## README
一站式 AI 应用构建平台,让每个团队都能拥有自己的 AI 基础设施。
Spring AI · MCP 生态 · 多模型适配 · Agent 自进化 · 工作流编排 · 知识库 · 小模型训练
--- ## 为什么选择 easyai-plus? 市面上的 AI 平台要么只做大模型对话,要么只做模型训练,很少有产品能**同时覆盖大模型智能体和小模型训练**两条主线。easyai-plus 正是为此而生—— - **大模型 + 小模型双引擎**:大模型负责理解、推理、决策;小模型负责垂直领域感知(人脸识别、目标检测、NER 等)。两者协同,补齐单一大模型在专业场景的短板。 - **开箱即用的 AI 中台**:不是 SDK,不是框架,而是一个**完整的、可独立运行的平台产品**。接入即用,多系统、多平台共享同一套 AI 能力。 - **全流程可视化管理**:从模型管理、知识库构建、MCP 工具编排、智能体配置到工作流调度,所有环节都有直观的管理界面。 --- ## 核心功能全景 ### 一、🤖 AI 智能体(Agent) easyai-plus 的智能体不是简单的"提示词 + 模型调用",而是一套**具备自主决策、自我进化、多级协作能力的 Agent 架构**。 #### 1. 灵活的智能体配置 - **多模型自由切换**:支持 Ollama 本地模型、OpenAI 兼容接口、自训练模型等,按需为每个 Agent 绑定不同模型 - **提示词工程**:可视化编辑 System Prompt,精细控制 Agent 人设与行为边界 - **能力装配**:为 Agent 自由组合知识库、MCP 工具、Skills 技能包,像搭积木一样构建专属能力
#### 2. 主Agent + 子Agent 多级协作
支持**主从 Agent 架构**。主 Agent 作为"决策大脑",根据任务自主判断应该分配给哪个子 Agent 执行:
- 主 Agent 分析用户意图 → 选择最合适的子 Agent → 下发子任务
- 子 Agent 独立执行(拥有自己的模型、工具、超时控制)→ 结果汇报主 Agent
- 支持**实时状态推送**,前端可以看到每个子 Agent 的执行进度
这意味着你可以构建一个"团队":一个规划 Agent 负责拆解需求,一个编码 Agent 负责写代码,一个测试 Agent 负责验证——**真正的 AI 团队协作**。
#### 3. 🧬 Agent 自进化能力(Self-Evolution)
这是 easyai-plus 最核心的差异化能力。受 Voyager(Wang et al., 2023)论文中 Skill Library 机制启发,我们实现了 Agent 在任务执行过程中的**自主学习与能力升级**:
**Skills 技能库**
- Agent 在执行任务时,如果发现本地知识不足,会**自动连接 Skills 市场**,搜索并下载最佳实践、脚本方案
- 下载的技能以 Markdown 文件形式保存,并**自动同步到向量库**,下次遇到类似问题直接语义检索复用
- 支持多个技能集分类管理,每个技能集独立同步
**进化记忆(Evolution Memory)**
- Agent 在执行任务中积累的经验——成功的解决方案、失败的教训、发现的规律——会以**语义向量的形式持久化存储**
- 下次遇到类似问题,Agent 会**主动查询历史记忆**,避免重复踩坑
- 每个 Agent 拥有独立的记忆空间,互不干扰,重启后自动恢复
**MCP 工具自主发现与安装**
- Agent 遇到能力不足时,会**自动搜索 MCP 工具市场**,发现合适的工具后一键安装
- 安装完成后**热重载自身配置**,新工具立即生效,无需重启服务
- 整个过程完全自主,无需人工干预
**强制进化决策链**
- 当 Agent 在任务中遇到困难,系统会引导其按照严格顺序尝试:
1. 先查本地 Skills 技能库
2. 再到 Skills 市场搜索下载
3. 再搜索 MCP 工具市场
4. 最后才用基础编码能力兜底
- 这套机制确保 Agent **不会盲目重试**,而是系统性地寻找最优解
---
### 二、🛡️ 生产级稳定性优化
easyai-plus 不只是一个 Demo,而是面向**真实生产环境**设计的。以下是我们在稳定性和可靠性方面的核心优化:
#### 1. 智能安全熔断机制
大模型在 Tool Calling 场景下有一个行业痛点:**容易陷入无限循环**——反复调用同一个失败的工具,消耗大量 Token 却毫无产出。
easyai-plus 内置了三级保护:
- **连续失败熔断**:连续多次工具调用无实质输出时,自动终止循环,避免 Token 浪费
- **进化策略注入**:连续失败达到阈值后,系统不是简单终止,而是**智能注入引导指令**,提醒 Agent 换思路、查记忆、找工具
- **总轮次硬上限**:不管成功失败,达到总轮次上限一律终止,兜底防护
所有阈值均可通过配置文件灵活调整,适配不同业务场景。
#### 2. 任务自动续传
大模型输出存在 Token 上限,复杂任务经常在执行到一半时被截断。传统方案需要用户手动"继续"。
easyai-plus 实现了**全自动任务续传**:
- 主 Agent 输出结束后,系统自动判断任务是否真正完成
- 支持**模型完成度验证**——调用模型做二次确认,避免误判
- 未完成时自动构造续传指令,无缝发起下一轮,**前端完全无感知**
- 多轮续传的输出直接拼接推送,用户看到的是一次完整的流畅交互
#### 3. 两级上下文压缩
长对话场景下,上下文窗口会不断膨胀,导致 Token 消耗飙升甚至超出模型限制。easyai-plus 创新性地引入**两级压缩策略**:
- **L1 规则压缩(零成本)**:每轮工具调用后,自动截断旧轮次的工具输出,只保留最新结果完整。零 LLM 调用,实时生效
- **L2 模型摘要压缩**:当对话历史达到阈值时,自动调用模型将早期对话压缩为精炼摘要,释放上下文空间。支持指定轻量模型做压缩,降低成本
两级策略配合,既保证了对话质量,又大幅降低了长对话场景的 Token 开销。
#### 4. 跨对话任务记忆
传统 AI 对话"关了就忘",下次打开又要从头开始。easyai-plus 支持**跨对话的任务进度记忆**:
- 每次对话结束后,自动提取任务进度摘要并持久化
- 下次新对话时,自动注入上次的进度摘要到 System Prompt
- Agent 能清楚知道"上次做到哪了",直接从断点继续,**避免重复劳动**
#### 5. 跨平台命令智能适配
Agent 在执行系统命令时,最常见的问题就是**跨平台语法不兼容**——在 Windows 上用 Linux 命令,在 Mac 上用 PowerShell 语法。
easyai-plus 内置了**三平台命令规范引擎**:
- 自动检测当前操作系统(Windows / macOS / Linux)
- 为 Agent 动态注入**当前平台的完整命令规范**:正确语法 + 禁用命令清单
- 命令失败时,错误提示会明确告知当前运行环境,引导 Agent 使用正确语法
Windows 用 PowerShell、Mac 用 bash/zsh、Linux 用 bash——Agent 永远不会搞混。
---
### 三、🔧 CodingTool — 全能系统操作工具
为 Agent 提供**完整的操作系统交互能力**,一个工具覆盖所有场景:
| 能力 | 说明 |
|------|------|
| **bash** | 执行任意 Shell/PowerShell 命令(git、mvn、npm、curl、docker…) |
| **file_read** | 读取文件内容,支持行号范围 |
| **file_edit** | 精准文本替换或创建文件,支持增量编辑 |
| **search** | 目录级文件内容搜索(正则/关键词) |
| **list_dir** | 目录树结构查看 |
同时内置**安全防护**:
- 禁止杀死宿主 Java 进程(避免 Agent 误杀自己)
- 禁止修改应用端口配置
- 危险命令正则拦截(覆盖 Windows/Linux 双平台的各种变体写法)
- 后台进程启动强制规范(防止 Agent 启动阻塞式前台服务导致超时)
---
### 四、📚 知识库(RAG)
- **多格式文档支持**:PDF、Word、Excel、Markdown 等主流格式,基于 Docling 解析,准确率 85%~90%
- **向量化语义检索**:文档内容自动 Embedding 入库,Agent 对话时实时检索相关知识片段
- **可视化管理界面**:上传、解析、检索、删除,全流程可视化操作
---
### 五、🔌 MCP 工具生态
easyai-plus 深度集成 MCP(Model Context Protocol)标准,让 Agent 能力无限扩展:
- **可视化 MCP 管理**:添加、配置、启停 MCP 服务,支持 stdio 和 SSE 两种传输方式
- **MCP 市场搜索**:直接对接 MCP 官方 Registry,一键搜索全球开发者发布的工具
- **一键本地部署**:搜到的工具直接安装到本地,自动配置,无需手动折腾
- **Agent 自主发现安装**:Agent 在任务中遇到能力缺口时,可自动搜索并安装 MCP 工具
---
### 六、⚡ 工作流编排
- **基于 Agent 的工作流**:每个节点可以绑定不同的 Agent,Agent 之间支持参数传递
- **可视化编排**:拖拽式配置工作流节点和连接关系
- **定时调度**:支持 Cron 表达式定时触发工作流,实现自动化任务
- **执行日志**:完整记录每次工作流的执行详情,方便排查和回溯
- **对话中触发**:用户可以在对话中 @工作流,让 Agent 自动调用执行
---
### 七、🧠 小模型训练(NLP + 视觉)
大模型不是万能的,垂直领域的精准感知仍然需要专业的小模型。easyai-plus 提供完整的小模型训练流水线:
#### NLP 方向
- **分类管理**:定义业务场景,配置关键词提取规则和缺失信息回复策略
- **数据标注**:为对话内容标注关键实体,构建高质量训练数据集
- **Q&A 管理**:一问一答格式的对话数据管理,支持批量上传
- **训练与测试**:一键启动训练,训练完成后立即在线测试效果
#### 视觉方向
- **图像训练**:图片上传 → 自动裁剪 → 内容标注 → 模型训练 → 在线测试,全流程闭环
- **视频分析**:支持视频实时分析,适用于安防监控、质检等场景
- **特征管理**:统一管理标注标签体系,支持跨数据集复用
---
### 八、🖥️ 更多平台特性
| 特性 | 说明 |
|------|------|
| **Electron 桌面端** | 支持打包为桌面应用,Windows/Mac/Linux 三端运行 |
| **多用户多角色** | 完整的用户、角色、菜单权限体系 |
| **操作审计** | 全链路操作日志记录 |
| **安全配置** | 密码复杂度、登录锁定、密码过期等企业级安全策略 |
| **国际化** | 支持多语言切换 |
---
## 技术参数一览
所有 Agent 行为参数均**可通过配置文件动态调整**,无需改代码重启:
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| 对话历史窗口 | 保留最近 N 条消息 | 50 |
| 最大输出 Token | 模型单次最大输出 | 16384 |
| 安全熔断阈值 | 连续失败 N 次终止 | 5 |
| 进化提醒阈值 | 连续失败 N 次触发进化引导 | 3 |
| 最大工具调用轮次 | 单次对话最大工具调用总轮次 | 15 |
| 任务续传轮次 | 自动续传最大次数 | 3 |
| L1 工具输出裁剪 | 旧轮次工具输出保留字符数 | 200 |
| L2 压缩触发比例 | 消息数占窗口的百分比 | 70% |
| 子 Agent 超时 | 子 Agent 单次执行超时时间 | 120s |
---
## 技术栈
| 层 | 技术 |
|----|------|
| 后端框架 | Spring Boot 3.x + Spring AI 1.1.3 |
| AI 协议 | MCP (Model Context Protocol) |
| 模型服务 | Ollama / OpenAI 兼容接口 |
| 文档解析 | Docling 2.74.0 |
| 向量检索 | 本地 Embedding (ONNX MiniLM) + SimpleVectorStore |
| 数据库 | MySQL 8.0+ |
| 前端 | Vue 3 + Element Plus |
| 桌面端 | Electron |
| 认证鉴权 | easy-security |
| 脚手架 | 盘古(Pangu) |
---
## 快速开始
### 环境要求
- JDK 21
- MySQL 8.0+
- Node.js 20.x+(建议使用 yarn)
- Ollama 最新版
### 三步启动
```bash
# 1. 创建数据库(项目启动后自动建表)
# 2. 修改 application.yml 中的数据库连接和文件存储路径
# 3. 启动后端 + 前端
# 默认账号:superAdmin / superAdmin@2025
```
遇到如下报错,可以先对项目进行 maven compile,然后启动
```text
Error creating bean with name 'embeddingModel' defined in class path resource [com/wt/admin/config/AIConfig.class]: Error code - ORT_INVALID_PROTOBUF - message: Failed to load model because protobuf parsing failed.
```
---
## 开源协议
本项目采用 **AGPL** 开源协议。使用必须遵守国家法律法规,不允许非法项目使用。
---
easyai-plus — 让 AI 能力触手可及