使用说明
📦 客户支持多代理系统(A2A+MCP+SQLite)
此存储库包含一个功能齐全的 多代理客户支持系统 它集成了:
- 谷歌ADK A2A(代理对代理) 编排
- MCP(模型上下文协议)HTTP服务器
- SQLite数据库 使用教授的官方文件初始化
database_setup.py - 双子座2.5 Pro/双子座1.5闪光灯 模型
- Uvicorn微服务 对于三个AI代理
该系统展示了完整的端到端 代理工作流,将数据库支持的MCP工具与多代理LLM协作相结合。
1.🔧 系统概述
该应用程序运行三个协作的AI代理:
1.客户数据代理
过程 仅 MCP返回的JSON。
- 总结客户资料
- 提取相关属性
- 整理门票历史记录
- 从不直接查询数据库
2.支持代理
处理真实的客户支持行动:
- 账单问题
- 退款
- 取消
- 升级
- 升级,逐步升级,增加
使用转换后的客户数据+用户查询。
3.路由器/编排器代理
整个工作流程的“大脑”。
- 分析用户查询
- 决定调用哪些MCP工具
- 通过以下方式获取真实数据
tools/call - 客户数据代表+支持代理
- 综合最终答案
🎯 这个项目展示了什么
- 端到端MCP→ A2A → LLM管道
- 真实数据库访问 通过MCP流式HTTP协议
- 职责明确分离 跨代理
- 模块化、受生产启发的代理系统设计
- 完整的客户支持模拟 使用现代代理框架
此存储库非常适合:
- 学术论文(ADK+MCP课程)
- 多代理工作流演示
- 客户服务自动化原型
- 基于真实工具的代理编排研究
2.📊 存储库结构和文件关系
下面是这个仓库中的主要文件如何相互连接的高级图表。
flowchart TD
subgraph MCP_Server["MCP Server Layer"]
DBSetup["database_setup.py"]
MCPServer["mcp_server.py"]
SQLiteDB["support.db"]
end
subgraph Agents["A2A Agents Layer"]
CustomerDataAgent["customer_data_agent.py"]
SupportAgent["support_agent.py"]
RouterAgent["router_agent.py"]
end
subgraph Infra["Infrastructure / Runtime"]
Config["config.py"]
RunAgents["run_agents.py"]
MCPClient["mcp_client.py"]
end
subgraph Demo["Demo / Notebook"]
DemoScript["demo_scenarios.py"]
Notebook["notebook.ipynb optional"]
end
DBSetup --> SQLiteDB
SQLiteDB --> MCPServer
MCPServer --> MCPClient
MCPClient --> RouterAgent
Config --> CustomerDataAgent
Config --> SupportAgent
Config --> RouterAgent
RouterAgent --> CustomerDataAgent
RouterAgent --> SupportAgent
RunAgents --> CustomerDataAgent
RunAgents --> SupportAgent
RunAgents --> RouterAgent
RunAgents --> MCPServer
DemoScript --> MCPClient
DemoScript --> RouterAgent
DemoScript --> SQLiteDB
Notebook --> DemoScript
Notebook --> MCPClient
3.🚀 端到端设置和使用指南
本节将引导您完成 如何运行整个多代理+MCP管道 从头开始,使用这个存储库。
仔细遵循这些步骤,你会得到一个完全正常的工作 MCP支持的多代理客户服务系统.
✅ 步骤1--克隆存储库
git clone https://github.com/TommyWangZL/MCP_A2A.git
cd customer-service-mcp
✅ 步骤2——安装所有依赖项
使用以下方式安装所有必需的软件包:
pip install -r requirements.txt
这将安装:
google-genaigoogle-adka2a-sdkmcp[cli]uvicorn,httpx,aiohttp,nest_asyncio- 以及所有其他必需的包
✅ 步骤3——设置环境变量
在运行任何操作之前,请先配置环境变量。
通过复制以下内容创建环境配置:
cp .env.example .env
然后编辑 .env 文件并填写您的值:
GOOGLE_API_KEY=YOUR_API_KEY_HERE
GOOGLE_CLOUD_PROJECT=gen-lang-client-0201328881
GOOGLE_CLOUD_LOCATION=us-central1
⚠️ 您的API密钥从未存储在存储库中。它只存在于您的本地 .env 文件。
✅ 步骤4——初始化SQLite数据库
你的教授需要跑步 database_setup.py 第一。
运行:
python database_setup.py
然后运行数据库引导程序,插入高级客户和示例票:
python -c "from mcp_server import init_db_with_professor_script; init_db_with_professor_script()"
这将创建SQLite数据库文件:
support.db
数据库包括:
- 客户
- 票
- 触发器
- 样本数据
- 高级客户样本(ID 12345)
✅ 步骤5--启动MCP服务器
此服务器公开了实际的数据库工具(get_customer, create_ticket等等)使用MCP流式HTTP协议。
启动服务器:
python mcp_server.py
它可在以下网址获得:
http://127.0.0.1:8000/mcp
保持此终端窗口打开。
✅ 步骤6--启动A2A多代理服务器
打开一个新的终端窗口并运行:
python run_agents.py
这将启动三个代理:
- 客户数据代理 --端口11020
- 客服专员 --端口11021
- 路由器代理 --端口11022
这些代理保持活动状态,并监听传入的请求。
✅ 步骤7——运行端到端场景(MCP+A2A)
打开第三个终端窗口并运行:
python demo_scenarios.py
此脚本:
- 向路由器代理发送测试查询
- 路由器呼叫客户数据代理
- 客户数据代理使用MCP服务器进行数据库查找
- 支持代理生成最终的客户服务响应
要运行特定场景,请执行以下操作:
python demo_scenarios.py 0 # Simple: get customer information for ID 5
python demo_scenarios.py 1 # Coordinated: upgrade workflow
python demo_scenarios.py 3 # Escalation: double charges and refund
python demo_scenarios.py 7 # Multi-step premium customer support
🎉 成功!
您现在拥有一个功能齐全的多代理客户服务系统,该系统由以下组件提供支持:
- 双子座2.5 Pro
- 谷歌ADK
- A2A多代理编排
- MCP流式HTTP工具
- 一个真正的SQLite数据库(教授批准)