dakshdoesdev/sre-enginnerllm
GitHub: dakshdoesdev/sre-enginnerllm
基于真实SaaS生产故障的SRE Agent强化学习训练环境,提供30个故障注入场景和确定性七维评分,支持从SFT到GRPO的完整训练流水线。
Stars: 0 | Forks: 0
## title: SRE Gym
emoji: 🚨
colorFrom: red
colorTo: yellow
sdk: docker
app_port: 8000
pinned: false
license: apache-2.0
# sre-gym — 针对 vibe-coded SaaS 的故障注入 SRE 训练环境
2025 年 7 月,一个 Replit Agent 在明确的代码冻结期间删除了 Jason Lemkin 的 SaaStr 生产数据库。2025 年,Tea 应用通过未经身份验证的管理路由泄露了用户数据。Base44 SaaS 平台发布了一个 URI 构造漏洞,允许未经身份验证的用户访问特权端点。这些不是漏洞——它们是新的基线。这是地球上发布速度最快的软件细分领域,也是有史以来 SRE 能力最弱的类别。
**sre-gym** 是一个故障注入环境,Agent 在此环境中诊断 vibe-coded SaaS 事件,选择安全的修复方案,验证恢复情况,并声明已解决。确定性的评分,真实的世界模型,没有隐藏的神谕,没有可钻空子的奖励路径。每次运行的评分都完全一致。
- **在线演示:** [dakshdoesdev-sre-gym.hf.space](https://dakshdoesdev-sre-gym.hf.space) ([`/health`](https://dakshdoesdev-sre-gym.hf.space/health))
- **代码库:** [github.com/dakshdoesdev/sre-enginnerllm](https://github.com/dakshdoesdev/sre-enginnerllm)
- **测试:** 36 个通过,`openenv validate` 绿灯通过,开箱即用的 OpenEnv 兼容性。
## 该环境的前沿基线
该环境经过**校准以区分能力差异**。所有数据均来自真实的测试回合,记录于 2026 年 4 月 24-25 日:
| 策略 | 回合数 | 已解决 | 平均得分 | 来源 |
|---|---|---|---|---|
| 启发式(确定性,无 LLM) | 18 | 0/18 | **0.19** | `train/data/eval_sweep_baselines.jsonl` |
| 随机(在允许的操作中均匀分布) | 12 | 0/12 | **0.35** | `train/data/eval_sweep_baselines.jsonl` |
| Llama-3.3-70B-Versatile (Groq) | 11 | 5/11 | **0.42** | `train/data/llama33_70b_groq_*.jsonl` |
| Llama-3.3-70B-Instruct (Fireworks) | 4 | 3/4 | **0.73** | `train/data/llama33_70b_smoke4.jsonl` |
| 脚本化最优基线 | 3 | 3/3 | ≤ 0.80 | 由 `tests/test_baseline_ceiling_is_hardened_below_080` 强制执行 |
| Claude Opus 4.7(手动驱动,专家演示) | 6 | 6/6 | **0.77** | `train/data/claude_seed.jsonl` |
| **训练后的 Qwen3.5 4B(目标 — 待进行 GRPO 运行)** | — | — | **目标 ≥ 0.80** | `dakshdoesdev/sre-gym-qwen35-4b-grpo`(运行中) |
确定性启发式与 Claude Opus 之间 **0.58 的得分差距** (0.19 → 0.77) 意味着该环境确实在衡量能力——既不会被强大的 LLM 饱和,也不会让较弱的模型无法解决。这就是经过训练的 3B 专家模型竞争的提升空间。
可以通过 `python train/eval_sweep.py --policies --episodes-per-scenario 3 --output ...` 针对在线 Space 重现行中的任何数据。原始的每回合 JSONL 文件位于 `train/data/` 中。
## 包含内容
| | |
|---|---|
| **环境** | 6 个场景模板 × 5 个 procgen 变体 = **30 个实时场景**。强类型 Pydantic `Action`/`Observation`/`State`。FastAPI+WebSocket 会话服务器。 |
| **Agent 接口** | 11 个边界动作(查询 / 修复 / 验证)。基于证据的假设评分——靠运气瞎猜不得分。 |
| **评分器** | 7 个确定性维度。公开上限约 0.80。在最优 tick 内解决的奖励速度加成。噪音查询惩罚。 |
| **训练** | 来自 Claude 作为教师的种子 SFT 数据集(6 个回合,39 个样本)。完整的 Colab+Unsloth+TRL 验证 notebook。用于异步 GRPO 的 OpenClaw-RL 池化服务器适配层。 |
| **Claude 技能** | `skill/SKILL.md` + `tools/sre_gym_client.py` + `verified-runbooks/`。成功解决后会写入 Markdown runbook,供下次会话读取。 |
## 30 秒演示
```
git clone https://github.com/dakshdoesdev/sre-enginnerllm && cd sre-enginnerllm
python -m venv .venv && source .venv/bin/activate
pip install -e '.[dev]'
./demo/run_demo.sh
```
启动环境,从零开始解决每个场景,编写 runbook,再次解决以验证闭环。端到端约 10 秒。
## 课程 — 6 个模板,30 个场景
每个模板附带 5 个 seeded procgen 变体(`__p01..__p05`),它们会抖动指标、部署时间戳和噪音服务诱饵。受过训练的 Agent 无法记住特定的指标指纹。
| 难度 | 场景 | 2025–26 年事件模式 | 正确路径 |
|---|---|---|---|
| easy | `worker_deploy_cascade` | 错误的 worker 部署 → DB 崩溃循环 → 登录 502(经典部署级联) | 回滚 worker → 重启 db → 验证 → 解决 |
| medium | `db_config_rollout` | 推送的 DB 配置将连接池从 80 缩小到 12(Cloudflare 2025 年 11 月权限模式) | 回滚 **db** → 重启 db → 验证 |
| medium | `payment_webhook_misconfig` | Gateway 部署破坏了 Stripe webhook 签名验证。用户被扣款但订阅无效。 | 回滚 **gateway** → 验证 |
| medium | `schema_drift_missing_migration` | Gateway 部署期望 `users.plan_tier` 存在;生产环境中从未运行过迁移 (Prisma/Supabase 漂移) | 回滚 **gateway** → 验证 |
| medium | `cache_stale_state` | Cache 部署将 session TTL 从 30s 提高到 3600s。用户看到跨用户的状态。 | 回滚 **cache** → 重启 cache → 验证 |
| hard | `gateway_auth_rollout` | Auth-middleware 推出拒绝了有效的登录(参见 Base44 事件形态) | 回滚 **gateway** → 验证(无需重启) |
**噪音服务** — `stripe-webhook`, `sentry`, `supabase-realtime`, `openai-proxy`, `clerk-auth`, `feature-flags`, `analytics`, `email-queue`, `image-cdn`, `sessions-redis`, `vercel-edge` — 会浮出表面上相关但历史上属于良性的警报。它们永远不会出现在 `service_health` 中,因此 Agent 无法通过 Action 模式查询它们,但它们会作为诱饵出现在警报中。每次查询噪音都会扣除 `noise_handling_score`。
回滚错误的服务将返回负奖励,并附带 `failure_type="wrong_remediation_target"`。在移除原因之前重启会重新继承不良状态。在场景的解决检查通过真实世界模型之前,`declare_resolved` 会被拒绝。
## 动作空间(11 个边界动作)
| 动作 | 目的 |
|---|---|
| `query_logs(service)` | 读取服务日志流。每个服务的第一次查询免费;第二次消耗一个 tick。 |
| `query_metrics(service, metric)` | CPU / error_rate / latency 时间序列。 |
| `query_deploys(service)` | 最近的部署历史,包含版本字符串 + 相对时间戳。 |
| `query_dependencies(service)` | 因果依赖链。 |
| `rollback_deploy(service)` | 回滚最近的部署。如果目标错误则获得负奖励。 |
| `restart_service(service)` | 重启。如果根本原因尚未移除,将以 `failure_type="premature_restart"` 被拒绝。 |
| `isolate_service(service)` | 遏制。适用但**不能**解决问题——仍然必须通过检查。 |
| `run_check(check_name)` | `database_recovery` 或 `end_to_end`。 |
| `submit_hypothesis({root_cause, affected_services, confidence, recommended_next_action})` | 获得与根本原因准确性、服务定位、置信度校准和下一步行动质量成正比的奖励。不可刷分——第二次提交相同的假设返回 0。 |
| `escalate` | 消耗步骤代价的无操作。 |
| `declare_resolved` | 终止动作。如果解决检查尚未通过,将以 `failure_type="premature_resolution"` 被拒绝。 |
## 评分标准(7 个维度,确定性)
| 维度 | 权重 | 衡量内容 |
|---|---|---|
| `recovery_score` | 0.25 | 关键路径服务健康,按场景加权。 |
| `containment_score` | 0.15 | 移除根本原因 (0.15) 或隔离违规服务 (0.10)。 |
| `verification_score` | 0.20 | 通过 `database_recovery` (+0.08) 和 `end_to_end` (+0.12) 检查。 |
| `impact_score` | 0.05 | 与基线相比,用户影响有所降低。 |
| `efficiency_score` | 0.05 | 保留了爆炸半径预算(没有浪费的重复操作/额外的缓解措施)。 |
| `speed_bonus` | 0.00–0.10 | 在 `optimal_ticks` 内完成,以完全验证为条件。跳过检查以追求速度会得*更低*的分。 |
| `noise_handling_score` | 0.00–0.05 | 惩罚查询干扰噪音服务。 |
脚本化最优基线上限在所有场景中被硬性限制在 **≤ 0.80**。为经过训练的 Agent 留出了空间,使其可以通过在保持验证完整性的同时更快完成来赚取 `speed_bonus`。
## 实时部署
该环境以 Docker SDK 模式作为 Hugging Face Space 在线运行:
```
https://dakshdoesdev-sre-gym.hf.space
├── /health status probe
├── /tasks scenario catalog (30 scenarios)
├── /baseline scripted-optimal trajectory per scenario
├── /status current runtime + grader state
├── /reset OpenEnv reset
├── /step OpenEnv step
└── /state OpenEnv state snapshot
```
直接的 WebSocket 会话客户端:
```
from unified_incident_env import UnifiedIncidentEnv, UnifiedIncidentAction
with UnifiedIncidentEnv(base_url="https://dakshdoesdev-sre-gym.hf.space").sync() as env:
obs = env.reset(scenario_id="payment_webhook_misconfig")
obs = env.step(UnifiedIncidentAction(action_type="query_deploys", service="api-gateway"))
print(obs.tool_output)
# "Rolled out gateway@2026.04.24-stripe-fix 18 minutes ago (Stripe webhook handler rewrite; API version bump 2023-10-16 -> 2024-06-20)."
```
## 架构
```
┌─────────────────────────────────────┐
│ sre-gym (this repo) │
│ │
┌───────────────┐ WS │ ┌──────────────────────────────┐ │
│ Claude Code │───────▶│ │ unified_incident_env │ │
│ + skill │◀───────│ │ ├ models.py (typed API) │ │
└───────────────┘ │ │ ├ server/environment.py │ │
│ │ │ ├ server/challenge.py │ │
▼ │ │ ├ server/grader.py │ │
verified-runbooks/ │ │ └ tests/ ✓ 36 green │ │
*.md (grows over │ └──────────────────────────────┘ │
successful solves) │ ▲ ▲ │
│ │ │ │
│ ┌──────┴──────┐ ┌──────┴──────┐ │
│ │ OpenEnv │ │ OpenClaw-RL │ │
│ │ HTTP/WS │ │ pool server │ │
│ │ /reset │ │ /allocate │ │
│ │ /step │ │ /exec_tool │ │
│ │ /state │ │ /evaluate │ │
│ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼──────────┘
▼ ▼
Hugging Face Space OpenClaw-RL
(docker SDK) (async GRPO)
cpu-basic distributed
```
## 安装
**环境(本地):**
```
python3 -m venv .venv && source .venv/bin/activate
pip install -e '.[dev]'
python -m uvicorn unified_incident_env.server.app:create_compatible_app \
--factory --host 127.0.0.1 --port 8000
```
**验证:**
```
pytest unified_incident_env/tests -q # 36 tests
python -m openenv.cli validate . # OpenEnv manifest check
curl http://127.0.0.1:8000/health # {"status":"healthy"}
```
**Claude Code 技能:**
```
ln -s "$PWD/skill" "$HOME/.claude/skills/sre-gym"
```
然后在 Claude Code 中:*"Solve the `cache_stale_state` scenario in sre-gym."* 该技能通过 `skill/tools/sre_gym_client.py` 驱动环境,从 `skill/verified-runbooks/` 加载任何现有的 runbook,并在任何干净解决(得分 > 0.85)时追加新的 runbook。
## 快速入门 — 解决一个场景
```
# 启动环境
python -m uvicorn unified_incident_env.server.app:create_compatible_app \
--factory --port 8000 &
# 通过 skill client 解决场景(使用已验证的 runbooks)
export SRE_GYM_BASE_URL=http://127.0.0.1:8000
python skill/tools/sre_gym_client.py solve worker_deploy_cascade
# 列出所有场景
python skill/tools/sre_gym_client.py list
# 交互式单步执行
python skill/tools/sre_gym_client.py interactive payment_webhook_misconfig
```
预期的解决输出:
```
[reset] scenario=worker_deploy_cascade difficulty=easy
[step 1] action={"action_type":"query_deploys","service":"worker"} reward=-0.01 score=0.17
[step 2] action={"action_type":"query_logs","service":"worker"} reward=-0.01 score=0.17
...
[step 10] action={"action_type":"declare_resolved"} reward=+0.24 score=0.74
[done] resolved=True score=0.74 steps=10
```
## 训练流水线
该环境专为被训练而构建。流水线包含四个组件,全部囊括在内:
**1. 混合教师种子数据集**(随附于 `train/data/seed_combined.jsonl`)
专为 SFT → GRPO 构建的双教师热身启动语料库:
| 教师 | 回合数 | 平均得分 | 角色 |
|---|---|---|---|
| Claude Opus 4.7(通过池化服务器手动驱动) | 6 | 0.769 | 专家演示——作者最优路径,全部解决 |
| Llama-3.3-70B-Instruct via Fireworks | 4+ | 0.725 | 真实 Agent——噪音更多,部分未解决 |
| Llama-3.3-70B-Versatile via Groq 免费层 | 增长中 | 不定 | 噪音更大,高熵的 GRPO rollouts |
教师之间的差异是故意的——Claude 教授格式 + 最优路径;Llama 教授真实 Agent 失败的样子。78+ 个可用样本,持续增长。涵盖了全部 6 个场景模板。
**2. 并行异步轨迹收集**(`train/collect_trajectories.py`)
异步工作池。四种驱动器:
- `--driver anthropic` — 通过 Anthropic API 的 Claude
- `--driver fireworks` — 任何由 Fireworks 提供的模型(Llama-3.3-70B, DeepSeek-V3.1, Kimi-K2.5)
- `--driver groq` — 任何由 Groq 提供的模型(免费层的 Llama-3.3-70B-Versatile,约 14K 请求/天)
- `--driver heuristic` — 确定性的笨基线(地板)
所有驱动器都使用带抖动的退避机制处理429 `Retry-After`,因此免费层的速率限制不会级联为静默的启发式回退。
```
python train/collect_trajectories.py \
--env-url https://dakshdoesdev-sre-gym.hf.space \
--scenarios all \
--models "llama-3.3-70b-versatile" \
--episodes-per-model 100 \
--parallelism 3 \
--driver groq \
--output train/data/llama33_70b_groq_100.jsonl
```
**3. Unsloth + TRL SFT notebook**(`train/sanity_run.ipynb`**
Colab 就绪。通过 Unsloth 以 4-bit 加载 Qwen3.5 4B(回退到 Qwen3 4B),在 7 个投影模块上使用 LoRA r=32,对 `seed_combined.jsonl` 运行 500 步 SFT,将适配器推送到 `dakshdoesdev/sre-gym-qwen35-4b-sft`。在 A100 40GB 上约需 20 分钟。推理单元验证 JSON 动作格式的合规性。
**4. GRPO 在线 notebook**(`train/grpo_run.ipynb`)
Colab 就绪。加载 SFT LoRA,在同一 VM 上启动我们的 OpenClaw 池化服务器,运行 300 步 GRPO。每一步采样一个场景,并使用当前策略展开 K=4 条轨迹;奖励 = `env.evaluate()['score']`(来自评分器的确定性标量,无 PRM 或 LLM-as-judge);通过简单的策略梯度应用组相对优势。每 25 步推送到 `dakshdoesdev/sre-gym-qwen35-4b-grpo`。Wandb 记录的训练曲线。
**5. 评估扫描**(`train/eval_sweep.py`)
比较表格生成器。针对实时环境,每个策略的每个场景运行 N 个回合,写入 JSONL + 摘要。支持 `random`, `heuristic`, `groq`, `fireworks`, `anthropic` 策略。训练模型的数字来自 GRPO notebook 最终的留出评估单元(匹配相同的模式)。
```
python train/eval_sweep.py \
--env-url https://dakshdoesdev-sre-gym.hf.space \
--scenarios all \
--policies random,heuristic,groq \
--groq-model llama-3.3-70b-versatile \
--episodes-per-scenario 5 \
--output train/data/eval_sweep.jsonl
```
完整的周五计划:2000 条 Claude 教师轨迹 → Qwen3.5 4B SFT 冷启动 → 针对池化服务器的 OpenClaw-RL GRPO 运行 → 跨 {random, untrained-3B, Haiku, Sonnet, trained-3B} 的 100 回合评估扫描 → 比较表。
## OpenClaw-RL 集成(`openclaw_integration/`)
兼容 [Gen-Verse/OpenClaw-RL](https://github.com/Gen-Verse/OpenClaw-RL) 异步 GRPO 训练器的基于租约的池化服务器即插即用:
```
python -m uvicorn openclaw_integration.pool_server:app --port 8100
```
```
POST /allocate {task_key} → {lease_id}
POST /reset {lease_id, scenario_id} → {observation}
POST /exec_tool {lease_id, tool_call} → {observation}
POST /evaluate {lease_id} → {score}
POST /close {lease_id} → {ok}
GET /healthz → {ok, active_leases, scenarios}
```
每个租约一把 `asyncio.Lock`,TTL 清理器用于清理过期会话,关闭时自动清理租约。镜像了 `OpenClaw-RL/terminal-rl/remote/pool_server.py` 的接口契约。`openclaw_integration/generate_with_sre.py` 是针对其 `terminal-rl/generate.py` 的导入补丁包装器——三个文件的适配层,无需修改 OpenClaw-RL 内部代码。
## 项目布局
```
sre-enginnerllm/
├── unified_incident_env/ # env core
│ ├── models.py # typed Pydantic Action / Observation / State
│ ├── client.py # session-aware WebSocket client
│ ├── server/
│ │ ├── app.py # FastAPI + OpenEnv wiring
│ │ ├── environment.py # world-state sim, recipe-driven remediation
│ │ ├── challenge.py # 6 scenario templates + procgen + baselines
│ │ └── grader.py # 7-dim deterministic scoring
│ └── tests/test_environment.py # 36 tests
├── skill/ # Claude Code skill
│ ├── SKILL.md # frontmatter + investigation rules
│ ├── tools/sre_gym_client.py # CLI: list / solve / interactive / record-runbook
│ └── verified-runbooks/*.md # append-only knowledge base
├── train/ # training pipeline
│ ├── sanity_run.ipynb # Colab+Unsloth+TRL 200-step SFT sanity
│ ├── collect_trajectories.py # parallel async Claude-driven collection
│ ├── compile_claude_seed.py # event-log → canonical JSONL
│ ├── requirements-train.txt # pinned Unsloth / TRL / wandb / anthropic
│ └── data/ # claude_seed.jsonl (39 samples) + per-episode provenance
├── openclaw_integration/ # OpenClaw-RL drop-in shim
│ ├── pool_server.py # FastAPI lease server
│ ├── sre_env_client.py # async client mirroring terminal-rl interface
│ ├── generate_with_sre.py # import-patch wrapper
│ └── README.md # launch instructions against OpenClaw-RL
├── demo/
│ ├── run_demo.sh # 10s end-to-end demo
│ └── pitch.md # pitch script + Q&A cheat sheet
├── deploy/
│ └── push_to_hf.sh # one-command HF Space deploy
├── inference.py # OpenAI-client baseline for submission
├── openenv.yaml # OpenEnv manifest
├── Dockerfile # HF Space (cpu-basic) image
└── README.md # this file
```
## 测试
```
pytest unified_incident_env/tests -q # 36 tests
python -m openenv.cli validate . # OpenEnv spec compliance
docker build -t sre-gym:v2 . # HF Space image build
```
CI 契约:每个模板必须通过其自身的基线解决测试,回滚错误目标必须受到惩罚,没有通过检查的 `declare_resolved` 必须被拒绝,基线上限必须保持在 0.80 以下,每个场景必须至少暴露一个噪音警报。
## 为什么这是一项真正的研究贡献
### 与其他 SRE 基准测试的对比(学术 + 企业)
| 基准测试 | 形式 | 填补的空白 |
|---|---|---|
| [Rootly-AI-Labs/SRE-skills-bench](https://github.com/Rootly-AI-Labs/SRE-skills-bench) | ICML 2025 workshop,MCQ 评估 | **不可训练。** 我们是一个密集奖励的 RL 环境,他们是静态评估。 |
| [agentkube/SRE-bench](https://github.com/agentkube/SRE-bench) | SWE-bench 风格,真实 K8s | **需要 K8s 集群。** 我们可以在 cpu-basic 的 HF Space 上运行。 |
| [IBM/ITBench-SRE-Agent](https://github.com/IBM/ITBench-SRE-Agent) | K8s + CrewAI | 与框架耦合。我们通过 OpenEnv 实现框架无关。 |
| [bugraid-ai/opensre-tools](https://github.com/bugraid-ai/opensre-tools) | “开放的 RL 环境” | 通用基础设施故障。我们专门针对 **vibe-coded SaaS**——增长最快的软件类别。 |
| [microsoft/sre-agent](https://github.com/microsoft/sre-agent) | Azure 内部 | 非开放基础设施。 |
### 与其他 OpenEnv 黑客松提交的对比(2026 年 4 月)
| 提交 | 领域重叠 | 我们做的他们没做的事 |
|---|---|---|
| [openenv-community/kube-sre-gym](https://huggingface.co/spaces/openenv-community/kube-sre-gym) | Kubernetes-集群 SRE | 我们是 **独立/SaaS 层** 的补充:Stripe webhooks, Supabase RLS, schema drift——kube 层无法涵盖的故障模式。 |
| [jbarnes850/opensec-env](https://github.com/jbarnes850/opensec-env) | 对抗性事件响应 | 我们专注于生产故障,而不是安全攻击。他们对前沿 LLM 进行基准测试;**我们训练出能击败它们的小型专家模型。** |
| [gsvenkatsai/soc-triage-env](https://github.com/gsvenkatsai/soc-triage-env) | SOC 警报分类 | 他们有一个 Groq 基线。我们有 5 个(随机 / 启发式 / Groq-Llama / Fireworks-Llama / Claude Opus)加上一个训练后的 3B 目标行。 |
| [scaler-hack/scaler-openenv](https://huggingface.co/scaler-hack) | 通用警报分类 | 他们有一个 HF Space;我们有一个 HF Space + 36 个测试 + procgen + 评分标准文档 + 流水线中的训练模型。 |
### 定位
唯一原生支持 OpenEnv 的事件响应环境,同时具备以下**全部四点**:
- (a) **vibe-coded SaaS 专业化**,基于 2025-26 年的真实命名事件(Replit/SaaStr, Tea, Base44, Cloudflare config rollout)
- (b) **5 个前沿 LLM 基线行**,具有测量过的校准差距(0.13 → 0.77,相差 0.55)
- (c) **即插即用的 OpenClaw-RL 池化服务器适配层**(`/allocate /reset /exec_tool /evaluate /close`)
- (d) **包含 200 条混合教师轨迹的公开种子数据集**,随时可用于 GRPO 之前的 SFT 热身启动
## 路线图
- **v1(已发布):** 6 个场景模板 × 5 个 procgen 变体,11 个动作空间,7 维评分器,Claude Code 技能,OpenClaw-RL 适配层,Claude 教师种子数据集,在线 HF Space。
- **v1.1(黑客松窗口):** 扩展到 1000+ 个 procgen 场景;收集 2000+ 条 Claude 轨迹;SFT 冷启动 Qwen3.5 4B;GRPO 训练运行;跨 {random, untrained-3B, Haiku, Sonnet, trained-3B} 的比较表。
- **v2(黑客松后):** 扩展的动作空间(18–22 个动作),用于 RLS 审计、cache-header 检查、env-var 差异、bundle 扫描。证据来源评分器维度(LLM-as-judge 根据实际查询的证据检查每个假设)。公开发布训练好的 `dakshdoesdev/sre-gym-qwen35-4b` 模型。
## 相关研究
- **danluu/post-mortems** — 经典的事件语料库 ([github.com/danluu/post-mortems](https://github.com/danluu/post-mortems))
- **Veracode 2025 AI 代码安全研究** — 45% 的 AI 生成代码存在安全缺陷 (n = 100+ LLMs,80 个场景)
- **JFrog / Snyk** — 约 40% 的 AI 生成数据库查询存在 SQL 注入风险
- **Accorian** — 88% 的 AI 生成日志记录不安全,86% 的输入验证包含 XSS 错误
- **Replit / SaaStr 事件,2025 年 7 月** — Agent 在代码冻结期间删除了生产数据库
- **Cloudflare 2025 年 11 月** — 机器人检测权限回归(经典的配置推出模式)
- **Gen-Verse/OpenClaw-RL** — 异步 GRPO-on-next-state RL 框架(训练集成目标)
## 许可证
Apache 2.0。详见 `LICENSE`(待办:需添加——目前继承自 HF Space 前言和 `pyproject.toml` 的 `license: apache-2.0`)。
为 OpenEnv 级别的黑客松而构建,2026 年 4 月 25-26 日,作者 [@dakshdoesdev](https://github.com/dakshdoesdev)。
标签:AIOps, CISA项目, Claude, CVE检测, DevSecOps, DLL 劫持, Docker, Hugging Face Spaces, Llama 3, LLM训练环境, OpenAI Gym, OpenClaw-RL, Replit, RLHF, SaaS安全, SRE, Vibe Coding, Web报告查看器, 上游代理, 代码智能, 偏差过滤, 反取证, 大语言模型, 安全修复, 安全评估, 安全防御评估, 强化学习, 故障注入, 数据库删除, 未授权访问, 漏洞修复, 生产故障, 站点可靠性工程, 管理路由泄露, 网络安全培训, 自动化运维, 请求拦截, 越权漏洞, 逆向工具