多智能体客户服务系统

基于MCP和A2A协议的多智能体客户服务系统,用于处理客户数据查询、更新、创建工单和解决支持问题。

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

使用说明

使用MCP和A2A(谷歌ADK)的多代理客户服务系统

该项目使用以下工具实现了一个功能齐全的多智能体系统:

  • 数据库工具执行的模型上下文协议(MCP)
  • 用于多智能体推理的Google ADK
  • A2A代理间通信协议
  • Google Colab内部运行的异步微服务

该系统包括三个协作代理:

  • 客户数据代理
  • 客服专员
  • 路由器代理

它们共同模拟了一个现实的客户服务后端,能够检索客户数据、更新配置文件、创建工单,并通过协调的LLM代理解决支持问题。


特性

MCP服务器

实现五个数据库工具:

  • get_customer
  • list_customers
  • update_customer
  • create_ticket
  • get_customer_history

客户数据代理

  • 直接执行MCP工具
  • 处理结构化数据查询和更新

客服专员

  • 回答客户服务问题
  • 将数据操作委托给客户数据代理
  • 创建工单并处理升级

路由器代理

  • 执行意图检测和路由
  • 决定由哪个代理处理请求
  • 支持多意图和多步骤工作流

建筑

User → 路由器代理→ 客服专员 ↘ 客户数据代理→ MCP工具→ SQLite数据库

路由器代理协调所有通信。
客户数据代理是唯一被允许调用MCP工具的代理。
Support Agent处理对话和升级。


安装

克隆存储库:

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

安装依赖项:

pip install -r requirements.txt

运行MCP服务器

Colab笔记本内部:

start_server()

这将启动:

MCP服务器(端口5000)

客户数据代理(端口9101)

支持代理(端口9102)

路由器代理(端口9200)

通过A2A运行代理

使用A2A客户端发送任务:

response = await a2a_client.create_task(
    "http://localhost:9200",
    "Get customer information for ID 5"
)
print(response)

测试场景

  1. 简单查询 获取ID 5的客户信息

  2. 协同查询 我是客户12345,需要帮助升级我的帐户

  3. 复杂查询 显示所有有未结门票的活跃客户

  4. 升级 我已经被收费两次了,请立即退款

  5. 多意图工作流 更新我的电子邮件至user@example.com并显示我的门票历史记录

学习总结

该项目演示了MCP如何实现跨代理的标准化工具执行,而A2A为多代理推理提供了结构化的通信协议。实现该系统突出了关键的架构考虑因素,如路由逻辑、代理分离和Colab内部的异步微服务编排。主要挑战包括在一个运行时配置多个服务器、调试A2A传输错误、确保在工具调用期间严格遵守JSON,以及将MCP工具执行集成到客户数据代理中。