AI Infrastructure Agent
Проект позволяет управлять инфраструктурой AWS через естественный язык. Вы описываете, что нужно, а агент на основе AI (OpenAI, Google Gemini или Anthropic Claude) строит план и выполняет его.
⚠️ Это proof-of-concept. Не предназначен для production. Используйте на свой страх и риск, всегда тестируйте в разработческом окружении.
Возможности
- Естественный язык: пишите «создай EC2 для Apache с открытыми 80 и 22 портами», а не разбирайтесь в API.
- Несколько AI-провайдеров: OpenAI, Google Gemini, Anthropic.
- Безопасность: dry-run режим (показывает, что будет сделано, без реальных изменений) и обнаружение конфликтов.
- Веб-дашборд: управление через браузер.
- Умное планирование: AI генерирует пошаговый план выполнения и ждёт вашего одобрения.
- Состояние инфраструктуры: хранит и отслеживает текущее состояние ресурсов, обнаруживает дрейф.
Предварительные требования
- Go 1.24.2+
- Учётная запись AWS с соответствующими IAM-разрешениями
- API-ключ хотя бы одного AI-провайдера: OpenAI, Google Gemini или Anthropic
Быстрая установка
Автоматическая (рекомендуется)
git clone https://github.com/VersusControl/ai-infrastructure-agent.git
cd ai-infrastructure-agent
./scripts/install.sh
Скрипт установит Go, настроит AWS CLI, создаст директории, соберёт MCP-сервер и веб-интерфейс, создаст конфигурационные и запускающие скрипты.
Ручная установка
# 1. Установите Go 1.24.2+ (https://golang.org/dl/)
# 2. Установите AWS CLI (https://aws.amazon.com/cli/)
# 3. Клонируйте и соберите
git clone https://github.com/VersusControl/ai-infrastructure-agent.git
cd ai-infrastructure-agent
go mod download
go mod tidy
go build -o bin/web-ui cmd/web/main.go
mkdir -p bin logs backups tmp
cp config.openai.yaml.example config.yaml
Настройка
- Отредактируйте
config.yaml:
agent:
provider: "openai" # openai, gemini, anthropic
model: "gpt-4"
max_tokens: 4000
temperature: 0.1
dry_run: true # сначала всегда тестируйте в dry-run
auto_resolve_conflicts: false
- Установите переменные окружения API-ключа выбранного провайдера:
export OPENAI_API_KEY="ваш-ключ"
export GEMINI_API_KEY="ваш-ключ"
export ANTHROPIC_API_KEY="ваш-ключ"
- Настройте AWS-учётные данные:
aws configure
# или через переменные:
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_DEFAULT_REGION="us-west-2"
Запуск и использование
./scripts/run-web-ui.sh
Откройте в браузере http://localhost:8080. Дашборд позволяет отправлять запросы на естественном языке, просматривать планы, подтверждать или отклонять выполнение.
Примеры запросов
- «Создай t3.micro EC2 с Ubuntu 22.04»
- «Разверни веб-приложение с балансировщиком и двумя EC2»
- «Создай RDS MySQL с read replica в нескольких зонах»
- «Создай среду разработки с VPC, подсетями, EC2 и RDS»
- «Разверни auto-scaling группу по CPU»
Архитектура
Система состоит из двух основных частей:
- Веб-интерфейс (React) — дашборд для взаимодействия.
- MCP-сервер (Go) — ядро агента, которое:
- Получает запрос на естественном языке
- Обращается к AI-провайдеру для генерации плана
- Представляет план пользователю на утверждение
- После одобрения выполняет действия через AWS SDK
- Отслеживает состояние всех ресурсов
Безопасность
- Dry-run: все операции сначала запускаются в режиме «показать, что будет сделано». Стоимость оценивается, реальные ресурсы не меняются.
- Государственное управление: если состояние ресурсов расходится с ожидаемым — агент обнаружит дрейф.
- Никогда не коммитьте API-ключи.
- Используйте IAM-политики с минимальными привилегиями.
- Запускайте в изолированных сетях, если возможно.
Устранение неполадок
Проблемы с AWS-аутентификацией
aws sts get-caller-identity
aws ec2 describe-regions
Проблемы с API-ключами AI
echo $OPENAI_API_KEY
curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models
Порт занят
lsof -i :8080
kill -9 <PID>
# или измените порт в config.yaml
Проблемы сборки Go
go clean -modcache
go mod download
go mod tidy
go build ./...
Планы развития
Текущая версия (v0.1.0 — PoC)
- Базовая обработка естественного языка
- Управление основными AWS-ресурсами
- Веб-дашборд
- Поддержка MCP-протокола
Следующая версия (v0.2.0)
- Улучшенное разрешение конфликтов
- Рекомендации по оптимизации затрат
- Шаблоны инфраструктуры
- Управление доступом на основе ролей
Вклад в проект
Форкните репозиторий, создайте ветку feature-name, внесите изменения, запустите тесты и отправьте Pull Request.
Сообщество и поддержка
Лицензия
MIT — подробнее в файле LICENSE.
Отказ от ответственности
Это proof-of-concept. Мы реализовали меры безопасности (dry-run, обнаружение конфликтов), но вы обязаны:
- Всегда тестировать в средах разработки
- Проверять все сгенерированные планы перед выполнением
- Поддерживать корректные IAM-разрешения
- Контролировать расходы и использование ресурсов
- Делать резервные копии критической инфраструктуры
Авторы не несут ответственности за любые затраты, потерю данных или проблемы безопасности, возникшие при использовании данного программного обеспечения.
Комментарии
Комментариев пока нет. Будьте первым.