多代理客户服务系统

一个基于Agent-to-Agent (A2A)通信和Model Context Protocol (MCP)服务器的多代理客户服务系统,包含任务路由、数据库交互和客户响应生成功能。

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

使用说明

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

该项目实现了一个多代理客户服务系统,代理通过以下方式进行协调 代理人对代理人(A2A) 通过某种方式与SQLite数据库进行通信和交互 模型上下文协议(MCP) 服务器。

该系统包括:

  • 路由器代理 –协调任务和路由查询
  • 客户数据代理 –通过MCP与数据库工具交互
  • 支持代理 –生成面向客户的最终响应

1.系统架构

下图显示了代理和MCP服务器如何通信:

                 ┌────────────────────┐
                 │      User Query    │
                 └───────────┬────────┘
                             │
                  (intent detection)
                             │
                 ┌───────────▼───────────┐
                 │     Router Agent      │
                 └───────┬────────┬──────┘
                         │        │
        customer data    │        │ support request
                         │        │
        ┌────────────────▼ ┐   ┌──▼─────────────────┐
        │ CustomerDataAgent│   │    SupportAgent    │
        └──────────┬───────┘   └─────────┬──────────┘
                   │ MCP Tools           │ builds final answer
                   │                     │
        ┌──────────▼─────────────────────▼───────────┐
        │                 MCP Server                 │
        │   SQLite DB + customers + tickets tables   │
        └────────────────────────────────────────────┘

2.MCP工具

MCP服务器公开以下操作:

  • get_customer(customer_id)
  • list_customers(status, limit)
  • update_customer(customer_id, fields)
  • create_ticket(customer_id, issue, priority)
  • get_customer_history(customer_id)

这些工具管理 客户 和 票 表定义于 database_setup.py.


3.安装

git clone https://github.com/KathyLi77/Multi-Agent-Customer-Service-System-with-A2A-and-MCP
cd Multi-Agent-Customer-Service-System-with-A2A-and-MCP

python3 -m venv .venv
source .venv/bin/activate

pip install -r requirements.txt

# Initialize database
python database_setup.py

4.运行测试

python -m tests.main

这将运行所有主要场景:

简单的客户查找

帐户升级协助

账单上报

列出活跃客户

多意图(更新+票历史)