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报告查看器, 上游代理, 代码智能, 偏差过滤, 反取证, 大语言模型, 安全修复, 安全评估, 安全防御评估, 强化学习, 故障注入, 数据库删除, 未授权访问, 漏洞修复, 生产故障, 站点可靠性工程, 管理路由泄露, 网络安全培训, 自动化运维, 请求拦截, 越权漏洞, 逆向工具