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绕过, 站点可靠性工程, 系统恢复, 脑裂, 自动化代码审查, 自动化运维, 请求拦截, 运维, 连接泄漏, 逆向工具