云优化AI代理

一个基于Gemini API、MCP Server和Streamlit仪表板的生产级AI系统,用于分析云使用情况并生成优化建议。

  • by Incertyo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Incertyo/CustomMCPAI

使用说明

☁️ AI云优化代理

一个生产就绪的人工智能系统,可以分析云使用情况并使用以下工具生成优化建议 API双子星, MCP服务器,以及 流线型仪表板.

🎯 系统概述

Cloud APIs → MCP Server → Gemini AI Agent → Streamlit Dashboard

组件

  • MCP服务器:公开云使用、计费和优化规则的工具
  • Gemini AI代理:分析数据并生成建议
  • 流线型仪表板:显示带有审批界面的建议

🚀 快速开始

先决条件

安装

  1. 克隆和设置环境:
# 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
  1. 启动MCP服务器:
python mcp_server.py

服务器将于启动 http://localhost:8000

  • API文件:http://localhost:8000/docs
  1. 运行AI代理(独立):
python gemini_agent.py

这将:

  • 从MCP服务器获取数据
  • 使用Gemini AI进行分析
  • 将建议保存到 recommendations.json
  1. 启动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集成

要连接到真正的云提供商:

  1. 亚马逊云服务:使用肉毒杆菌3
  2. 谷歌云平台:使用谷歌云监控,谷歌云计费
  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