# AITripPlan **Repository Path**: xep/aitrip-plan ## Basic Information - **Project Name**: AITripPlan - **Description**: 多智能体协作旅游规划系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多智能体协作旅游规划系统 基于 Spring AI Alibaba 的多智能体协作旅游规划系统,支持路线规划、行程安排、费用计算和智能协调。 ## 项目架构 ``` trip-parent (父工程) ├── trip-common (公共模块) ├── trip-route-agent (路线规划Agent,端口8081) ├── trip-supervisor-agent (主管Agent,端口8082) ├── trip-itinerary-agent (行程规划Agent,端口8083) ├── trip-cost-agent (费用规划Agent,端口8084) └── trip-gateway (API网关,端口8080) ``` ## 功能特性 1. **智能任务分解**:主管Agent分析用户需求,分解为子任务 2. **路线规划**:集成百度地图MCP,提供路线规划、地点搜索 3. **行程安排**:考虑天气、景点推荐,生成详细日程 4. **费用计算**:预算优化、优惠券验证、Excel报告生成 5. **多Agent协作**:基于Feign的HTTP通信,并行任务执行 ## 技术栈 - **Spring Boot 3.2.5** - **Spring AI Alibaba** (阿里云DashScope/Qwen模型) - **Spring Cloud OpenFeign** - **MySQL 8.0+** (本地数据库) - **Spring Data JPA** - **Apache POI** (Excel处理) - **OpenAPI 3.0** (API文档) ## 快速开始 ### 1. 环境要求 - JDK 17+ - MySQL 8.0+ - Maven 3.8+ ### 2. 数据库设置 ```sql -- 创建数据库 CREATE DATABASE trip_planning CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 使用提供的SQL脚本初始化表结构 -- 脚本位置: sql/init.sql ``` 或者使用项目根目录下的SQL脚本: ```bash mysql -u root -p123456 < sql/init.sql ``` ### 3. 配置文件 #### 数据库配置 所有Agent模块的 `application.yml` 已配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/trip_planning username: root password: 123456 ``` #### AI模型配置 使用阿里云DashScope,需要设置环境变量: ```bash # Windows set DASHSCOPE_API_KEY=your-dashscope-api-key # Linux/Mac export DASHSCOPE_API_KEY=your-dashscope-api-key ``` #### 百度地图MCP配置 已在 `trip-route-agent` 中配置: ```yaml baidu: map: mcp: type: sse server-url: xxx enabled: true ``` ### 4. 启动顺序 建议按以下顺序启动服务: ```bash # 1. 启动路线规划Agent cd trip-route-agent mvn spring-boot:run # 2. 启动主管Agent cd trip-supervisor-agent mvn spring-boot:run # 3. 启动行程规划Agent cd trip-itinerary-agent mvn spring-boot:run # 4. 启动费用规划Agent cd trip-cost-agent mvn spring-boot:run # 5. 启动API网关 cd trip-gateway mvn spring-boot:run ``` 或者使用Maven多模块构建: ```bash # 从项目根目录构建所有模块 mvn clean package # 分别启动各模块 java -jar trip-route-agent/target/trip-route-agent-1.0.0-SNAPSHOT.jar java -jar trip-supervisor-agent/target/trip-supervisor-agent-1.0.0-SNAPSHOT.jar java -jar trip-itinerary-agent/target/trip-itinerary-agent-1.0.0-SNAPSHOT.jar java -jar trip-cost-agent/target/trip-cost-agent-1.0.0-SNAPSHOT.jar java -jar trip-gateway/target/trip-gateway-1.0.0-SNAPSHOT.jar ``` ### 5. API访问 - **网关入口**: http://localhost:8080/api - **API文档**: http://localhost:8080/api/swagger-ui.html - **各Agent直接访问**: - 路线Agent: http://localhost:8081/route-agent - 主管Agent: http://localhost:8082/supervisor-agent - 行程Agent: http://localhost:8083/itinerary-agent - 费用Agent: http://localhost:8084/cost-agent ## 主要API端点 ### 网关统一接口 (推荐) ``` POST /api/travel/plan # 完整旅游规划 POST /api/travel/quick # 快速规划(仅路线) GET /api/travel/route # 路线规划 GET /api/travel/itinerary # 行程安排 GET /api/travel/cost # 费用计算 ``` ### 请求示例 ```json { "userQuery": "我想从北京到上海玩5天,预算5000元", "startLocation": "北京", "destination": "上海", "days": 5, "travelMode": "driving", "budget": 5000.0, "travelerCount": 2 } ``` ## 数据库设计 ### 主要表结构 #### 1. travel_plan_records (旅游规划记录表) 存储用户请求和规划结果,包含状态跟踪、预算使用率等。 #### 2. task_execution_records (任务执行记录表) 记录各Agent任务执行历史,用于监控、重试和性能分析。 ### 实体类位置 - `trip-common/src/main/java/com/tripplan/common/entity/` - `trip-common/src/main/java/com/tripplan/common/repository/` ## 配置说明 ### AI模型配置 支持阿里云DashScope,可配置模型参数: ```yaml spring: ai: alibaba-cloud: dashscope: api-key: ${DASHSCOPE_API_KEY} chat: options: model: qwen-max # 可选: qwen-max, MiniMax-M2.5, qwen-turbo temperature: 0.3 # 温度参数 max-tokens: 3000 # 最大token数 ``` ### 外部服务配置 1. **百度地图MCP**: 已配置SSE端点,需在BaiduMapTool中实现调用 2. **天气API**: 支持OpenWeather和和风天气,需配置API密钥 3. **景点API**: 支持百度地图和本地数据源 ### 数据库连接池 使用HikariCP连接池,默认配置: - 最大连接数: 10 - 最小空闲连接: 5 - 连接超时: 30秒 ## 开发说明 ### 模块依赖关系 1. 所有Agent模块依赖 `trip-common` 2. 网关模块依赖所有Agent的Feign客户端 3. 主管Agent协调其他Agent的协作 ### 添加新的Agent 1. 在父pom.xml中添加新模块 2. 创建新的Agent模块,继承公共配置 3. 在主管Agent中注册新Agent的服务地址 4. 更新网关的Feign客户端 ### 测试 ```bash # 运行单元测试 mvn test # 运行集成测试 mvn verify # 测试特定模块 cd trip-route-agent mvn test ``` ## 故障排除 ### 常见问题 1. **数据库连接失败** - 检查MySQL服务是否运行 - 验证用户名密码是否正确 - 确认数据库 `trip_planning` 已创建 2. **AI模型调用失败** - 检查DASHSCOPE_API_KEY环境变量 - 验证阿里云账户余额和API权限 3. **Agent间通信失败** - 确认所有Agent服务已启动 - 检查各Agent的端口配置 - 查看Feign客户端配置 4. **MCP调用失败** - 验证百度地图MCP服务地址 - 检查网络连接和防火墙设置 ### 日志查看 各模块日志文件位于: - `trip-route-agent/logs/route-agent.log` - `trip-supervisor-agent/logs/supervisor-agent.log` - `trip-itinerary-agent/logs/itinerary-agent.log` - `trip-cost-agent/logs/cost-agent.log` - `trip-gateway/logs/gateway.log` ## 后续开发计划 1. **前端界面**:基于Vue/React的Web管理界面 2. **用户系统**:用户注册、登录、历史记录 3. **实时通知**:规划进度实时推送 4. **多模型支持**:支持更多国内AI模型 5. **容器化部署**:Docker和Kubernetes支持 6. **性能优化**:缓存、异步处理、负载均衡 ## 许可证 本项目采用 MIT 许可证。 ## 联系信息 如有问题或建议,请联系项目维护者。 --- *最后更新: 2026-04-11*