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, 事故响应, 偏差过滤, 安全运营中心, 安全防御评估, 强化学习, 故障诊断, 机器学习, 根因分析, 环境模拟, 网络安全, 网络映射, 请求拦截, 运维自动化, 逆向工具, 隐私保护