MrDunky14/SREBench

GitHub: MrDunky14/SREBench

一个基于 OpenEnv 规范的微服务故障模拟与 AI 智能体评估基准,用于训练和测试大语言模型处理真实生产环境事件响应的能力。

Stars: 0 | Forks: 0

## 标题:SREBench 描述:用于 SRE 智能体的生产环境事件响应基准测试,使用 OpenEnv sdk: docker colorFrom: blue colorTo: red # 🚨 SREBench:生产级 SRE 事件响应基准测试 **一个真实的 OpenEnv 基准测试环境,用于在处理生产环境事件响应时训练和评估 AI 智能体。** 你必须在一个真实的 6 服务架构中诊断并修复微服务故障,运用 Meta、Google、Amazon 和 Microsoft 的值班 SRE 每天使用的工具和推理模式,应对 **12 个独立的生产环境事件场景** 以及一个生成式的“随机”任务。 ## 🏆 黑客松提交链接(必填) | 资源 | 链接 | |---|---| | **🚀 Hugging Face Space** | [https://huggingface.co/spaces/CreatorNeuron/sre-bench](https://huggingface.co/spaces/CreatorNeuron/sre-bench) | | **📓 Colab Notebook** | [https://colab.research.google.com/drive/1dUMKWEun9nkDClP7F0dhuVfHJqPMKcDC#scrollTo=oHCFBmV_hZSg](https://colab.research.google.com/drive/1dUMKWEun9nkDClP7F0dhuVfHJqPMKcDC#scrollTo=oHCFBmV_hZSg) | | **💻 代码仓库** | [https://github.com/MrDunky14/SREBench](https://github.com/MrDunky14/SREBench) | | **📝 HF 博客文章** | [SREBench:教导 LLM 修复生产环境事件](BLOG_POST.md) | ## 🎯 快速链接 | | 链接 | |---|---| | **🌐 在线 Space** | https://huggingface.co/spaces/CreatorNeuron/sre-bench | | **📖 完整文档** | [sre-bench/README.md](sre-bench/README.md) | | **⚙️ API 文档** | https://creatorneuron-sre-bench.hf.space/docs | | **💻 GitHub 仓库** | https://github.com/MrDunky14/SREBench | | **📜 博客文章** | [SREBench:教导 LLM 修复生产环境事件](BLOG_POST.md) | | **🧪 最新审计** | [审计报告 (2026-04-24)](AUDIT_REPORT_2026-04-24.md) | | **📋 审计 JSON** | [audit_results.json](audit_results.json) | ## 📰 最新消息 ### 🚀 **使用 TRL 和 Unsloth 进行 GRPO 训练**(2026 年 4 月) 我们发布了 `train_grpo.py`——一个完整的训练流水线,用于在 SREBench 上微调 LLM,利用了: - 来自 [TRL](https://huggingface.co/docs/trl/) 的 **GRPO**(Generative Reward-Optimized,生成式奖励优化)训练 - 使用 **Unsloth** 进行 4 位量化与高效的 LoRA 微调 - 跨越 12 个不同故障场景(简单 → 中等 → 困难 → 专家)+ 1 个用于无限生成式训练的程序化随机任务的**课程学习 (Curriculum learning)**。 **快速开始:** 我们提供了一个完整的 Jupyter Notebook(`SREBench_Training.ipynb`),它负责处理环境连接、GRPO 设置和训练可视化。 只需将其上传到 Kaggle 或 Lightning AI(推荐使用 L4 GPU)并运行所有单元即可! **结果**:最终评估已完成。使用 Llama 3.1 8B 在 L4 GPU(24GB VRAM)上执行了 GRPO 训练。 | 智能体 | 简单 (重启) | 中等 (级联) | 困难 (间歇性) | |-------|---------------|-----------------|-------------------| | 随机 | ~-0.92 | ~-0.66 | ~-0.44 | | 启发式 | ~-0.19 | ~-0.19 | ~-0.19 | | **GRPO 训练后 (8B)** | **+0.85** | **+0.62** | **+0.74** | ![学习曲线影响:各任务中随机、启发式与 GRPO 智能体的奖励对比](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e01ec5f87f183211.png) 📖 **完整详情**:[阅读博客文章 →](BLOG_POST.md) ## 🏗️ 你将获得什么 **12 个难度递增的生产级事件任务,外加 1 个程序化生成任务:** ### ⚡ 简单任务 - **`easy_restart`**:因内存泄漏导致支付服务发生 OOMKilled。 ### 🔗 中等任务 - **`medium_cascade`**:数据库连接池耗尽,级联影响 3 个服务。 - **`medium_cpu_spike`**:API 网关上的 CPU 节流导致请求排队。 - **`medium_memory_leak`**:user-service 中缓慢的堆内存耗尽,需要提前发现。 ### 🔍 困难任务 - **`hard_intermittent`**:隐藏在“健康”服务中的缓存碎片问题。 - **`hard_disk_pressure`**:数据库上的 WAL 耗尽造成磁盘 I/O 瓶颈。 - **`hard_dns_resolution`**:网络隔离掩盖了下游故障。 - **`hard_config_drift`**:部署不匹配导致间歇性 503 错误。 ### 🌐 专家任务 - **`expert_network_partition`**:主数据库与副本数据库之间的网络分区。 - **`expert_database_replica_sync`**:因 WAL 同步问题导致的副本同步失败。 - **`expert_deadlock`**:数据库死锁导致级联的事务超时。 - **`expert_cert_expiry`**:过期的 TLS 证书拒绝了所有连接。 ### 🎲 生成模式 - **`random`**:在每个回合(episode)中随机分配 12 个事件中的一个,为 RL 智能体提供无限的课程学习。 ## 🌟 主要特性 ✅ **兼容 OpenEnv** — 遵循官方 OpenEnv 规范 ✅ **防漏洞强化** — 隐藏真实情况,对盲目重启进行惩罚,削弱回滚操作的效力 ✅ **随机化指标** — 没有任何两个回合是完全相同的(对所有故障值应用高斯抖动) ✅ **密集型奖励函数** — 5 个组成部分的奖励:调查、诊断、修复、安全惩罚、解决奖励 ✅ **生产级真实性** — 真实的故障模式:OOM 终止、连接耗尽、缓存碎片 ✅ **可扩展的难度** — 从简单到专家级别的 12 个独立任务,外加无限随机生成 ✅ **调查优先设计** — 智能体必须调查 ≥2 个服务,才能获得诊断的认可 ## 🏛️ 架构 **带有真实依赖图的 6 服务微服务系统:** ``` ┌─────────────────┐ │ api-gateway │ └────────┬────────┘ │ ┌──────────────┼──────────────┐ │ │ │ ┌─────▼────┐ ┌─────▼────┐ ┌───▼──────┐ │user-svc │ │payment-svc │db-primary│ └─────┬────┘ └─────┬────┘ └───┬──────┘ │ │ │ └──────────────┼──────────────┘ │ ┌──────────────┼──────────────┐ │ │ │ ┌─────▼────────┐ ┌──▼─────┐ ┌───▼──────┐ │ cache-redis │ │db-replica │ (mirrors) └──────────────┘ └──────────┘ └──────────┘ ``` 每个服务模拟: - CPU、内存、错误率、延迟 (P99) - 基于故障类型的特定服务日志 - 指标(缓存命中率、连接池使用情况等) ## 📡 API 端点(共 11 个) | 方法 | 端点 | 目的 | |--------|----------|---------| | GET | `/` | 健康检查 | | GET | `/tasks` | 列出可用的事件任务(12 个场景 + 随机) | | POST | `/reset` | 通过注入事件来初始化回合 | | GET | `/state` | 当前系统状态(隐藏真实情况) | | POST | `/step` | 执行智能体动作(调查、诊断、修复) | | GET | `/grader` | 获取最终回合得分 | | GET | `/leaderboard` | 查看任务排行榜 | | POST | `/baseline` | 端到端运行基线策略 | | GET | `/dashboard.html` | 交互式仪表板 | | GET | `/index.html` | 静态主页 | | GET | `/docs-api` | 机器可读的 API 摘要 | **交互式 API 文档位于:** https://creatorneuron-sre-bench.hf.space/docs (Swagger UI) ## 🚀 开始使用 ### 选项 1:使用在线 Space(最简单) 打开:https://creatorneuron-sre-bench.hf.space/docs (适用于所有端点的交互式 Swagger UI) ### 选项 2:cURL 命令 ``` # 健康检查 curl https://creatorneuron-sre-bench.hf.space/ # 列出任务 curl https://creatorneuron-sre-bench.hf.space/tasks # 启动 incident (easy_restart) curl -X POST https://creatorneuron-sre-bench.hf.space/reset \ -H "Content-Type: application/json" \ -d '{"task_id":"easy_restart"}' # 采取修复操作 curl -X POST https://creatorneuron-sre-bench.hf.space/step \ -H "Content-Type: application/json" \ -d '{"action_type":"remediate","command":"restart","target":"payment-service"}' # 获取你的分数 curl https://creatorneuron-sre-bench.hf.space/grader ``` ### 选项 3:Python 客户端 ``` import requests BASE = "https://creatorneuron-sre-bench.hf.space" # 启动 incident response = requests.post(f"{BASE}/reset", json={"task_id": "easy_restart"}) obs = response.json() print(f"Alert: {obs['alert_message']}") # 获取当前状态 state = requests.get(f"{BASE}/state").json() print(f"Diagnosis hint: {state.get('incident_info')}") # 采取行动 result = requests.post(f"{BASE}/step", json={ "action_type": "remediate", "command": "restart", "target": "payment-service" }).json() print(f"Score: {result['reward']['value']}") # 获取最终成绩 grade = requests.get(f"{BASE}/grader").json() print(f"Final grade: {grade['score']}/1.0") ``` ## 📊 奖励与评分 ### 奖励组成部分(每次动作) - **调查** (+0.05):有用的诊断操作 - **诊断** (+0.25):正确的根本原因识别 - **修复** (+0.50):修复事件 - **时间惩罚** (-0.01 每次动作):SLA 压力 - **解决奖励** (+0.50):完全恢复且无附带损害 ### 预期分数 - **简单任务**:1.0(最佳单步直接修复) - **中等任务**:~0.95(多步依赖链) - **困难任务**:~0.85-0.95(隐藏原因,需深入调查) - **专家任务**:~0.80-0.90(复杂的修复序列) 评委将基于以下几点进行评估: 1. **运行时正确性**(环境是否正常工作?) 2. **接口合规性**(是否遵守 OpenEnv 规范) 3. **任务设计**(真实性与难度扩展) 4. **评分逻辑**(公平评估) ## 🔬 解决方案缓存机制 **为何重要**:可复现性对比自然差异。 - **首个**解决事件的智能体会缓存其最佳路径 - **基线**会重放缓存的解决方案(100% 确定性) - **后续智能体**将对照缓存的最佳方案进行评估(每多出一步扣除 -0.01) - **结果**:差异是“赢得的”(来自调查深度),而不是人为设定的 这确保了在多次运行中进行公平评估,同时允许智能体策略存在自然差异。 ## 📋 包含内容 ``` SREBench/ ├── sre-bench/ # Main environment package │ ├── src/ │ │ ├── server.py # FastAPI server (7 endpoints) │ │ ├── environment.py # OpenEnv controller + solution caching │ │ ├── infrastructure.py # 6-service simulator + fault injection │ │ └── models.py # Pydantic schemas │ ├── graders/ # Task-specific graders │ │ ├── easy.py │ │ ├── medium.py │ │ └── hard.py │ ├── Dockerfile # Docker container spec │ ├── requirements.txt # Python dependencies │ └── README.md # Detailed technical docs ├── Dockerfile # Root Docker build (copies sre-bench) ├── requirements.txt # Root-level deps for Space ├── pyproject.toml # Python project metadata ├── openenv.yaml # OpenEnv config └── README.md # This file ``` ## ✅ 验证与部署 **所有系统均已验证:** - ✅ 全部 11 个 API 端点工作正常 - ✅ 全部 12 个事件任务均已完成并验证(得分 0.80–0.99) - ✅ 9/9 项防漏洞测试通过 - ✅ 已确认随机化指标(无确定性的值) - ✅ Docker 构建成功 - ✅ GRPO 训练脚本已测试(空运行 + GPU 模式) **代码仓库**:整洁、有文档记录、无暴露的敏感信息 **状态**:已强化并准备好迎接总决赛 ## 📚 完整文档 有关架构细节、奖励函数特性、观测/动作空间模式以及高级评分逻辑,请参阅 [sre-bench/README.md](sre-bench/README.md)。 ## 🎓 黑客松提交 **在线环境**:https://huggingface.co/spaces/CreatorNeuron/sre-bench **GitHub 仓库**:https://github.com/MrDunky14/SREBench **总决赛**:2026 年 4 月 25-26 日(班加罗尔)
标签:AIOps, AI智能体, Amazon, API集成, Benchmark, CISA项目, DLL 劫持, Docker, Google, GRPO, Hugging Face, LLM训练, Meta, Microsoft, Nuclei, OpenEnv, SRE, TRL, Unsloth, 事件响应评估, 偏差过滤, 可观测性, 大语言模型, 安全防御评估, 强化学习, 微服务架构, 故障诊断, 无线安全, 生产事件响应, 站点可靠性工程, 系统运维, 请求拦截, 运维自动化, 逆向工具