# ai-agent **Repository Path**: wangfenghuan3399/ai-agent ## Basic Information - **Project Name**: ai-agent - **Description**: springAI开发的AI智能体平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-05-24 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ai-Agent 项目 README ## 项目简介 这是一个基于 Spring Boot 框架开发的 AI Agent 项目,旨在实现与用户的智能交互,结合多种工具和功能模块,提供灵活的聊天与任务处理能力。主要特点包括支持 ReAct 模式、RAG(Retrieval-Augmented Generation)增强、工具调用管理等。 项目集成了多种实用工具,包括: - 文件读写操作 - PDF 文件生成 - 网络资源下载与网页爬取 - 终端命令执行 - 搜索引擎查询(百度) 此外,还支持通过 PostgreSQL 和 MySQL 进行对话存储,具备完整的记忆管理功能。 ## 技术栈 - Spring Boot - MyBatis Plus - ChatMemory (数据库与文件存储) - DashScope AI SDK - Spring AI - Gitee Skyline ## 项目结构 - `src/main/java/com/wfh/aiagent/agent`: AI Agent 抽象类与具体实现(如 BaseAgent、ReActAgent、ToolCallAgent 等) - `src/main/java/com/wfh/aiagent/app`: 主要的 `ProgramingApp` 类,负责整合 Agent 与 RAG、工具等功能 - `src/main/java/com/wfh/aiagent/chatmemory`: 包含 `DbBasedMemory` 和 `FileBasedMemory`,用于管理对话记忆 - `src/main/java/com/wfh/aiagent/controller`: 控制器类 `AppController`,提供 `/app/chat` 和 `/app/health` 接口 - `src/main/java/com/wfh/aiagent/rag`: RAG 相关类,包括文档加载、关键词增强、向量数据库配置等 - `src/main/java/com/wfh/aiagent/tools`: 工具类,如 `FileOperationTool`, `PDFGenerationTool`, `WebSearchTool` 等 - `src/main/resources`: 配置文件、字体资源等 ## 功能概述 - **智能对话处理**:通过 `ProgramingApp` 实现与用户的自然语言交互,支持生成报告、改写查询等功能 - **工具调用**:支持多种工具调用,可扩展性强,适用于不同场景 - **RAG 增强**:通过向量数据库和文档检索机制,增强 AI 的知识获取能力 - **多数据源支持**:支持 MySQL 和 PostgreSQL 数据源配置 - **记忆管理**:支持基于数据库和本地文件的对话记录存储与读取 - **日志与重试机制**:`MyLoggerAdvisor` 提供日志记录,`ReReadingAdvisor` 提供重试增强功能 ## 启动方式 确保已安装 JDK 17 和 Maven,然后执行以下命令: ```bash mvn spring-boot:run ``` ## 使用方法 启动项目后,访问以下接口: - **POST /app/chat**:发送聊天请求,参数为 `message` 和 `chatId` - **GET /app/health**:健康检查接口 ## 示例 发送 POST 请求: ```http POST http://localhost:8080/app/chat?message=你好&chatId=12345 ``` ## 依赖配置 - DashScope API Key - PostgreSQL 和 MySQL 数据源配置 - OBS 对象存储配置(用于 PDF 上传) - 百度搜索 API 配置(可选) 具体配置请查看 `application.yml` 和 `application-local.yml` 文件。 ## 测试 - `AiAgentApplicationTests`:Spring Boot 基础测试 - `ProgramingAppTest`:测试聊天与 RAG 相关功能 ## 模块说明 | 模块 | 功能 | |------|------| | Agent | 实现智能代理逻辑,支持不同类型的 Agent 行为 | | RAG | 实现基于向量数据库和文档检索的增强回答机制 | | Tools | 提供多种工具供 AI 调用,实现文件、网络、终端等操作 | | ChatMemory | 支持对话记录的持久化与读取 | | Advisor | 提供请求前后的处理逻辑,如日志与重试机制 | ## 贡献者指南 欢迎提交 Issue 和 Pull Request。请遵循标准的 Java 代码风格,并在提交前确保测试通过。 ## 许可证 该项目遵循 Apache 2.0 许可协议。有关详细信息,请参阅 LICENSE 文件。