GenAI_HW5_MCP_A2A
多代理客户服务系统(选项A——简单且完全兼容)
多代理客户服务系统
该存储库包含一个完全实现的多代理客户服务系统,该系统使用代理到代理(A2A)协调和自定义模型上下文协议(MCP)服务器构建。该项目满足所有任务要求:
- ✅ 路由器代理 (编辑者)
- ✅ 客户数据代理 (MCP专家)
- ✅ 支持代理 (客户支持专员)
- ✅ MCP服务器 配备5个必备工具
- ✅ 三种所需的A2A协调场景
- ✅ 端到端演示 带有日志的脚本
- ✅ 正确的Python项目结构 提交
______________________________________________________________________
项目结构
.
├── database_setup.py # Database initialization script
├── mcp_server.py # MCP server implementation
├── agents.py # Multi-agent system implementation
├── run_demo.py # End-to-end demonstration script
├── requirements.txt # Python dependencies
└── README.md # This file______________________________________________________________________
1.安装
创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt______________________________________________________________________
2.初始化数据库
运行一次:
python database_setup.py这会产生 support.db 有两张桌子:
客户
idnameemailphonestatuscreated_atupdated_at
票
idcustomer_idissuestatusprioritycreated_at
______________________________________________________________________
3.运行MCP服务器
python mcp_server.py服务器运行时间:
http://127.0.0.1:5000健康检查:
http://127.0.0.1:5000/health______________________________________________________________________
4.提供MCP工具
服务器公开了所有必需的工具:
- get_customer(customer_id) -检索客户信息
- list_customers(状态、限制) -按状态列出客户
- update_customer(customer_id,数据) -更新客户详细信息
- create_ticket(客户id、问题、优先级) -创建支持票
- get_customer_history(customer_id) -检索门票历史记录
所有工具都遵循MCP JSON-RPC格式,并返回结构化JSON。
______________________________________________________________________
5.多代理架构
RouterAgent(编排器)
- 解释自然语言查询
- 检测意图
- 将任务委托给专业代理
- 处理多步骤推理
- 记录代理间的通信
客户数据代理(MCP专家)
- 执行所有MCP工具调用
- 检索和更新客户数据
- 检索门票历史记录
- 创建新票
- 无推理:纯结构化I/O
SupportAgent(支持专家)
- 提供客户支持逻辑
- 处理升级、帐户问题、账单、取消
- 执行升级(双重收费→ 高优先级票)
- 生成票证状态报告
- 处理多意图查询
______________________________________________________________________
6.运行端到端演示
python run_demo.py此脚本演示了所有场景:
- 简单查询
- 任务分配
- 谈判 (账单+取消)
- 多步推理 (为活跃客户开放门票)
- 升级 (双倍退款)
- 多意图 (更新电子邮件+票务历史记录)
输出包括:
- 📝 用户查询
- 🔄 详细的代理间日志
- ✅ 最终构造答案
______________________________________________________________________
7.结论(反思)
这个项目帮助我了解了如何设计一个干净的多代理架构,其中每个代理都有一个特定的角色,代理之间的通信是明确和可追溯的。构建MCP服务器加强了我对将数据访问与推理逻辑分离的理解。实施升级和工单报告生成等多步骤工作流程需要仔细协调和透明的日志记录,这是这项任务的核心部分。总的来说,这个项目提高了我对现实世界人工智能应用中的代理编排、工具集成和系统级透明度的理解。
______________________________________________________________________
8.要求
flask
flask-cors
requests
termcolor______________________________________________________________________
9.总结
此存储库包括:
- ✅ MCP服务器
- ✅ 多代理系统(路由器、数据、支持)
- ✅ A2A协调
- ✅ 端到端演示
- ✅ 自述文件
- ✅ 需求.txt
