Back to MCP directory
publicPublicdnsLocal runtime

ai-infrastructure-agent

AI基础设施代理是一个智能系统,允许用户通过自然语言命令管理AWS云资源。它利用AI模型将用户需求转化为可执行的AWS操作,并提供Web仪表板、状态管理和安全防护功能。

article

README

🚀 AI基础设施代理

AI基础设施代理是一个智能系统,借助自然语言命令管理AWS基础设施。它由先进的AI模型(如OpenAI GPT、Google Gemini或Anthropic Claude)驱动,将基础设施请求转化为可执行的AWS操作,同时通过冲突检测和解决机制确保操作安全。

🚀 快速开始

本项目是概念验证项目,目前仍在积极开发中,不建议用于生产环境。我们计划未来发布生产就绪版本,请自行承担使用风险,并先在开发环境中进行测试。

要运行AI基础设施代理,可参考以下详细指南:安装指南

克隆仓库

git clone https://github.com/VersusControl/ai-infrastructure-agent.git
cd ai-infrastructure-agent

1. 编辑配置文件

# 编辑主配置文件
nano config.yaml

2. 设置AI提供商

config.yaml中选择你偏好的AI提供商:

agent:
  provider: "openai"          # 选项: openai, gemini, anthropic, bedrock, ollama
  model: "gpt-4"             # 要使用的模型
  max_tokens: 4000
  temperature: 0.1
  dry_run: true              # 以启用预运行模式开始
  auto_resolve_conflicts: false

3. 设置环境变量

详细设置指南

# 对于OpenAI
export OPENAI_API_KEY="your-openai-api-key"

# 对于Google Gemini
export GEMINI_API_KEY="your-gemini-api-key"

# 对于Anthropic Claude
export ANTHROPIC_API_KEY="your-anthropic-api-key"

# 对于Ollama (可选 - 默认值为 http://localhost:11434)
export OLLAMA_SERVER_URL="http://localhost:11434"

# 对于AWS Bedrock Nova - 使用AWS凭证 (无需API密钥)
# 使用以下方式配置AWS凭证: aws configure、环境变量或IAM角色

4. 配置AWS凭证

# 配置AWS CLI
aws configure

# 或者设置环境变量
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_DEFAULT_REGION="us-west-2"

✨ 主要特性

  • 自然语言接口:只需描述需求,无需关注具体构建方式。
  • 多AI提供商支持:可在OpenAI、Google Gemini、Anthropic、AWS Bedrock Nova或Ollama(本地大语言模型)之间选择。
  • Web仪表盘:用于基础设施管理的可视化界面,内置冲突检测和预运行模式。
  • 类Terraform状态:保持基础设施状态的准确记录。
  • 当前资源支持:支持VPC、EC2、SG、自动伸缩组、ALB。查看路线图:核心平台开发

📦 安装指南

方法一:使用Docker安装

基本的Docker运行命令:

docker run -d \
  --name ai-infrastructure-agent \
  -p 8080:8080 \
  -v $(pwd)/config.yaml:/app/config.yaml:ro \
  -v $(pwd)/states:/app/states \
  -e OPENAI_API_KEY="your-openai-api-key-here" \
  -e AWS_ACCESS_KEY_ID="your-aws-access-key" \
  -e AWS_SECRET_ACCESS_KEY="your-aws-secret-key" \
  -e AWS_DEFAULT_REGION="us-west-2" \
  ghcr.io/versuscontrol/ai-infrastructure-agent

使用Docker Compose(推荐)。创建一个docker-compose.yml文件:

version: '3.8'

services:
  ai-infrastructure-agent:
    image: ghcr.io/versuscontrol/ai-infrastructure-agent
    container_name: ai-infrastructure-agent
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      # 挂载配置文件 (只读)
      - ./config.yaml:/app/config.yaml:ro
      # 挂载数据目录 (持久化)
      - ./states:/app/states
    environment:
      # AI提供商API密钥 (选择一个)
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      # - GEMINI_API_KEY=${GEMINI_API_KEY}
      # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      
      # AWS配置
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-us-west-2}

