v1.1.0 — 7 Gateway x 125 MCP 工具架构
· 阅读需 3 分钟
这是一个里程碑版本,从单一 Gateway(29 个工具)全面重构为 7 个专业 Gateway x 125 个 MCP 工具。
核心变化
1 Gateway → 7 Gateway · 29 工具 → 125 工具 · 19 个 Lambda 函数 · 引入 Sonnet 意图分类器
Before / After:Gateway 架构
| 项目 | Before (v1.0) | After (v1.1.0) |
|---|---|---|
| Gateway 数量 | 1 (Ops) | 7(基于角色) |
| MCP 工具数量 | 29 | 125 |
| Lambda 函数 | 5 | 19 |
| 路由 | 单一路径 | 9 级优先级 |
| 意图分类 | 关键词匹配 | Sonnet 自然语言分类 |
| Container 响应时间 | ~50 秒 | ~23 秒 |
7 个基于角色的 Gateway
每个 Gateway 提供针对特定领域优化的工具集。URL 在 agent.py 的 GATEWAYS 字典中管理。
| Gateway | 工具数 | 主要功能 | Lambda 函数 |
|---|---|---|---|
| Network | 17 | VPC Flow Logs、SG 规则、Reachability | network_analyzer、reachability_analyzer、tgw_analyzer、vpn_analyzer、firewall_analyzer |
| Container | 24 | EKS、ECS、Istio 故障排查 | eks_analyzer、ecs_analyzer、istio_analyzer |
| IaC | 12 | CloudFormation、CDK、Terraform | cfn_analyzer |
| Data | 24 | DynamoDB、RDS、ElastiCache、MSK | dynamodb_analyzer、rds_analyzer、elasticache_analyzer、msk_analyzer |
| Security | 14 | IAM 策略模拟、权限分析 | iam_analyzer |
| Monitoring | 16 | CloudWatch 指标/告警、CloudTrail 事件 | cloudwatch_analyzer、cloudtrail_analyzer |
| Cost | 9 | Cost Explorer、Budgets 预算 | cost_analyzer、budget_analyzer |
19 个 Lambda 函数
在 agent/lambda/ 目录中管理,使用 create_targets.py 批量创建 Gateway Target。
Gateway Target 创建
使用 Python/boto3 而非 CLI(mcp.lambda + credentialProviderConfigurations)。
由于 CLI 的 inlinePayload 问题,必须采用编程方式。
| # | Lambda | 领域 | 主要功能 |
|---|---|---|---|
| 1 | network_analyzer | Network | VPC Flow Logs 分析、SG 规则验证 |
| 2 | reachability_analyzer | Network | VPC Reachability Analyzer 路径分析 |
| 3 | tgw_analyzer | Network | Transit Gateway 路由 |
| 4 | vpn_analyzer | Network | Site-to-Site VPN 状态/隧道 |
| 5 | firewall_analyzer | Network | Network Firewall 规则 |
| 6 | eks_analyzer | Container | EKS 集群、节点组、插件 |
| 7 | ecs_analyzer | Container | ECS 服务、任务、洞察 |
| 8 | istio_analyzer | Container | Istio 服务网格配置 |
| 9 | dynamodb_analyzer | Data | 表容量、GSI/LSI |
| 10 | rds_analyzer | Data | 实例性能、参数组 |
| 11 | elasticache_analyzer | Data | 集群状态、Valkey 支持 |
| 12 | msk_analyzer | Data | Broker 状态、主题分析 |
| 13 | iam_analyzer | Security | 策略模拟、权限分析 |
| 14 | cloudwatch_analyzer | Monitoring | 指标/告警分析 |
| 15 | cloudtrail_analyzer | Monitoring | 事件搜索 |
| 16 | cost_analyzer | Cost | Cost Explorer 成本/预测 |
| 17 | budget_analyzer | Cost | Budgets 预算监控 |
| 18 | cfn_analyzer | IaC | CloudFormation 堆栈/漂移 |
| 19 | steampipe_query | Ops | Steampipe SQL 查询执行 |
动态路由系统
在 src/app/api/ai/route.ts 中执行 9 级优先级的关键词路由。
agent.py:通过payload.gateway参数选择网关route.ts:9 级优先级关键词路由- 引入 Sonnet 意图分类器(
c56f557)— 关键词未匹配时通过自然语言分析选择最佳 Gateway
AI 测试结果
为验证 Gateway 拆分的效果,进行了 104 个问题的测试。
| 项目 | 结果 |
|---|---|
| 测试问题数 | 104 个 |
| 路由准确率 | 93% (97/104) |
| Container 响应速度提升 | 54% (50s → 23s) |
| Gateway 拆分效果 | 借助各领域的专业工具提升响应质量 |
性能提升要点
拆分 Gateway 后,代理需要参考的工具数量减少,工具选择准确率和响应速度均得到提升。 在单一 Gateway(125 个工具)下 LLM 需要花时间寻找合适的工具,而在 Container Gateway(24 个工具)下可以立即选中相关工具。