# ai-agent **Repository Path**: vic-gao/ai-agent ## Basic Information - **Project Name**: ai-agent - **Description**: 这是一个基于Spring AI 和 Spring Alibaba AI 1.0.0.M6的AI恋爱大师智能体项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-26 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Agent 项目文档 ## 项目简介 本项目是一个基于 Spring Boot 的 AI 智能代理系统,集成了多种 AI 功能模块和工具,支持与大模型交互、流式响应、工具调用、RAG(检索增强生成)、记忆管理等功能。项目旨在提供一个可扩展的 AI 应用框架,适用于聊天机器人、自动化任务处理、智能决策等场景。 主要功能包括: - **AI 代理系统**:支持 ReAct 模式、工具调用、状态管理、多步骤执行等。 - **聊天与记忆管理**:支持同步与流式聊天、基于文件的对话记忆存储。 - **工具系统**:集成多种实用工具,如时间、邮件、文件操作、网页搜索、天气查询等。 - **RAG 支持**:支持文档加载、文本分割、关键词增强、向量存储、查询重写等。 - **模块化设计**:便于扩展和集成新的 AI 功能和工具。 ## 技术栈 - Java 17+ - Spring Boot - Spring AI - DashScope 大模型 - Lombok - Reactor (Flux) - SseEmitter (Server-Sent Events) - Maven ## 模块说明 ### 核心模块 - `AiAgentApplication`:Spring Boot 主启动类。 - `BaseAgent`:AI 代理基类,定义代理的基本行为和属性。 - `ReActAgent`:基于 ReAct 模式的代理,支持思考与行动。 - `ToolCallAgent`:支持工具调用的代理,集成多种工具调用逻辑。 - `Manus`:具体实现的 AI 代理,继承自 `ToolCallAgent`。 - `LoveApp`:聊天应用核心类,集成 RAG、工具调用、记忆管理等功能。 ### 工具模块 - `DateTimeTool`:提供时间与日期相关功能。 - `EmailTool`:支持邮件发送功能。 - `FileOperationTool`:文件读写操作。 - `PDFGenerationTool`:生成 PDF 文件。 - `ResourceDownloadTool`:下载网络资源。 - `TerminalOperationTool`:执行终端命令。 - `WebScrapingTool`:网页内容抓取。 - `WebSearchTool`:基于百度的网页搜索。 - `WeatherTools`:获取天气信息。 - `TerminateTool`:终止交互流程。 ### RAG 模块 - `QueryRewriter`:查询重写,优化检索效果。 - `LoveAppDocumentLoader`:文档加载器,支持 Markdown 文件。 - `MyTokenTextSplitter`:文本分割器,按 token 分割文档。 - `MyKeywordEnricher`:关键词增强,提升检索相关性。 - `LoveAppVectorStoreConfig`:向量存储配置,集成 Embedding 模型。 - `LoveAppRagCloudAdvisorConfig`:RAG 云端顾问配置。 ### 控制器模块 - `AiController`:提供 REST API 接口,支持同步与流式聊天。 - `HealthController`:健康检查接口。 ### 记忆模块 - `FileBasedChatMemory`:基于文件的对话记忆管理,支持持久化存储。 ## 快速开始 ### 环境要求 - Java 17 或更高版本 - Maven 3.8+ - DashScope API Key - Redis(可选,用于记忆管理) - 邮件服务器配置(如使用 EmailTool) ### 安装步骤 1. **克隆项目** ```bash git clone https://gitee.com/voldemorts-harry-potter/ai-agent.git cd ai-agent ``` 2. **配置 API Key** 在 `application.yaml` 或 `application-dev.yml` 中配置 DashScope API Key: ```yaml spring: ai: dashscope: api-key: your-dashscope-api-key ``` 3. **构建项目** ```bash mvn clean package ``` 4. **运行项目** ```bash java -jar target/ai-agent.jar ``` 5. **访问接口** - 同步聊天接口:`GET /ai/love_app/chat/sync?message=你好&chatId=123` - 流式聊天接口:`GET /ai/love_app/chat/sse?message=你好&chatId=123` ## 使用示例 ### 同步聊天 ```bash curl "http://localhost:8080/ai/love_app/chat/sync?message=你好&chatId=123" ``` ### 流式聊天 ```bash curl "http://localhost:8080/ai/love_app/chat/sse?message=你好&chatId=123" ``` ### 调用工具 例如调用时间工具: ```bash curl "http://localhost:8080/ai/manus/chat?message=现在几点了" ``` ## 贡献指南 欢迎贡献代码和改进文档。请遵循以下步骤: 1. Fork 项目 2. 创建新分支 (`git checkout -b feature/your-feature`) 3. 提交更改 (`git commit -am 'Add some feature'`) 4. 推送分支 (`git push origin feature/your-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 [MIT License](LICENSE)。详情请查看 LICENSE 文件。