项目简介

这个项目构建了一个基于多智能体(Multi-Agent)的销售顾问系统,其后端核心实现遵循了 Model Context Protocol (MCP) 标准。项目包含一个MCP服务器,负责托管和执行外部工具(Tools),例如查询产品库存信息和创建销售订单。多智能体部分(使用 CrewAI 框架)作为MCP客户端,通过调用这些工具来完成分析客户需求、检查库存、处理订单等复杂任务。整个系统提供了一个LLM应用如何通过MCP协议与外部系统(如数据库、文件存储)进行交互的示例。

主要功能点

  • 产品库存与价格查询: MCP服务器通过工具与 MongoDB 数据库交互,允许客户端查询指定产品的库存状态、颜色、容量和价格信息。
  • 销售订单创建: 提供一个工具用于接收标准格式的订单详情,并将订单数据保存到服务器的文件系统中。
  • MCP工具服务: 按照 MCP 协议标准,服务器将产品查询和订单创建等功能封装为可由 MCP 客户端(如 LLM 应用或多智能体系统)调用的工具。
  • SSE传输支持: 服务器支持使用 Server-Sent Events (SSE) 作为 MCP 协议的通信传输方式。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/TrongNV2003/Multi-Agents-Function-Calling.git
    cd Multi-Agents-Function-Calling
  2. 安装Python依赖: 确保您的系统安装了 Python 3.8 或更高版本。然后安装项目所需的库:
    pip install crewai mcp pymongo pydantic pydantic-settings python-dotenv loguru fastapi uvicorn
  3. 配置环境变量: 在项目根目录下创建或编辑 '.env' 文件,根据 'multi_agents/config/settings.py' 中的定义,设置必要的配置,特别是您的LLM API Key 和 MongoDB 连接信息。 例如:
    GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
    MONGO_URI="mongodb://localhost:27017/"
    DB_NAME="inventory"
    请根据您的实际情况修改值。
  4. 初始化数据库(可选): 该项目依赖 MongoDB 存储产品数据。确保您的 MongoDB 服务正在运行。如果需要载入示例产品数据,您需要自行准备一个 JSON 文件(例如 'storage/inventory.json',格式需符合 'multi_agents/db/insert_data.py' 的要求),然后运行初始化脚本:
    python multi_agents/db/insert_data.py

服务器配置 (供 MCP 客户端使用)

该 MCP 服务器通过 SSE 协议在 'http://localhost:8000/sse' 地址提供服务。 如果您的 MCP 客户端需要连接此服务器,典型的配置信息(可能在客户端的 JSON 配置文件中)会包含以下结构,指定如何找到并与之通信:

{
  "name": "Agento Sales MCP Server",
  "command": ["python", "mcp_server.py"],
  "args": [],
  "transport": "sse",
  "url": "http://localhost:8000/sse"
}
  • 'name': 服务器的名称标识。
  • 'command' 和 'args': 指定如何通过命令行启动服务器进程(如果客户端需要管理进程)。
  • 'transport': 指定使用的传输协议,此处为 'sse'。
  • 'url': 指定服务器的连接地址和端口。请根据您的实际部署环境调整此地址。

基本使用方法

  1. 启动 MCP 服务器: 打开一个终端窗口,进入项目根目录,运行:
    python mcp_server.py
    这将启动 MCP 服务器,监听来自客户端的请求。
  2. (可选)运行多智能体系统(作为 MCP 客户端示例): 在服务器正在运行的同时,打开另一个终端窗口,进入项目根目录,您可以运行示例客户端来测试服务器的功能:
    • 命令行模式:
      python main.py
    • 图形界面模式: (需要安装 Streamlit: 'pip install streamlit')
      python -m streamlit run interface/gui.py
    这些客户端会自动连接到已启动的 MCP 服务器(默认地址 'http://localhost:8000/sse'),并调用其提供的工具来执行多智能体销售咨询任务。
  3. 通过兼容的 MCP 客户端调用工具: 您可以开发或使用任何兼容 MCP 协议的 LLM 客户端应用。配置客户端连接到您部署的此 MCP 服务器的地址 ('http://localhost:8000/sse'),然后您的客户端就可以通过 JSON-RPC 调用服务器暴露的工具,如 'create_order' (用于创建订单) 和 'get_product_info' (用于查询产品)。

信息

分类

商业系统