# easy-ai-agent **Repository Path**: wingahi/easy-ai-agent ## Basic Information - **Project Name**: easy-ai-agent - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-15 - **Last Updated**: 2026-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: AI智能体, 知识库, 智能问答系统, AIFlow ## README # Easy AI Agent 项目 一个功能强大的基于AI的智能体管理平台,提供完整的应用管理、工作流编排、智能体配置、知识库管理和RAG(检索增强生成)能力,支持多模型集成和自定义工具扩展。 ## 系统功能概述 ### 核心功能 1. **智能体管理** - 创建、编辑和删除智能体 - 配置智能体的基础信息、提示词模板和参数 - 支持多种决策策略(React、PlanAndExecute、ZeroShotReact等) 2. **工具管理** - 集成和管理多种工具(API、函数、插件等) - 工具测试和调试功能 - 支持工具权限控制 3. **知识库管理** - 文档上传和解析 - 知识库分类和检索 - 向量索引管理 4. **模型配置** - 多模型支持(OpenAI、LangChain等) - 模型参数配置 - API密钥管理 5. **工作流编排** - 可视化工作流设计 - 节点配置和连接 - 工作流执行和监控 6. **应用管理** - 创建和管理AI应用 - 应用发布和部署 - 应用权限控制 ### 高级功能 1. **长短上下文处理** - 支持超长文档的分段处理 - 上下文窗口自动扩展 - 关键信息提取和摘要生成 2. **重排模型** - 检索结果智能排序 - 基于相关性和重要性的重排算法 - 支持自定义重排策略 3. **RAG实现** - 基于向量数据库的检索增强生成 - 多轮对话上下文管理 - 动态检索和信息融合 4. **多模态支持** - 文本、图像等多模态输入处理 - 多模态输出生成 ## 技术栈 ### 后端技术 - **Spring Boot** - 核心框架 - **Spring Security** - 安全认证 - **JWT** - 身份验证 - **MyBatis Plus** - ORM框架 - **LangChain4j** - AI应用开发框架 - **Chroma/Milvus/Pinecone/Weaviate** - 向量数据库支持 - **Maven** - 依赖管理 ### 前端技术 - **Vue.js 3** - 前端框架 - **Vite** - 构建工具 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 ## 项目结构 ``` easy-ai-agent/ ├── backend/ # 后端服务代码 │ ├── src/ # 源代码目录 │ │ ├── main/java/com/wgh/easyai/ # 主代码包 │ │ │ ├── app/ # 应用管理 │ │ │ ├── config/ # 配置类 │ │ │ ├── controller/ # API控制器 │ │ │ ├── mapper/ # 数据库映射 │ │ │ ├── model/ # 数据模型 │ │ │ ├── service/ # 业务逻辑 │ │ │ ├── strategy/ # 策略模式实现 │ │ │ │ ├── decision/ # 决策策略 │ │ │ │ └── embedding/ # 嵌入存储策略 │ │ │ └── utils/ # 工具类 │ │ └── resources/ # 资源文件 │ └── pom.xml # Maven配置 ├── frontend/ # 前端界面代码 │ ├── src/ # 源代码目录 │ │ ├── App.vue # 根组件 │ │ ├── main.js # 入口文件 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ ├── index.html # HTML模板 │ ├── package.json # npm配置 │ └── vite.config.js # Vite配置 ├── dev/ # 开发相关资源 │ └── langchain4j/ # LangChain4j开发资源 └── README.md # 项目说明文档 ``` ## 核心技术实现 ### 1. 长短上下文处理 系统采用分层上下文管理机制: - **短期上下文**:当前对话轮次的直接上下文 - **中期上下文**:最近几轮的关键信息摘要 - **长期上下文**:通过向量检索获取的相关历史信息 实现方式: - 使用滑动窗口技术管理对话上下文 - 自动提取关键信息生成摘要 - 基于相关性动态扩展上下文范围 ### 2. 重排模型 系统集成了多阶段检索与重排机制: - **第一阶段**:基于向量相似度的初步检索 - **第二阶段**:基于语义相关性的重排 - **第三阶段**:基于用户历史和上下文的个性化排序 支持的重排策略: - BM25算法 - 基于学习的重排模型 - 自定义重排规则 ### 3. 向量数据库与RAG实现 系统支持多种向量数据库: - **Chroma**:轻量级本地向量数据库 - **Milvus**:分布式向量数据库 - **Pinecone**:云向量数据库 - **Weaviate**:知识图谱增强的向量数据库 RAG实现流程: 1. 文档上传并解析为文本片段 2. 文本片段通过嵌入模型转换为向量 3. 向量存储到配置的向量数据库 4. 用户查询时,生成查询向量 5. 在向量数据库中检索相关文档片段 6. 将检索结果与查询一起发送给LLM生成响应 ## 运行项目 ### 环境要求 - **JDK 17+**:后端运行环境 - **Node.js 16+**:前端运行环境 - **Maven 3.6+**:后端构建工具 ### 启动步骤 #### 1. 启动后端服务 ```bash cd backend mvn spring-boot:run ``` 后端服务默认运行在 `http://localhost:8080/api` #### 2. 启动前端服务 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务默认运行在 `http://localhost:3000` ### 访问应用 在浏览器中打开 `http://localhost:3000` 即可访问Easy AI Agent平台 ## 功能扩展 ### 添加新的向量数据库支持 1. 在 `backend/src/main/java/com/wgh/easyai/strategy/embedding/` 目录下创建新的策略类 2. 实现 `EmbeddingStoreStrategy` 接口 3. 在 `EmbeddingStoreStrategyFactory` 中注册新策略 示例: ```java public class CustomEmbeddingStoreStrategy implements EmbeddingStoreStrategy { // 实现接口方法 } ``` ### 添加新的决策策略 1. 在 `backend/src/main/java/com/wgh/easyai/strategy/decision/` 目录下创建新的策略类 2. 实现 `DecisionStrategy` 接口 3. 在 `StrategyManager` 中注册新策略 示例: ```java public class CustomDecisionStrategy implements DecisionStrategy { // 实现接口方法 } ``` ### 集成新工具 1. 在 `backend/src/main/java/com/wgh/easyai/service/tool/impl/` 目录下创建新的工具实现类 2. 实现相应的工具接口 3. 在工具管理界面配置新工具 ## 开发指南 ### 代码规范 - 遵循Java编码规范 - 使用Spring Boot最佳实践 - 前端遵循Vue.js编码规范 ### 调试技巧 - 使用Spring Boot DevTools进行热部署 - 前端使用Vite的热更新功能 - 开启详细日志查看系统运行状态 ## 未完成功能 1. 应用创建与管理 2. 工作流编排的完整实现 3. 工作流自定义提示词 4. 智能体自定义提示词 5. 工具测试功能 6. MCP工具介入 7、多agent共用及独立上下文功能 ## 已完成功能 1. 首页统计数据展示 2. 智能体管理 3. 工具管理 4. 知识库管理 5. 模型配置 6. 长短上下文处理 7. 重排模型 8. 多向量数据库支持 9. RAG基础实现 ## 贡献指南 欢迎提交Issue和Pull Request! 1. Fork项目 2. 创建特性分支 3. 提交代码 4. 推送到分支 5. 提交Pull Request ## 许可证 [MIT License](LICENSE)