pr1397/AI-Incident-Response-Environment
GitHub: pr1397/AI-Incident-Response-Environment
这是一个模拟真实生产环境的强化学习平台,旨在训练和评估AI代理作为值班SRE,通过解析带噪声的日志与指标诊断并修复复杂的系统故障。
Stars: 0 | Forks: 0
# DebugOps:AI 事件响应环境
## 概述
**DebugOps** 是一个模拟真实生产环境事件响应的强化学习环境。AI 扮演值班站点可靠性工程师(SRE),通过充满噪声的日志和降级的指标诊断系统故障,然后执行正确的多步骤修复序列。
该环境模拟了来自云基础设施和分布式系统的真实 DevOps/SRE 工作流——与玩具环境不同,修复需要按正确*顺序*执行的操作序列,并且智能体必须从日志数据中区分信号与噪声。
基于 [OpenEnv](https://github.com/raun/openenv-course) 框架构建,为 Meta × PyTorch Hackathon 而设计。
## 环境描述
每一步智能体都会收到一个包含以下内容的**观察**(observation):
- **services** — 各服务的健康状况(api、db、cache)
- **logs** — 系统日志行,其中部分是干扰性的噪声
- **metrics** — 延迟(毫秒)、error_rate(0–1)、cpu(%)
- **time_step** — 已经过的步数
智能体必须在回合超时前识别出隐藏的根本原因,并执行正确的多步骤修复序列。系统指标每一步都会恶化,从而产生真实的紧迫感。
### 观察空间
| 字段 | 类型 | 描述 |
|---|---|---|
| `services` | `Dict[str, str]` | 服务健康状态:`healthy` 或 `degraded` |
| `logs` | `List[str]` | 系统日志(可能包含噪声/干扰项) |
| `metrics.latency` | `float` | 当前系统延迟(毫秒) |
| `metrics.error_rate` | `float` | 错误率(0.0–1.0) |
| `metrics.cpu` | `float` | CPU 使用率(%) |
| `time_step` | `int` | 当前回合已过的步数 |
### 动作空间(离散,5 个动作)
| 动作 | 描述 |
|---|---|
| `restart_api` | 重启 API 服务 |
| `restart_db` | 重启数据库服务 |
| `restart_cache` | 重启缓存服务 |
| `scale_up` | 增加计算容量 |
| `noop` | 不采取任何行动 |
### 根本原因与修复序列
| 根本原因 | 修复序列 | 受影响的服务 |
|---|---|---|
| `api_timeout` | `scale_up → restart_api` | api |
| `db_connection_leak` | `restart_db → scale_up` | db |
| `cache_miss_storm` | `restart_cache → scale_up` | cache |
| `memory_leak` | `restart_api → restart_db` | api, db |
动作必须**按顺序**执行 — 错误的步骤会导致指标进一步恶化。
### 奖励函数
```
reward =
+150 full resolution bonus
+ 30 correct intermediate fix step
- 15 wrong action (no progress)
-0.04 × latency (ms) per step
- 25 × error_rate per step
- 2 time penalty per step (escalates after step 10)
```
塑造奖励在整个回合中提供密集的信号,而不仅仅是在终止时。
## 任务
| 任务 | 模块 | 描述 | 最大步数 | 难度 |
|---|---|---|---|---|
| Simple | `tasks.task_simple` | 单服务故障 | 15 | Low |
| Multi-Service | `tasks.task_multi_service` | 两个服务同时降级 | 12 | Medium |
| Critical | `tasks.task_critical` | 内存泄漏,伴随误导性日志 + SLA 惩罚 | 10 | High |
## 设置
```
# 克隆 repo
git clone
cd debugops
# 安装依赖
pip install -r requirements.txt
```
## 运行推理(LLM 智能体)
```
python inference.py
```
预期输出:
```
[START] task=simple env=debugops model=Qwen/Qwen2.5-72B-Instruct
[STEP] step=0 action=scale_up reward=-18.4 done=false error=null
[STEP] step=1 action=restart_api reward=145.3 done=true error=null
[END] success=true steps=2 score=0.881 rewards=-18.4,145.3
```
如果未设置 `HF_TOKEN`,将自动使用启发式后备智能体 — 无需 API 密钥。
## 运行基线智能体
```
python app.py
```
## 评分器
```
python -m grader.grader
```
评分器使用加权公式在 `[0.0, 1.0]` 范围内对每个回合进行评分:
| 组成部分 | 权重 | 描述 |
|---|---|---|
| Resolution | 50% | 事件是否已解决? |
| Efficiency | 30% | 解决速度如何? |
| Quality | 20% | 归一化平均奖励 |
## 提交前验证
```
python scripts/validate_submission.py
# 或
bash scripts/validate-submission.sh
```
## Docker
```
# 构建
docker build -t debugops-env .
# 运行(heuristic agent,无需 key)
docker run debugops-env
# 使用 LLM agent 运行
docker run -e HF_TOKEN=your_token \
-e API_BASE_URL=https://router.huggingface.co/v1 \
-e MODEL_NAME=Qwen/Qwen2.5-72B-Instruct \
debugops-env
```
## 项目结构
```
.
├── inference.py ← Main LLM inference script (required entry point)
├── app.py ← Lightweight local runner (baseline agent)
├── Dockerfile
├── requirements.txt
├── openenv.yaml ← OpenEnv spec
├── README.md
├── env/
│ ├── environment.py ← DebugEnv class (reset/step/state)
│ ├── dynamics.py ← State transition logic
│ ├── reward.py ← Shaped reward function
│ └── incident_generator.py ← Random incident sampling
├── tasks/
│ ├── task_simple.py
│ ├── task_multi_service.py
│ └── task_critical.py
├── agent/
│ └── baseline.py ← Heuristic baseline agent
├── grader/
│ └── grader.py ← Episode evaluator → score in [0, 1]
└── scripts/
├── validate_submission.py
└── validate-submission.sh
```
## 设计决策
**为什么要采用多步骤修复序列?** 单动作修复可以通过关键词匹配轻松解决。要求有序序列迫使智能体对状态转换进行建模,而不仅仅是分类根本原因。
**为什么要使用带噪声的日志?** 真实的生产系统总是会产生不相关的日志行。无法过滤噪声的智能体将是不可靠的。
**为什么要设置随时间递增的惩罚?** 事件 SLA 是真实的约束 — 在 10 步内解决问题的智能体实质上比在 2 步内解决的要差。
**为什么要使用塑造奖励?** 稀疏奖励(仅终止时)众所周知很难从中学习。连续的指标惩罚和部分进度奖励在每一步都提供有用的梯度信号。
## HF 部署
已部署的 HF space:https://huggingface.co/spaces/prashasti12/AI-debugging-agent
标签:Apex, PyTorch, SRE, 云基础设施, 人工智能, 偏差过滤, 决策系统, 凭据扫描, 分布式系统, 响应大小分析, 强化学习, 故障诊断, 日志降噪, 智能运维, 机器学习, 根因分析, 模块化设计, 模拟环境, 生产环境, 用户模式Hook绕过, 监控指标, 系统运维, 自动化修复, 请求拦截, 运维, 逆向工具