Skip to content

wingahi/easy-ai-agent

Repository files navigation

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. 启动后端服务

cd backend
mvn spring-boot:run

后端服务默认运行在 http://localhost:8080/api

2. 启动前端服务

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 中注册新策略

示例:

public class CustomEmbeddingStoreStrategy implements EmbeddingStoreStrategy {
    // 实现接口方法
}

添加新的决策策略

  1. backend/src/main/java/com/wgh/easyai/strategy/decision/ 目录下创建新的策略类
  2. 实现 DecisionStrategy 接口
  3. StrategyManager 中注册新策略

示例:

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors