Abhi-mishra998/Astrixion

GitHub: Abhi-mishra998/Astrixion

一个用于测试LLM在数据库事件响应中自主决策能力的SRE模拟环境,通过奖励机制评估故障排查的正确性和效率。

Stars: 0 | Forks: 0

title: Astrixion SRE 环境 emoji: 🚀 colorFrom: blue colorTo: green sdk: docker pinned: false app_port: 7860 tags: - openenv - sre - devops - reinforcement-learning - ai-agents - simulation # Astrixion SRE 环境 for OpenEnv 用于测试LLM在自主数据库事件响应中决策的有状态评估环境——具有真实后果、多步推理和奖励驱动的评分。 基于OpenEnv框架构建,该环境提供: - 具有可重复、可重现场景的确定性SRE模拟 - 结构化遥测观测(日志、指标、信号),兼容任何LLM - 3个事件难度等级——简单、中等和困难(多根故障) - 基于操作的修复方案及RL训练的奖励系统 - 生命周期状态跟踪:`DETECTED → TRIAGED → MITIGATED → RESOLVED` ## 与众不同之处 传统基准测试询问模型"你会怎么做?",而Astrixion展示模型**实际做了什么**当: - **操作有后果**:每个操作都会改变系统状态——没有撤销 - **不作为有代价**:未能正确行动会减少奖励并延长事件时间 - **需要多步推理**:完全解决需要正确的决策序列 - **错误操作会被惩罚**:错误的选择会被扣分,而不是被忽略 ## 快速开始 ``` import requests # 根据任务难度重置环境 response = requests.post("http://localhost:7860/reset", json={"task": "easy"}) obs = response.json() print(obs["observation"]) # 执行操作 response = requests.post("http://localhost:7860/step", json={"action": "check_locks"}) result = response.json() print(f"Reward: {result['reward']}, Done: {result['done']}") ``` 将客户端指向实时Hugging Face Space: ``` BASE_URL=https://Abhishek0786-astrixion-env.hf.space curl -X POST $BASE_URL/reset -H "Content-Type: application/json" -d '{"task":"hard"}' ``` ## 场景 ### 简单 — 缺失索引 缺失索引导致的顺序扫描会造成查询延迟升高。 **目标**:使用`create_index`诊断并解决。 ### 中等 — CPU饱和 低效的查询逻辑导致CPU利用率达到临界水平。 **目标**:识别瓶颈并应用`optimize_query`。 ### 困难 — 多根故障 三个根因同时发生级联故障: | 层级 | 根因 | 解决方案 | |---|---|---| | 并发 | 锁争用 | `check_locks` → `kill_query` | | 计算 | CPU瓶颈 | `optimize_query` | | 存储 | 缺失索引 | `create_index` | **目标**:按正确顺序解决所有三个层级,然后`verify_recovery`。 ## 操作 ``` # 检查锁争用 {"action": "check_locks"} # 终止阻塞事务 {"action": "kill_query"} # 改进低效的 SQL 逻辑 {"action": "optimize_query"} # 解决顺序扫描瓶颈 {"action": "create_index"} # 验证修复后的系统稳定性 {"action": "verify_recovery"} ``` ## 观测 每步返回三个通道的结构化系统遥测: **日志** - 查询计划器决策和执行警告 - 错误信号和异常追踪 **指标** | 指标 | 描述 | |---|---| | `query_latency_ms` | 端到端查询响应时间 | | `cpu_utilization` | 当前CPU负载(0–1)| | `rows_examined_per_exec` | 每次查询执行扫描的行数 | | `index_usage_ratio` | 使用索引的查询比例 | | `io_wait_ratio` | I/O等待占总时间的比例 | | `lock_wait_ms` | 平均锁等待时间 | | `active_connections` | 当前活跃的数据库连接数 | **信号** - `sequential_scan_detected` - `cpu_bottleneck` - `lock_contention` - `io_bottleneck` ## 奖励系统 | 操作结果 | 奖励 | |---|---| | 完全解决 | +1.0 | | 正确的修复步骤 | +0.2 | | 部分缓解 | +0.1 | | 中性/无操作 | −0.05 | | 错误操作 | −0.2 | ## 执行模型 Astrixion运行确定性事件生命周期,具有单会话状态: **结构化生命周期**:事件通过定义的阶段推进——`DETECTED → TRIAGED → MITIGATED → RESOLVED`。每个操作根据正确性推进或回退阶段。 **单一连接**:每个环境实例一次处理一个会话。对于并发评估,请部署多个实例(独立的Spaces或Docker容器)。 ## 示例 `inference.py`脚本提供了一个基线SRE代理,默认连接到`http://localhost:7860`——传入`--base-url`以访问实时Space。 **基线代理** ``` python inference.py python inference.py --task hard --base-url https://Abhishek0786-astrixion-env.hf.space ``` **预期的代理追踪:** ``` [STEP 0] action=check_locks reward=+0.2 [STEP 1] action=kill_query reward=+0.2 [STEP 2] action=optimize_query reward=+0.2 [STEP 3] action=create_index reward=+0.2 [STEP 4] action=verify_recovery reward=+1.0 ``` ## 环境API ``` POST /reset # Initialize a new episode POST /step # Submit an action, receive observation + reward GET /state # Inspect current environment state ``` **重置:** ``` curl -X POST http://localhost:7860/reset \ -H "Content-Type: application/json" \ -d '{"task": "hard"}' ``` **步进:** ``` curl -X POST http://localhost:7860/step \ -H "Content-Type: application/json" \ -d '{"action": "check_locks"}' ``` ## 项目结构 ``` server/ app.py # FastAPI server environment.py # Core simulation logic tasks/ # Scenario definitions (easy, medium, hard) graders.py # Reward & scoring logic inference.py # Baseline SRE agent openenv.yaml # Environment metadata Dockerfile # Deployment configuration ``` ## 部署 **Hugging Face Spaces:** ``` openenv push envs/astrixion_env --repo-id username/astrixion-env # 使用 CPU 或 GPU 运行时配置 Space 设置 ``` **本地Docker:** ``` docker build -t astrixion-env:latest . docker run -p 7860:7860 astrixion-env:latest ``` 实时Space:[Abhishek0786/astrixion-env](https://huggingface.co/spaces/Abhishek0786/astrixion-env) ## 规格 | | 值 | |---|---| | 运行时 | CPU(无需GPU)| | 框架 | FastAPI + Docker | | 启动时间 | 约5秒 | | 模拟模式 | 确定性(基于规则的遥测)| | RL兼容性 | OpenAI Gym风格的step/reset API | ## 测试 ``` pip install -r requirements.txt python -m pytest tests/ -v ``` 对于无需运行服务器的管道验证,设置`ENV_MODE=mock`以直接使用模拟后端: ``` ENV_MODE=mock python inference.py ``` ## 局限性 - 使用模拟遥测——不是真实数据库后端 - 未与真实可观测性管道集成(Prometheus、Grafana等) - 基线代理是基于规则的,不是LLM驱动的 - 仅支持单代理——无分布式或多代理协调 ## 未来工作 - 与真实PostgreSQL数据库集成 - Prometheus/可观测性管道支持 - 具有完整推理追踪的基于LLM的决策代理 - 多代理协调场景 - 公共基准排行榜 ## 资源 - **OpenEnv框架**:[github.com/meta-pytorch/OpenEnv](https://github.com/meta-pytorch/OpenEnv) - **实时Space**:[Abhishek0786/astrixion-env](https://huggingface.co/spaces/Abhishek0786/astrixion-env) ## 引用 ``` @software{astrixion_env, title = {Astrixion: Autonomous Database SRE Environment for OpenEnv}, author = {Abhishek0786}, year = {2026}, url = {https://huggingface.co/spaces/Abhishek0786/astrixion-env} } ```
标签:AI, AIOps, API, DLL 劫持, Docker, IncidentResponse, LLM, RL, SRE, Unmanaged PE, 偏差过滤, 决策引擎, 大语言模型, 奖励系统, 安全防御评估, 强化学习, 故障响应, 数据库, 智能运维, 模拟环境, 测试平台, 网络调试, 自动化, 自动化代码审查, 请求拦截, 运维, 逆向工具