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, 偏差过滤, 决策引擎, 大语言模型, 奖励系统, 安全防御评估, 强化学习, 故障响应, 数据库, 智能运维, 模拟环境, 测试平台, 网络调试, 自动化, 自动化代码审查, 请求拦截, 运维, 逆向工具