Trip-Agent是一个基于人工智能的简单旅行助手系统,旨在为用户提供智能化的旅行规划和相关服务。该项目结合了前端Vue3应用和后端Spring Boot服务,通过集成阿里巴巴的通义大模型,实现了强大的AI对话能力和工具调用功能。
trip-agent/
├── trip-agent-front/ # 前端Vue3应用
├── src/ # 后端Spring Boot应用
└── image-search-mcp-server/ # 图像搜索MCP服务器
- 框架: Spring Boot 3.4.11
- Java版本: JDK 21
- AI框架: Spring AI Alibaba + 阿里云通义大模型
- 工具集成: MCP (Model Context Protocol)
- 文档处理: iText PDF、Markdown文档读取
- 其他工具: Lombok、Hutool、Jsoup、Knife4j
- 框架: Vue 3
- 路由: Vue Router 4
- 构建工具: Vite
- HTTP客户端: Axios
- 通信方式: Server-Sent Events (SSE)
graph TB
subgraph "前端层"
A[Vue3 前端应用]
A1[AI旅游规划大师界面]
A2[AI超级智能体界面]
A --> A1
A --> A2
end
subgraph "API网关层"
B[Spring Boot API网关]
B1[AI旅游规划大师接口]
B2[AI超级智能体接口]
B --> B1
B --> B2
end
subgraph "业务逻辑层"
C[TripPlanMasterApp]
D[TripMasterManus]
E[工具调用管理器]
end
subgraph "AI模型层"
F[通义大模型]
G[向量存储]
H[RAG检索器]
end
subgraph "工具服务层"
I[文件操作工具]
J[网络搜索工具]
K[网页抓取工具]
L[资源下载工具]
M[终端操作工具]
N[PDF生成工具]
O[图像搜索MCP服务器]
end
subgraph "数据存储层"
P[文件系统聊天记忆]
Q[本地文件存储]
R[云向量数据库]
end
A --> B
A1 --> B1
A2 --> B2
B1 --> C
B2 --> D
C --> F
C --> G
C --> P
D --> E
E --> F
E --> I
E --> J
E --> K
E --> L
E --> M
E --> N
E --> O
G --> R
H --> R
I --> Q
N --> Q
O --> R
graph TB
subgraph "智能体层次结构"
A[BaseAgent 基础智能体]
B[ReActAgent 反思行动智能体]
C[ToolCallAgent 工具调用智能体]
D[TripMasterManus 旅游智能体]
A --> B
B --> C
C --> D
end
subgraph "智能体核心组件"
E[状态管理]
F[消息管理]
G[执行流程控制]
H[工具调用管理]
end
subgraph "智能体状态"
I[IDLE 空闲]
J[THINKING 思考]
K[ACTING 行动]
L[TERMINATED 终止]
end
A --> E
A --> F
B --> G
C --> H
E --> I
E --> J
E --> K
E --> L
sequenceDiagram
participant U as 用户
participant F as 前端
participant A as API网关
participant T as TripPlanMasterApp
participant R as RAG检索器
participant V as 向量存储
participant M as 通义大模型
U->>F: 发送旅游咨询
F->>A: HTTP请求
A->>T: 调用旅游规划服务
T->>R: 触发RAG检索
R->>V: 向量相似度搜索
V-->>R: 返回相关文档
R-->>T: 返回RAG检索的文档
T->>M: 发送增强提示
M-->>T: 返回AI增强后的回复
T-->>A: 流式响应
A-->>F: SSE数据流
F-->>U: 显示AI回复
sequenceDiagram
participant U as 用户
participant M as TripMasterManus
participant T as 工具调用管理器
participant F as 文件操作工具
participant S as 网络搜索工具
participant C as 终端操作工具
U->>M: 发送复杂任务请求
M->>M: 分析任务需求
M->>T: 选择并调用工具
alt 文件操作
T->>F: 执行文件操作
F-->>T: 返回操作结果
else 网络搜索
T->>S: 执行网络搜索
S-->>T: 返回搜索结果
else 终端操作
T->>C: 执行终端命令
C-->>T: 返回执行结果
end
T-->>M: 汇总工具执行结果
M->>M: 生成最终回复
M-->>U: 返回任务完成结果
graph TB
subgraph "客户端层"
A[Web浏览器]
B[移动端浏览器]
end
subgraph "Serverless"
subgraph "前端服务"
C[Nginx]
D[Vue3静态资源]
end
subgraph "后端服务"
E[Spring Boot应用]
F[图像搜索MCP服务]
end
subgraph "本地服务"
K[文件存储]
L[负载均衡器]
end
end
subgraph "外部服务"
G[阿里云通义大模型API]
H[向量数据库服务]
I[搜索引擎API]
end
A --> C
B --> C
C --> D
C --> L
L --> E
L --> F
E --> G
E --> H
E --> I
F --> H
E --> K
F --> K
- 功能描述: 专业的旅游向导助手,帮助用户规划旅行路线和时间安排
- 特点:
- 基于文件系统的持久化聊天记忆
- 支持RAG(检索增强生成)技术,提供更准确的旅游建议
- 流式响应,实时显示AI回复
- 专业的旅游知识库支持
- 功能描述: 全能型AI助手,能够调用多种工具解决复杂任务
- 工具集:
- 文件操作工具:读写文件
- 网络搜索工具:获取实时信息
- 网页抓取工具:提取网页内容
- 资源下载工具:下载网络资源
- 终端操作工具:执行系统命令
- PDF生成工具:创建PDF文档
- 终止工具:控制交互流程
- 功能描述: 基于MCP协议的图像搜索服务
- 特点:
- 独立的Spring Boot服务
- 支持MCP协议通信
- 可扩展的图像搜索功能
- 基础Agent: 提供状态管理和执行流程控制
- ReAct Agent: 实现思考-行动循环
- 工具调用Agent: 专门处理工具调用和结果处理
- 本地向量存储和云向量检索双重支持
- 关键词自动丰富,提高检索准确性
- Markdown文档自动加载和处理
- 基于文件系统的聊天记录存储
- 使用Kryo序列化,高效存储和读取
- 支持多会话管理
- 丰富的工具集,覆盖文件、网络、系统等多个领域
- 统一的工具注册和管理机制
- 灵活的工具调用和结果处理
- JDK 21+
- Node.js 16+
- Maven 3.6+
- 阿里云通义大模型API密钥
# 在项目根目录
mvn spring-boot:run# 在trip-agent-front目录
npm install
npm run dev# 在image-search-mcp-server目录
mvn spring-boot:runspring.ai.dashscope.api-key: 通义大模型API密钥search-api.api-key: pexels搜索API密钥
- 增强工具集: 添加更多实用工具,如地图服务、天气查询等
- 多模态支持: 集成图像理解和生成能力
- 知识库扩展: 构建更丰富的旅游知识库
- 个性化推荐: 基于用户偏好的智能推荐系统
- 移动端适配: 开发移动端应用
欢迎提交Issue和Pull Request来改进项目。请确保:
- 代码符合项目规范
- 添加必要的测试
- 更新相关文档