Jayantx07/soc-incident-response

GitHub: Jayantx07/soc-incident-response

一个基于强化学习的SRE事件响应模拟环境,用于训练AI智能体通过查询日志和指标来诊断微服务故障并提交根因分析。

Stars: 0 | Forks: 0

## title: SOC 事件响应 emoji: 🚨 colorFrom: red colorTo: yellow sdk: docker pinned: false # SOC 事件响应 — OpenEnv RL 环境 ## 概述 该环境模拟了真实的 SRE(站点可靠性工程师)事件响应工作流。AI 代理接收有关微服务中断的生产告警,通过查询日志和指标进行调查,并必须确定根本原因服务以解决事件。这代表了工程组织中人类日常执行的任务——在时间压力下诊断级联故障。 ## 动作空间 代理每一步可以执行三个命令: | Command | Parameters | Description | |---|---|---| | `query_logs` | `service_name: str` | 检索特定服务的错误日志 | | `query_metrics` | `service_name: str` | 检索服务的 CPU/内存/延迟指标 | | `submit_rca` | `root_cause_service: str` | 提交根本原因分析 — 结束回合 | ## 观察空间 每个观察都是一个 `SREObservation`,包含: - `terminal_output: str` — 告警文本、日志输出或 RCA 结果消息 - `error: str | null` — 任何服务端错误,或 null ## 任务 ### 任务 1 — 简单:前端 UI Bug - **场景**:FrontendService 在一次错误的部署后出现了 94% 的错误率。BackendService 运行正常。 - **预期步骤**:1–2(查询 FrontendService 日志 → 提交 RCA) - **奖励**:每次正确的日志查询 +0.05,RCA 正确 +1.0 - **真实根本原因**:`FrontendService` ### 任务 2 — 中等:结账超时 - **场景**:CheckoutService 超时由 PaymentGateway 连接池耗尽引起。 - **预期步骤**:2–4(查询多个服务 → 追踪级联 → 提交 RCA) - **奖励**:每次正确的日志/指标查询 +0.05,RCA 正确 +1.0 - **真实根本原因**:`PaymentGateway` ### 任务 3 — 困难:级联数据库故障 - **场景**:整个平台瘫痪。所有服务均失败。DatabaseService 被 OS OOM 终止。 - **预期步骤**:4–7(调查所有服务 → 识别 DB 为共享依赖 → 提交 RCA) - **奖励**:每次正确查询 +0.05,第 5 步后每步惩罚 -0.02,RCA 正确 +1.0 - **真实根本原因**:`DatabaseService` ## 奖励函数 - 每次有效的 `query_logs` 或 `query_metrics` 调用 `+0.05`(进度奖励) - 每次查询不存在的服务 `-0.05`(对错误猜测的惩罚) - 第 5 步之后每步 `-0.02`(防止无限循环) - 正确的 `submit_rca` `+1.0`(二元终端奖励) - 错误的 `submit_rca` `0.0` ## 设置与使用 ### 使用 Docker 运行 ``` docker build -t soc-incident-response . docker run -p 7860:7860 soc-incident-response ``` ### 测试环境 ``` # Health check curl http://localhost:7860/health # Reset to task 1 curl -X POST http://localhost:7860/reset \ -H "Content-Type: application/json" \ -d '{"task_id": "task_1"}' # Query logs curl -X POST http://localhost:7860/step \ -H "Content-Type: application/json" \ -d '{"command": "query_logs", "service_name": "FrontendService"}' # Submit RCA curl -X POST http://localhost:7860/step \ -H "Content-Type: application/json" \ -d '{"command": "submit_rca", "root_cause_service": "FrontendService"}' ``` ### 运行推理脚本 ``` export HF_TOKEN=your_huggingface_token export API_BASE_URL=https://api-inference.huggingface.co/v1 export MODEL_NAME=Qwen/Qwen2.5-72B-Instruct export ENV_URL=http://localhost:7860 python inference.py ``` ## 基线性能 使用 `gpt-4o-mini` 针对 `inference.py` 运行本地环境所获得的分数: | Task | Success | Steps | Rewards | |---|---|---|---| | task_1 | true | 2 | 0.05,1.00 | | task_2 | true | 3 | 0.05,0.05,1.00 | | task_3 | true | 5 | 0.05,0.05,0.05,0.05,1.00 | *在提交之前运行您自己的基线测试后更新此表。* ## 硬件要求 该环境仅使用内存中的 Python 字典(无数据库,无 ML 模型)。 内存使用量低于 200MB。完全符合 2 vCPU / 8 GB RAM 的限制。
标签:Apex, Docker, RCA, Site Reliability Engineering, SRE, 事故响应, 偏差过滤, 安全运营中心, 安全防御评估, 强化学习, 故障诊断, 机器学习, 根因分析, 环境模拟, 网络安全, 网络映射, 请求拦截, 运维自动化, 逆向工具, 隐私保护