启动应用程序:

# 使用Docker Compose启动
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止应用程序
docker-compose down

方法二:使用自动化Bash脚本

# 克隆仓库
git clone https://github.com/VersusControl/ai-infrastructure-agent.git
cd ai-infrastructure-agent

# 运行安装脚本
./scripts/install.sh

启动Web UI:

./scripts/run-web-ui.sh

访问仪表盘

在浏览器中访问:

http://localhost:8080

💻 使用示例

基础用法

假设你希望通过一个简单的请求来创建AWS基础设施:

“创建一个用于托管Apache服务器的EC2实例,并配备一个专用的安全组,允许入站HTTP(端口80)和SSH(端口22)流量。”

💡 Amazon Nova用户:当使用AWS Bedrock Nova模型时,你可以在请求中指定区域以获得更好的上下文信息,例如 “在us-east-1区域创建一个用于托管Apache服务器的EC2实例...”

以下是具体流程:

1. AI分析与规划

AI代理会分析你的请求并创建详细的执行计划:

sequenceDiagram
    participant U as 用户
    participant A as AI代理
    participant S as 状态管理器
    participant M as MCP服务器
    participant AWS as AWS API
    
    U->>A: "创建用于Apache服务器的EC2实例..."
    A->>S: 获取当前基础设施状态
    S->>A: 返回当前状态
    A->>M: 查询可用工具和功能
    M->>A: 返回工具功能
    A->>A: 使用大语言模型生成执行计划
    A->>AWS: 验证计划 (预运行检查)
    AWS->>A: 验证结果
    A->>U: 展示执行计划以供批准
    
    Note over A,U: 计划包括:<br/>• 获取默认VPC<br/>• 创建安全组<br/>• 添加HTTP和SSH规则<br/>• 获取最新AMI<br/>• 创建EC2实例

代理会展示计划供你审核:

  • 明确显示将创建的内容
  • 等待你的批准

2. 执行与监控

一旦获得批准,代理将:

  • 按正确顺序创建资源
  • 实时监控进度
  • 自动处理依赖关系
  • 报告完成状态

查看 实时演示

3. 更多示例

高级用法

# 简单的EC2实例
"创建一个运行Ubuntu 22.04的t3.micro EC2实例"

#  Web服务器设置
"部署一个负载均衡的Web应用程序,在ALB后面配置2个EC2实例"

# 数据库设置
"创建一个具有多个可用区只读副本的RDS MySQL数据库"

# 完整环境
"设置一个包含VPC、子网、EC2和RDS的开发环境"

📚 详细文档

🔧 技术细节

架构

详细内容请阅读:技术架构概述

组件

  • Web界面:基于React的可视化交互仪表盘。
  • MCP服务器:实现模型上下文协议的核心代理。
  • 代理核心:由AI驱动的决策和规划模块。
  • AWS客户端:安全的AWS SDK集成。
  • 状态管理:跟踪基础设施状态并解决冲突。

安全特性

预运行模式

所有操作都可以先在“预运行”模式下执行:

  • 明确显示将创建、修改或删除的内容
  • 在执行前估算成本
  • 不会实际触及AWS资源

状态管理

  • 保持基础设施状态的准确记录
  • 检测与预期配置的偏差

📄 许可证

本项目采用MIT许可证,详情请查看 LICENSE 文件。

⚠️ 重要提示

本项目是概念验证项目。尽管我们已经实施了预运行模式和冲突检测等安全措施,但请始终:

  • 先在开发环境中进行测试
  • 在执行前审核所有生成的计划
  • 维护适当的AWS IAM权限
  • 监控成本和资源使用情况
  • 备份关键基础设施

作者不对使用本软件可能产生的任何成本、数据丢失或安全问题负责。


由DevOps VN团队用心打造

借助AI赋能基础设施管理

⭐ 给这个仓库加星 | 🐛 报告Bug | 💡 请求新特性

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client