返回市场
多智能体区域扩张规划器

多智能体区域扩张规划器

作者:aws-samples4 星标更新:2025-11-14

项目介绍

多区域扩展规划器

这是一个使用Strands SDK构建的复杂多代理系统,利用AWS知识图谱MCP(模型上下文协议)加速跨多个区域的AWS基础设施扩展。

概述

本项目展示了如何利用AI代理和AWS知识图谱智能地规划和执行多区域基础设施部署。该系统分析现有的AWS资源,识别区域服务可用性差距,并生成全面的扩展策略。

主要特性

  • 多代理架构:针对扩展规划不同方面的专门代理
  • AWS知识图谱集成:利用MCP进行综合的服务可用性分析
  • CloudFormation分析:发现并分析现有的基础设施模式
  • CloudTrail智能:从操作数据中提取使用模式
  • 区域差距分析:识别各区域之间的服务可用性差异
  • 成本优化:提供多区域部署的价格分析
  • 自动化报告:生成详细的扩展规划报告

架构

该系统由几个专门的代理组成:

  • CFN Explorer:分析CloudFormation堆栈和资源
  • CloudTrail Explorer:从CloudTrail日志中提取服务使用模式
  • Waypoint Explorer:识别区域服务可用性差距
  • 多区域扩展规划器:协调全面的扩展规划
  • 分析写入器:将发现整合成结构化报告
  • 定价探索者:分析多区域部署的成本影响
  • 报告生成器:创建最终的扩展规划文档

预备条件

  • Python >= 3.10
  • 已安装AWS CLI
  • 具有所需权限的IAM用户
  • Strands SDK(通过requirements.txt自动安装)

安装

  1. 克隆仓库:
git clone <repository-url>
cd multi-region-expansion-planner
  1. 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

AWS配置文件设置

创建具有以下权限的IAM用户

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CloudFormationAnalysis",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "cloudformation:ListStackResources",
                "cloudformation:DescribeStackResources"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudTrailAnalysis", 
            "Effect":  "Allow",
            "Action": [
                "cloudtrail:LookupEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "BedrockAccess",
            "Effect": "Allow", 
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0"
            ]
        }
    ]
}

设置步骤

  1. AWS控制台 → IAM → 用户 → 创建用户
  2. 附加策略 → 创建策略 → JSON标签
  3. 粘贴上述策略 → 审查 → 创建策略
  4. 将策略附加到您的用户
  5. 安全凭证 → 创建访问密钥 → 命令行界面(CLI)
  6. 下载或复制粘贴用于AWS CLI配置的凭证
aws configure --profile region-planner-user

当提示时,输入:

  • AWS访问密钥ID:您的IAM用户的访问密钥
  • AWS秘密访问密钥:您的IAM用户的秘密密钥
  • 默认区域名称:us-east-1(或您首选的源区域)
  • 默认输出格式:json

测试配置文件

# 验证凭据是否工作
aws sts get-caller-identity --profile region-planner-user

代码配置

  1. src/utils/config.py中配置Bedrock模型提供商账户AWS配置文件以进行身份验证:
class Constants:
    # 替换为您实际的账户ID以使用Bedrock模型
    INFRA_ACCOUNT = "123456789012"
    # 用于认证的AWS CLI配置文件
    BEDROCK_AWS_CLI_PROFILE = "bedrock-profile" 
  1. 配置资源发现和区域扩展规划的AWS账户访问。添加AWS配置文件以访问账户和目标区域。
class ExpansionPlaningInputs:
    PROFILE_NAME = 'your-aws-profile'
    SOURCE_REGION = 'us-east-1'
    TARGET_REGIONS = ['eu-central-1', 'ap-southeast-1', 'ca-central-1']

使用方法

清理之前的分析

在运行新的分析之前,可以清理之前的分析结果:

./cleanup.sh

基本用法

运行完整的扩展规划工作流:

python src/main.py

这将:

  1. 分析源区域中的CloudFormation资源
  2. 从CloudTrail中提取服务使用模式
  3. 识别目标区域的服务可用性差距
  4. 生成全面的扩展规划报告

单个代理使用

您也可以单独运行特定分析的代理:

# 仅运行CFN分析
python src/agents/cfn_explorer.py

# 运行区域差距分析
python src/agents/waypoint_explorer.py

# 生成扩展计划
python src/agents/multi_region_expansion_planner.py

输出

系统将在src/analysis_results/目录下生成多个输出文件:

  • cfn_explorer_result.json:CloudFormation资源分析
  • cloudtrail_explorer_result.json:服务使用模式
  • waypoint_explorer_<region>_result.json:区域可用性分析
  • expansion_planning_report.md:最终扩展规划报告
  • multi_region_expansion_planning_report.md:详细的技术分析

AWS知识图谱MCP集成

本项目展示了AWS知识图谱MCP服务器的强大功能,包括:

  • 服务可用性查询:实时获取AWS服务在各区域的可用信息
  • 功能兼容性分析:了解区域功能差异
  • 合规性和监管映射:区域合规性要求
  • 成本优化洞察:区域价格变化和优化机会

项目结构

├── src/
│   ├── agents/                 # 专门的AI代理
│   │   ├── cfn_explorer.py
│   │   ├── cloudtrail_explorer.py
│   │   ├── waypoint_explorer.py
│   │   ├── multi_region_expansion_planner.py
│   │   └── ...
│   ├── analysis_results/       # 生成的分析输出
│   ├── utils/                  # 配置和工具
│   │   ├── config.py
│   │   ├── planner_inputs.py
│   │   └── prompts.py
│   └── main.py                # 主协调脚本
├── tests/                     # 测试文件
├── requirements.txt           # Python依赖项
└── README.md                 # 本文件

关键优势

  • 加速规划:将多区域扩展规划时间从数周缩短至数小时
  • 全面分析:考虑技术、运营和成本因素
  • 风险缓解:在部署前识别潜在问题
  • 最佳实践:结合AWS Well-Architected原则
  • 自动化准备:生成可操作的部署计划

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交拉取请求

许可

本项目根据MIT许可发布 - 查看LICENSE文件以获取详情。

支持

对于问题或问题:

  1. 检查仓库中的现有问题
  2. 创建带有详细信息的新问题
  3. 包括相关的日志文件和配置细节

致谢

  • 使用Strands SDK进行多代理编排
  • 由AWS知识图谱MCP提供全面的服务情报
  • 利用AWS CloudFormation和CloudTrail进行基础设施分析