多代理客户服务系统

一个分布式多代理系统,通过A2A协调、MCP协议和LLM技术实现客户服务流程自动化,适用于复杂查询处理和数据管理。

  • by ashhhwin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ashhhwin/Multi-Agent-Customer-Service-System-with-A2A-and-MCP

使用说明

多代理客户服务系统(A2A+MCP+LLM)

概述

一个分布式多代理系统,旨在自动化客户服务工作流程。该架构利用 代理人对代理人(A2A) 任务委托协调 模型上下文协议(MCP) 用于安全的数据库访问,以及 大型语言模型(LLM) 用于智能意图分类和自然语言生成。

该系统协调了三个自主代理,使用确定性工具和生成式人工智能的组合来处理复杂的客户查询、数据检索和票务管理。

建筑

  • 路由器代理(端口8100): 编排者。使用LLM(通过Hugging Face API)分析自然语言查询,提取实体,并将任务路由到适当的专家。
  • 客户数据代理(端口8101): 数据专家。与MCP服务器接口,以获取和更新客户记录。
  • 支持代理(端口8102): 支持专家。管理工单创建和状态检查。使用LLM根据工具输出生成简洁的对话式响应。
  • MCP服务器(标准): 数据库接口。通过以下方式公开SQLite工具 FastMCP 超过标准输入/输出。

先决条件

  • Python 3.10+

安装

  1. 克隆存储库:

    git clone <repository_url>
    cd multi_agent_customer_service
    
  2. 设置虚拟环境:

    python -m venv venv
    # Mac/Linux:
    source venv/bin/activate
    # Windows:
    venv\Scripts\activate
    
  3. 安装依赖关系:

    pip install -r requirements.txt
    
  4. 初始化数据库: 生成 support.db 以及种子初始数据。

    python -m mcp_server.database_setup
    

    与……确认 y 当提示时。

用法

重要提示: 您必须设置您的拥抱脸令牌,以便代理智能运行。

  1. 设置API令牌:

  2. 发射代理: 打开三个单独的终端窗口(确保venv处于活动状态,并且每个窗口中都设置了令牌):

    • 终端1(数据): python -m agents.customer_data_agent
    • 2号航站楼(支持): python -m agents.support_agent
    • 终端3(路由器): python -m agents.router_agent

测试与验证

1.端到端场景

执行集成测试套件以验证代理协调、任务分配和协商流程。这包括测试自然语言输入(例如,“我想拿回我的钱”),以验证LLM意图分类。

python -m tests.run_scenarios