Saransh2412/incident-response-rl

GitHub: Saransh2412/incident-response-rl

基于OpenEnv框架的强化学习环境,模拟生产系统事件响应工作流,用于训练和评测AI Agent的故障诊断与修复决策能力。

Stars: 0 | Forks: 0

title: Incident Response RL Environment emoji: 🚨 colorFrom: red colorTo: blue sdk: docker pinned: false app_port: 7860 base_path: /web tags: - openenv # 事件响应 RL 环境 该环境模拟真实的生产事件响应工作流。Agent 检查日志、指标和告警,诊断故障原因,采取纠正措施,并尝试恢复服务健康,同时避免情况恶化。 ## 动机 事件响应是一项真实的运维任务,包含噪声信号、部分进展、延迟效应以及错误决策带来的严重惩罚。该环境旨在评估 Agent 在人类实际生产系统中执行的故障排查工作的可靠性。 ## 动作空间 动作模型为 `IncidentAction`: - `analyze_logs` - `restart_service` - `rollback_deployment` - `scale_up` - `ignore` - `escalate` 可选的 `target` 用于服务级动作,在内置任务中默认为 `api`。 ## 观察空间 观察模型为 `IncidentObservation`: - `logs: list[str]` - `metrics: dict[str, float]` - `alerts: list[str]` - `system_status: healthy | degraded | critical` - `step_count: int` - OpenEnv 字段: - `done` - `reward` - `metadata` 观察元数据包括: - `scenario_id` - `difficulty` - `incident_family` - `task_score` - `terminal_grade` - 每步 `info` ## 任务 内置任务具有确定性,评分范围为 `0.0` 到 `1.0`: - `high_latency_easy` - 目标:检测容量饱和并扩容 API 服务。 - 预期路径:`scale_up` - `service_crash_medium` - 目标:在存在误导性信号的情况下恢复崩溃循环的 API。 - 预期路径:`restart_service` - `bad_deployment_hard` - 目标:解决具有级联症状和延迟恢复效果的错误部署。 - 预期路径:先 `rollback_deployment`,然后 `restart_service` ## 奖励与评分 轨迹期间使用稠密奖励塑造: - `+0.2` 诊断改善 - `+0.3` 正确的补救措施 - `+0.3` 可衡量的系统改善 - `+0.5` 完全解决事件 - `-0.2` 错误或有害的操作 - `-0.1` 重复无效的操作 - `-0.3` 升级失败 确定性任务评分器独立于稠密奖励: - `1.0` 完全恢复 - `0.5` 部分恢复 - `0.0` 失败 每步的部分任务进度通过 `metadata.task_score` 暴露。 ## 设置 ``` python -m venv .venv . .venv/Scripts/activate pip install -e .[dev,platform] ``` 基线运行器所需的环境变量: ``` HF_TOKEN=... API_BASE_URL=https://router.huggingface.co/v1 MODEL_NAME=openai/gpt-oss-20b ENV_BASE_URL=http://127.0.0.1:7860 ``` 提交基线使用指向 `API_BASE_URL` 并通过 `HF_TOKEN` 进行认证的 OpenAI Python 客户端。 ## 本地使用 运行测试: ``` python -m pytest ``` 运行 OpenEnv 服务器: ``` python -m uvicorn server.app:app --host 0.0.0.0 --port 7860 ``` 验证环境: ``` openenv validate . ``` 或在 Windows 上使用辅助脚本: ``` .\run.ps1 -Mode test .\run.ps1 -Mode api .\run.ps1 -Mode validate ``` 对于本地基线运行,将 `ENV_BASE_URL` 指向本地服务器: ``` $env:HF_TOKEN="your_token" $env:ENV_BASE_URL="http://127.0.0.1:7860" .\.venv\Scripts\python inference.py ``` ## 基线推理 提交推理脚本为根目录下的 [`inference.py`](/D:/RL/inference.py)。它使用 OpenAI Python 客户端,配置如下: - `base_url=API_BASE_URL` - `api_key=HF_TOKEN` - `model=MODEL_NAME` 官方黑客松运行路径通过 Hugging Face 路由器加上部署好的 OpenEnv 环境。 对于部署好的 Hugging Face Space 运行: ``` $env:HF_TOKEN="your_token" $env:ENV_BASE_URL="https://saransh24-incident-response-rl.hf.space" .\.venv\Scripts\python inference.py ``` 等效的 Shell 形式: ``` export HF_TOKEN=your_token export ENV_BASE_URL=https://saransh24-incident-response-rl.hf.space python inference.py ``` 这会针对目标环境评估所有 3 个任务,并将可复现的报告写入 `artifacts/baseline_scores.json`。 脚本按以下顺序输出结构化的 stdout 日志: - `[START]` 一次,包含 `task`、`env`、`model` - `[STEP]` 每个环境步骤一次,包含 `step`、`action`、`reward`、`done`、`error` - `action` 以纯文本动作字符串形式输出,例如 `scale_up api` - `[END]` 一次,包含 `success`、`steps`、`score`、`rewards` ## 最新记录的基线分数 提交的 `artifacts/baseline_scores.json` 工件目前记录了 `openai/gpt-oss-20b` 在实时 HF 路由器上的运行结果: - `average_score`: `1.0` - `high_latency_easy`: 得分 `1.0`,最终评级 `1.0`,步数 `1`,总奖励 `1.3`,成功动作 `["scale_up"]` - `service_crash_medium`: 得分 `1.0`,最终评级 `1.0`,步数 `1`,总奖励 `1.3`,成功动作 `["restart_service"]` - `bad_deployment_hard`: 得分 `1.0`,最终评级 `1.0`,步数 `2`,总奖励 `2.1`,成功动作 `["rollback_deployment", "restart_service"]` 基线报告包括: - `model_name` - `router_base_url` - `average_score` - 每个任务的 `scenario_id`、`difficulty`、`score`、`terminal_grade`、`steps_taken`、`total_reward`、`successful_actions` 在最终提交之前,更改模型或 prompt 策略后,请重新运行 `python inference.py` 以更新这些数值。 ## Docker 构建: ``` docker build -t incident-response-rl:latest . ``` 运行: ``` docker run --rm -p 7860:7860 incident-response-rl:latest ``` 然后验证正在运行的服务: ``` openenv validate --url http://127.0.0.1:7860 ``` ## Hugging Face Spaces 部署 首先登录: ``` huggingface-cli login ``` 然后推送环境: ``` openenv push ``` 该 Space 应为 Docker Space 并包含 `openenv` 标签。部署后,使用以下命令验证实时服务: ``` openenv validate --url https://.hf.space ```
标签:AIOps, Docker, OpenEnv, Petitpotam, Python, 人工智能, 决策支持, 大模型智能体, 安全防御评估, 实验平台, 强化学习, 故障排查, 无后门, 服务可靠性, 根因分析, 模拟环境, 用户模式Hook绕过, 系统恢复, 训练环境, 请求拦截, 运维, 运维自动化, 逆向工具