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绕过, 监控指标, 系统运维, 自动化修复, 请求拦截, 运维, 逆向工具