本项目是一个企业级AI应用示例,展示了如何通过多个独立的、基于 Model Context Protocol (MCP) 实现的后端服务(即MCP服务器),共同协作处理用户查询和规划旅行。这些MCP服务器作为AI代理的“工具”或“资源”提供者。
主要功能点
该应用包含了多个AI代理,每个代理都可以通过MCP协议调用对应的后端服务提供的功能:
- 客户查询分析: 理解并提取客户的旅行偏好和需求。
- 目的地推荐: 根据偏好推荐旅行目的地。
- 行程规划: 帮助制定详细的旅行计划。
- 代码执行: 根据需要执行特定的逻辑或脚本。
- 模型推理: 利用自定义LLM进行高级推理任务。
- Echo Ping: 一个简单的示例MCP工具,用于测试连接。
- Web搜索: 利用Bing搜索获取实时旅行信息。
整个系统通过一个协调服务(API Gateway)来编排这些代理,前端界面与协调服务交互。
安装步骤
本项目使用Docker进行容器化部署。
- 确保您已安装 Docker。
- 克隆 GitHub 仓库到本地。
- 进入项目根目录。
- 为每个服务(位于 'src/' 子目录下的 'api' 和 'tools/*')创建 '.env.dev' 文件,并根据需要配置环境变量。特别是 MCP 服务器的 URL,通常需要根据您的部署环境进行设置。参考 'src/api/src/orchestrator/llamaindex/tools/index.ts' 文件中列出的环境变量。
- 在项目根目录执行运行脚本:
- 在 Linux/macOS/WSL 上运行:'./run.sh'
- 在 Windows 上运行:'.\run.ps1'
- 脚本会自动构建并启动所有相关的Docker容器服务。
服务器配置(供MCP客户端参考)
本项目中的每个AI代理后端都是一个独立的MCP服务器。AI代理协调服务(API)作为MCP客户端与这些服务器通信。MCP客户端需要知道如何连接到这些服务器,主要通过网络地址(URL)进行。
协调服务通过读取环境变量来确定每个MCP服务器的连接地址。您需要根据实际部署环境确保这些环境变量正确指向对应的服务地址。
以下是本项目中涉及的MCP服务器及其对应的环境变量名称:
- Echo Test: 对应环境变量 'TOOL_ECHO_PING_URL'
- Customer Query: 对应环境变量 'TOOL_CUSTOMER_QUERY_URL'
- Web Search: 对应环境变量 'TOOL_WEB_SEARCH_URL'
- Itinerary Planning: 对应环境变量 'TOOL_ITINERARY_PLANNING_URL'
- Model Inference: 对应环境变量 'TOOL_MODEL_INFERENCE_URL'
- Code Evaluation: 对应环境变量 'TOOL_CODE_EVALUATION_URL'
- Destination Recommendation: 对应环境变量 'TOOL_DESTINATION_RECOMMENDATION_URL'
例如,在本地Docker Compose环境中,'TOOL_ECHO_PING_URL' 可能会被设置为 'http://tool-echo-ping:5000',其中 'tool-echo-ping' 是服务名称,'5000' 是该服务监听的端口。在其他部署环境(如Azure Container Apps)中,URL格式会有所不同。MCP客户端(例如本项目中的API服务)通过配置这些 URL 来与相应的 MCP 服务器建立连接并调用其提供的工具。
基本使用方法
- 按照安装步骤运行整个应用。
- 确认所有服务(包括各种 MCP 服务器和 API 服务)已成功启动。您可以通过访问 Aspire Dashboard (通常在 'http://localhost:18888') 查看服务状态和日志。
- 应用启动后,前端界面通常在 'http://localhost:5173' (如果前端服务也一并启动)。您可以通过前端界面与AI旅行助手交互,输入旅行相关的查询。
- 或者,您也可以直接通过 HTTP POST 请求与 API 服务交互(例如,POST请求到 'http://localhost:4000/api/chat'),请求体包含用户消息和希望使用的工具列表。API 服务会将请求路由到相应的 MCP 服务器进行处理,并通过 Server-Sent Events (SSE) 流式返回响应。
信息
分类
AI与计算