智能SRE代理

基于AI的SRE平台,利用Claude自动检测、调查和修复生产事故,提供从告警到修复的完整闭环解决方案。

  • by sanketsultan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sanketsultan/intelligent-sre-mcp

使用说明

智能SRE代理

人工智能驱动的SRE平台,使用Claude自动检测、调查和修复生产事件。

Alertmanager发出警报,代理查询Prometheus、Loki和Kubernetes,确定根本原因,进行补救(重启pod、补丁部署、回滚发布),并将摘要发布到Slack。所有这些都在PostgreSQL中有完整的审计跟踪。

先决条件

  • Docker 桌面版 适用于Docker Compose和本地Kubernetes
  • Python 3.10+用于运行SRE代理CLI
  • kubectl 用于Kubernetes设置(包含在Docker Desktop中)
  • ANTHROPIC_API_KEY 从https://console.anthropic.com

快速开始

Docker Compose(建议本地开发人员使用)

git clone https://github.com/sanketsultan/intelligent-sre-agent.git
cd intelligent-sre-agent
cp .env.example .env        # then set ANTHROPIC_API_KEY in .env
make dev
服务 URL
APIhttp://localhost:8080
普罗米修斯 http://localhost:9090
格拉法娜 http://localhost:3000

Kubernetes(Docker桌面)

cp .env.example .env        # then set ANTHROPIC_API_KEY in .env
./scripts/setup.sh
服务 URL
APIhttp://localhost:30080
普罗米修斯 http://localhost:30090
格拉法娜 http://localhost:30300
警报管理器 http://localhost:30093
耶格尔 http://localhost:30686

集 ANTHROPIC_API_KEY 在 .env 启用代理和Slack机器人。


运作原理

当警报响起时:

  1. 第一阶段-俳句调查(总是跑,便宜又快)
  2. 第2阶段-如果严重程度达到阈值(默认值:严重),十四行诗将进行补救
  3. 第三阶段——如果十四行诗有任何破损,作品会以其他方式升级
  4. 如果opus也失败了,发布一条紧急的Slack消息以进行人工干预

每5分钟有一个CronJob点击 /health/proactive-check如果健康评分降至阈值以下(默认值50/100),调查和补救将自动运行,而无需等待警报。


SRE代理

# Investigate
python -m intelligent_sre_agent.sre_agent "What is the current health of the system?"

# Investigate + remediate
python -m intelligent_sre_agent.sre_agent --remediate "Pods are CrashLoopBackOff in production"

# Model selection (default: haiku for speed/cost)
python -m intelligent_sre_agent.sre_agent --model sonnet "High 5xx error rate on checkout"
python -m intelligent_sre_agent.sre_agent --model opus  "Database down, 100% error rate"

Slack机器人

./scripts/run-slack-bot.sh
# Requires SLACK_BOT_TOKEN + SLACK_APP_TOKEN + ANTHROPIC_API_KEY in .env
命令 操作
/sre <prompt> 调查(只读)
/sre remediate <prompt> 调查和治疗
/sre runbooks 列出运行手册
@SRE-Bot <prompt> 提及快捷方式

警报管理器Webhook

每次警报时自动点火。保存到数据库并运行后台代理调查。

POST http://localhost:8080/alertmanager/webhook   # receives alerts
GET  http://localhost:8080/alerts                 # list all alerts
GET  http://localhost:8080/alerts/<id>            # alert + investigation summary

调整代理

在中设置这些环境变量 k8s/base/app/intelligent-sre-agent.yaml 或 .env:

Var 默认值 它的作用
SRE_AUTO_REMEDIATE_SEVERITY critical 设置为 warning 还可以自动修复警告警报
SRE_PROACTIVE_HEALTH_THRESHOLD 50 健康评分低于此值时,主动检查会触发补救
SRE_REMEDIATION_MODEL claude-sonnet-4-5 第二阶段修复模型
SRE_ESCALATION_MODEL claude-opus-4-6 如果十四行诗让东西破碎,则使用模型
SRE_MODEL claude-haiku-4-5 第一阶段调查模型
SRE_MAX_TOKENS 4096 输出令牌上限

混沌/修复测试

端到端测试:部署损坏的Pod,触发自动化管道,验证代理是否修复了它们。

export ANTHROPIC_API_KEY=sk-ant-...
./scripts/test-remediation.sh

模拟的故障模式:

Pod 故障 代理修复
crash-worker CrashLoopBackOff 修补导致退出1的环境变量
dependent-worker 初始化:错误 崩溃修复后自动恢复
pending-worker 待定 修补不可能节点选择器
sick-api 正在运行/NotReady 补丁损坏的准备就绪探针

堆栈

  • 应用:FastAPI+PostgreSQL
  • 可观测性:普罗米修斯+格拉法纳+洛基+耶格尔+开放遥测+警报管理器
  • 基础设施:地形(AWS EKS+RDS)+Kubernetes(Kustomize覆盖)
  • 安全:OPA/看门人、Falco、吊舱安全标准
  • 持续集成:GitHub使用ruff、pytest、docker build、kubeconform、tflint、checkov进行操作

故障排除

# Auto-detect environment and tail logs
make logs

# Docker Compose
make dev-logs
docker compose ps

# Kubernetes
kubectl get pods -n intelligent-sre
kubectl logs -n intelligent-sre deployment/intelligent-sre-agent --tail=50

许可证

麻省理工学院