☁️ AI云优化代理
一个生产就绪的人工智能系统,可以分析云使用情况并使用以下工具生成优化建议 API双子星, MCP服务器,以及 流线型仪表板.
🎯 系统概述
Cloud APIs → MCP Server → Gemini AI Agent → Streamlit Dashboard组件
- MCP服务器:公开云使用、计费和优化规则的工具
- Gemini AI代理:分析数据并生成建议
- 流线型仪表板:显示带有审批界面的建议
🚀 快速开始
先决条件
- Python 3.8+
- Gemini API密钥(在这里买一个)
安装
- 克隆和设置环境:
# Install dependencies
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env and add your Gemini API key
# GEMINI_API_KEY=your_key_here- 启动MCP服务器:
python mcp_server.py服务器将于启动 http://localhost:8000
- API文件:http://localhost:8000/docs
- 运行AI代理(独立):
python gemini_agent.py这将:
- 从MCP服务器获取数据
- 使用Gemini AI进行分析
- 将建议保存到
recommendations.json
- 启动Streamlit仪表板:
streamlit run streamlit_app.py仪表板将在以下时间打开 http://localhost:8501
🧠 AI代理系统提示
Gemini代理使用此系统指令:
You are an autonomous Cloud Optimization AI Agent.
Objectives:
- Analyze cloud usage, billing, and performance metrics
- Identify inefficiencies and idle resources
- Recommend cost and performance optimizations
- Never violate SLAs
- Always estimate savings
Rules:
- Use MCP tools ONLY for data
- Never hallucinate metrics
- Output STRICT JSON
- Prefer reversible, low-risk actions🛠️ MCP服务器端点
工具
GET /mcp/tools-列出所有可用工具POST /mcp/tools/get_cloud_usage-获取云使用指标POST /mcp/tools/get_cloud_cost-获取账单数据POST /mcp/tools/get_optimization_rules-获取优化规则
上下文
POST /mcp/context-更新MCP上下文GET /mcp/context-获取当前上下文
示例用法
# Get cloud usage
curl -X POST http://localhost:8000/mcp/tools/get_cloud_usage \
-H "Content-Type: application/json" \
-d '{"provider": "gcp", "time_range": "last_30_days"}'
# Get billing data
curl -X POST http://localhost:8000/mcp/tools/get_cloud_cost \
-H "Content-Type: application/json" \
-d '{"provider": "gcp", "time_range": "last_30_days"}'📊 流线型仪表板功能
- 执行摘要:调查结果和潜在节省概述
- 推荐表:详细的优化建议
- 过滤:按风险、优先级和资源类型
- 审批界面:批准/拒绝建议
- 数据导出:以CSV格式下载推荐
- 洞察:人工智能生成的其他见解
🔐 安全与治理
- 只读访问:MCP服务器使用只读云IAM角色
- 没有删除权限:代理无法删除资源
- 人工审批:所有操作都需要通过Streamlit批准
- 审计日志:执行历史记录跟踪所有运行
📈 优化逻辑
| 条件 | 建议 | 风险 |
|---|---|---|
| CPU\<20% | 缩小VM | 低 |
| 空闲磁盘 | 移至冷存储 | 低 |
| 高出口 | 优化路由 | 中等 |
| 恒定负载 | 保留实例 | 低 |
🚀 部署选项
本地开发
- MCP服务器:
python mcp_server.py - 流光灯:
streamlit run streamlit_app.py
生产部署
| 组件 | 平台 |
|---|---|
| MCP服务器 | Docker/VM/云运行 |
| Streamlit | Streamlit云/VM |
| Gemini API | 谷歌人工智能工作室 |
📦 项目结构
.
├── mcp_server.py # MCP Server (FastAPI)
├── gemini_agent.py # Gemini AI Agent
├── streamlit_app.py # Streamlit Dashboard
├── requirements.txt # Python Dependencies
├── .env.example # Environment Template
└── README.md # This file🔄 与Real Cloud API集成
要连接到真正的云提供商:
- 亚马逊云服务:使用肉毒杆菌3
- 谷歌云平台:使用谷歌云监控,谷歌云计费
- Azure:使用azure mgmt监视器、azure mgmt成本管理
GCP示例:
from google.cloud import monitoring_v3
from google.cloud import billing_v1
# In mcp_server.py, replace mock data with:
client = monitoring_v3.MetricServiceClient()
# Fetch real metrics...📝 输出格式
建议保存为JSON格式:
{
"summary": "Multiple underutilized compute instances found",
"total_potential_savings": "$185.00/month",
"recommendations": [
{
"resource_id": "vm-prod-gcp-01",
"resource_type": "compute",
"issue": "CPU usage below 20%",
"current_state": "CPU: 15.5% avg, Memory: 32.1%",
"action": "Downsize machine type from n1-standard-4 to n1-standard-2",
"estimated_savings": "$110/month",
"risk": "low",
"priority": "high",
"implementation_effort": "low"
}
],
"insights": [
"3 compute instances show underutilization",
"Storage costs are within acceptable range"
]
}🎓 学术用途
本项目适用于:
- 最后一年项目:具有AI、自动化和UI的完整系统
- 研究:使用AI代理进行云优化
- 创业MVP:生产就绪基础
🔥 后续步骤
- \[\]添加真正的云API集成(AWS/GCP/Azure)
- \[\]实施预测和异常检测
- \[\]添加多云支持
- \[\]创建自动审批工作流
- \[\]添加成本跟踪和ROI计算
- \[\]实施通知系统(电子邮件/Slack)
📄 许可证
麻省理工学院许可证-可自由用于学术或商业目的。
🤝 贡献
欢迎投稿!请打开问题或拉取请求。
📧 支持
如有疑问或问题,请打开GitHub issue。
______________________________________________________________________
建于❤️ 使用Gemini AI、MCP和Streamlit
