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:OpenAI API密钥设置指南
- Google Gemini:Gemini API密钥设置指南
- Anthropic Claude:Anthropic API密钥设置指南
- AWS Bedrock Nova:AWS Bedrock Nova配置指南
- Ollama (本地大语言模型):Ollama设置指南
# 对于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. 更多示例
- 快速教程:适用于AWS的AI基础设施代理
- 系列教程:使用AI代理在AWS上构建业务
高级用法
# 简单的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权限
- 监控成本和资源使用情况
- 备份关键基础设施
作者不对使用本软件可能产生的任何成本、数据丢失或安全问题负责。
Scan to join WeChat group