Heroic2024/ProdGuard-RL
GitHub: Heroic2024/ProdGuard-RL
ProdGuard-RL 是一个模拟真实 DevOps 运维场景的强化学习环境,旨在训练和评估 AI 智能体进行故障排查与事件响应的能力。
Stars: 1 | Forks: 0
## 标题: ProdGuard-RL
emoji: 🔧
colorFrom: blue
colorTo: green
sdk: docker
app_file: app.py
pinned: false
# ProdGuard-RL
ProdGuard-RL 是一个用于生产系统事件响应的交互式强化学习环境。
它模拟了真实的 DevOps 分诊工作流程,其中代理必须调查嘈杂的信号、采取纠正措施,
并在部分可观测性下识别根本原因。
该项目旨在:
- 在现实的多步骤事件中评估基于 LLM 和基于策略的响应程序。
- 对决策质量、效率和诊断置信度进行基准测试。
- 部署为同时具有 API 和 Web 界面的 Hugging Face Docker Space。
## 核心理念
每个回合都会提供一个警报和有限的遥测数据。代理可以:
- 检查特定服务的日志和指标。
- 应用修复操作(重启、扩容、回滚)。
- 声明根本原因并给出置信度。
奖励机制鼓励良好的运维行为:
- 快速、相关的调查。
- 正确的修复顺序。
- 准确的根本原因声明。
- 最少的不必要操作。
## 包含内容
- 带有环境端点的 FastAPI 后端:
- GET /health
- GET /tasks
- POST /reset
- POST /step
- GET /state
- 位于 GET / 的浏览器前端
- 确定性场景:简单、中等、困难
- 用于可重现交互契约的类型化操作/状态模型
- 用于基准测试风格多任务评估的推理运行器
## 项目结构
- app.py:Docker/Space 入口点 FastAPI 应用程序
- env.py:环境引擎和回合生命周期
- scenarios/:场景定义和任务目录
- inference.py:具有结构化日志的基准运行器
- grader.py:确定性评分工具
- frontend/:用于交互式控制室的浏览器 UI
- server.py:本地开发服务器模块
## 环境 API
- POST /reset
- 输入:任务选择器
- 输出:初始观察/状态
- POST /step
- 输入:代理操作 payload
- 输出:下一个状态、奖励、完成状态和元数据
- GET /state
- 输出:当前观察快照
- GET /tasks
- 输出:可用任务
- GET /health
- 输出:服务存活状态
## 运行应用程序
1. 激活虚拟环境
- PowerShell:.\.venv\Scripts\Activate.ps1
2. 安装依赖
- pip install -r requirements.txt
3. 启动本地 API + UI 服务器
- python server.py
4. 打开 UI
- http://127.0.0.1:8000
## 运行基准推理
1. 启动服务器(如果尚未运行)
- python server.py
2. 运行推理基准
- python inference.py
运行器会针对每个任务输出结构化日志:
- [START] 任务元数据
- [STEP] 操作、奖励、完成状态、错误
- [END] 成功状态、步数、分数、奖励轨迹
## Hugging Face Space 🤗
此仓库已配置用于基于 Docker 的 Hugging Face Space 部署。
主要部署命令:
- openenv push --repo-id HeroicCoder168/ProdGuardRL
部署后:
- 运行时应用 URL:https://heroiccoder168-prodguardrl.hf.space
- Space 页面:https://huggingface.co/spaces/HeroicCoder168/ProdGuardRL
## 快速 API 健全性检查
在服务器运行时,在另一个 PowerShell 终端中运行这些命令。
1. Health
- Invoke-RestMethod http://127.0.0.1:8000/health
2. Tasks
- Invoke-RestMethod http://127.0.0.1:8000/tasks
3. Reset (easy)
- Invoke-RestMethod -Method Post -Uri http://127.0.0.1:8000/reset -ContentType application/json -Body '{"task":"easy"}'
4. Step
- Invoke-RestMethod -Method Post -Uri http://127.0.0.1:8000/step -ContentType application/json -Body '{"action":"check_logs","service":"db"}'
5. State
- Invoke-RestMethod http://127.0.0.1:8000/state
## 端到端回合检查
此序列应完成一个简单回合并返回 done=True 和分数。
PowerShell:
$base='http://127.0.0.1:8000'
Invoke-RestMethod -Method Post -Uri "$base/reset" -ContentType 'application/json' -Body '{"task":"easy"}' | Out-Null
Invoke-RestMethod -Method Post -Uri "$base/step" -ContentType 'application/json' -Body '{"action":"check_metrics","service":"db"}' | Out-Null
Invoke-RestMethod -Method Post -Uri "$base/step" -ContentType 'application/json' -Body '{"action":"check_logs","service":"db"}' | Out-Null
Invoke-RestMethod -Method Post -Uri "$base/step" -ContentType 'application/json' -Body '{"action":"restart_service","service":"db"}' | Out-Null
$final = Invoke-RestMethod -Method Post -Uri "$base/step" -ContentType 'application/json' -Body '{"action":"declare_root_cause","cause":"database outage","confidence":0.92}'
$final
预期:
- $final.done 为 True
- $final.info.score 存在
标签:AIOps, Apex, API, AV绕过, Docker, FastAPI, Hugging Face, LLM, Python, Unmanaged PE, 事故响应, 人工智能, 仿真环境, 决策评估, 告警管理, 多模态安全, 大模型, 安全防御评估, 强化学习, 指标分析, 故障排查, 无后门, 智能运维, 机器学习, 根因分析, 用户模式Hook绕过, 监控, 自动化运维, 请求拦截, 运维, 逆向工具