vijivijeth/Openenv-Scaler
GitHub: vijivijeth/Openenv-Scaler
这是一个基于OpenEnv的确定性SRE事故响应基准测试环境,用于在从简单崩溃到级联故障的真实场景中评估AI智能体的故障诊断与修复能力。
Stars: 0 | Forks: 0
## 标题:SRE-ResponseGym
emoji: "🛠️"
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false
short_description: Deterministic SRE incident-command benchmark for OpenEnv.
header: default
# OpenEnv SRE-ResponseGym V2
SRE-ResponseGym V2 是一个确定性的 OpenEnv 环境,用于在真实的 SRE 事故指挥工作流中评估 Agent。Agent 必须调查部分证据,避免不安全的操作,沟通状态更新,并在时间压力下恢复服务健康状况。
## 为什么此作品具有竞争力
本项目的设计旨在在黑客松的五个类别中均获得高分。
- 实用价值:事故模拟了生产环境故障模式,如糟糕的部署、连接泄漏、脑裂故障转移和熔断器恢复。
- 任务与评分质量:成功取决于诊断、安全性、效率和事故规范管理,而非单一的状态检查。
- 环境设计:每一个操作都会推进事故时间、影响客户影响范围,并可能恶化或不可逆地损坏系统。
- 代码质量与规范合规:带类型的 OpenEnv 模型、确定性的任务数据、验证覆盖以及支持并发的 Dashboard 辅助工具。
- 创意与新意:该基准测试评估的是事故指挥行为,而不仅仅是工具选择或单步修复。
## 标准事故系列
### 服务层事故
| Task | Difficulty | Scenario |
|------|------------|----------|
| `task_easy` | Easy | 配置重载后单个 auth-api 崩溃循环 |
| `task_noisy_alert` | Easy | 虚假缓存延迟掩盖了 checkout-api 崩溃 |
| `task_token_expiry` | Medium | token-broker 中过期的签名包 |
### 平台层事故
| Task | Difficulty | Scenario |
|------|------------|----------|
| `task_medium` | Medium | 级联到 auth 的数据库连接风暴 |
| `task_hard` | Hard | 带有内存泄漏的 payment-service 错误部署 |
| `task_pool_exhaustion` | Hard | ledger-api 中的连接泄漏 |
### 分布式事故
| Task | Difficulty | Scenario |
|------|------------|----------|
| `task_expert` | Expert | 跨越缓存和网关的依赖恢复顺序 |
| `task_trap` | Expert | 带有不可逆重启陷阱的脑裂故障转移 |
| `task_extreme` | Extreme | 包含部署、缓存和熔断器故障的多原因 SEV1 事故 |
## 操作语法
公共操作空间保持基于文本以兼容 OpenEnv:
- `check_logs `
- `check_metrics `
- `check_deploy `
- `check_dependencies `
- `query_runbook `
- `restart_service `
- `rollback_deploy `
- `scale_service `
- `drain_traffic `
- `failover_db `
- `isolate_az `
- `reset_circuit_breaker `
- `acknowledge_alert `
- `post_status `
## 观察与状态
每个 `SREObservation` 包含:
- `task_id`
- `description`
- `services`
- `alerts`
- `logs`
- `metrics`
- `timeline`
- `customer_impact`
- `available_tools`
- `last_action_result`
- `step`
- `max_steps`
- `reward`
- `done`
类型化的 `SREState` 还会暴露部署和评分上下文,例如:
- `deploy_history`
- `dependency_graph`
- `runbooks`
- `action_history`
- `analysis`
- `hidden_causes`
- `scenario_seed`
- `minutes_elapsed`
## 评分细则
最终得分是确定性的,并限制在 `[0.01, 0.99]` 范围内。
- `resolution`: 35%
- `diagnosis_accuracy`: 20%
- `operational_safety`: 20%
- `efficiency`: 15%
- `incident_hygiene`: 10%
评分器还会报告:
- 禁忌操作命中次数
- 不可逆错误
- 冗余操作
- 首次诊断耗时
- 受影响用户峰值百分比
## API 表面
OpenEnv 基础端点:
- `POST /reset`
- `POST /step`
- `GET /state`
- `GET /health`
- `GET /metadata`
环境辅助端点:
- `GET /tasks`
- `GET /task/{task_id}`
- `GET /environment-info`
- `GET /grade`
- `GET /history`
- `POST /benchmark`
- `POST /inference-trace`
- `GET /llm-status`
- `POST /llm-probe`
Dashboard 会话端点:
- `POST /dashboard/session`
- `POST /dashboard/session/{session_id}/action`
- `GET /dashboard/session/{session_id}/state`
- `GET /dashboard/session/{session_id}/grade`
- `DELETE /dashboard/session/{session_id}`
## 本地开发
```
pip install -r requirements.txt
uvicorn server.app:app --host 0.0.0.0 --port 7860
```
验证:
```
python smoke_test.py
openenv validate
```
## LLM 配置
推理运行器可以使用以下任意环境变量作为路由器 token:
- `HF_TOKEN`
- `API_KEY`
- `HF_API_TOKEN`
- `HUGGING_FACE_HUB_TOKEN`
- `HUGGINGFACEHUB_API_TOKEN`
- `OPENAI_API_KEY`
您也可以通过复制 `.env.example` 来创建本地 `.env` 文件。
示例:
```
HF_TOKEN=hf_your_token_here
API_BASE_URL=https://router.huggingface.co/v1
MODEL_NAME=meta-llama/Llama-3.1-8B-Instruct
```
快速验证:
```
python llm_smoke_test.py
```
或者通过应用:
- `GET /llm-status`
- `POST /llm-probe`
## 推理运行器
`inference.py` 位于仓库根目录,并保持所需的 stdout 格式:
- `[START]`
- `[STEP]`
- `[END]`
执行模式:
- `ENV_URL=` 连接到已部署的环境。
- `LOCAL_IMAGE_NAME=` 使用 OpenEnv Docker 客户端流程。
- 如果两者均未设置,脚本将自动启动本地 FastAPI 服务器。
策略为先检查,当凭证可用时使用 LLM 辅助,否则执行确定性逻辑。这既保持了基准测试的可复现性,又支持真实的模型驱动推理。
## Hugging Face / 部署清单
提交之前:
1. 将最新仓库状态推送到 GitHub。
2. 使用更新的 Docker 镜像重新部署 Hugging Face Space。
3. 如果需要真实的 LLM 支持推理,请将 `HF_TOKEN` 添加为 Space secret。
4. 在实时部署上确认这些路由:
- `/tasks`
- `/environment-info`
- `/benchmark`
- `/inference-trace`
- `/llm-status`
5. 运行本地冒烟测试和 `openenv validate`。
## 架构说明
该环境适用于 Agent 评估,因为它结合了:
- 部分可观察性
- 显式工具使用
- 级联服务依赖
- 时效性客户影响
- 不可逆的操作错误
这使得它比玩具式的单步工具选择任务更接近真实的生产事故响应,同时仍然保持可复现和可基准化。
标签:Agent, AI, ASM汇编, Benchmark, Docker, OpenEnv, SRE, 人工智能, 偏差过滤, 内存泄漏, 压力测试, 安全运营, 安全防御评估, 库, 应急响应, 扫描框架, 故障响应, 故障排查, 服务降级, 根因分析, 模拟环境, 熔断器, 生产环境, 用户模式Hook绕过, 站点可靠性工程, 系统恢复, 脑裂, 自动化代码审查, 自动化运维, 请求拦截, 运维, 连接泄漏, 逆向工具