LokeshDasari123/incident_response_agent
GitHub: LokeshDasari123/incident_response_agent
基于OpenEnv框架构建的AI驱动事件响应模拟环境,通过多代理协作架构让AI代理在真实云基础设施故障场景中学习调查、诊断和修复能力。
Stars: 0 | Forks: 0
# AI 事件响应环境
一个为 [OpenEnv](https://github.com/meta-pytorch/OpenEnv) 构建的企业级、AI 驱动的事件响应分类环境。该环境模拟真实世界的云基础设施事件,AI 代理必须调查、诊断并解决生产环境中断。
## 为什么选择事件响应?
事件响应是工程师执行的最高风险的真实世界任务之一。它需要:
- **模式识别**:从嘈杂的日志数据中识别模式
- **因果推理**:区分症状与根本原因
- **战略决策**:决定调查哪些系统
- **风险评估**:在选择修复操作时评估风险
该环境利用 Alibaba 集群跟踪数据和真实世界 SRE 事件中的模式来模拟这些挑战。
## 环境概述
### 动作空间 (Action Space)
代理通过 4 种动作类型进行交互:
| Action | Description | Fields |
|--------|-------------|--------|
| `investigate` | 查询日志、指标、状态、依赖关系、警报 | `target`, `command` |
| `diagnose` | 提出根本原因假设 | `hypothesis` |
| `execute` | 运行修复程序(重启、终止查询、扩容等) | `target`, `command` |
| `resolve` | 提交最终根本原因和解决方案 | `root_cause`, `resolution_summary` |
**调查命令:** `show_logs`, `show_metrics`, `show_status`, `show_dependencies`, `show_alerts`
**修复命令:** `restart_service`, `kill_query`, `scale_up`, `flush_dns`, `clear_cache`, `rollback_deploy`
### 观察空间 (Observation Space)
每次观察包含:
- `output` — 动作的文本输出(日志、指标、状态信息)
- `alert_summary` — 活动事件警报
- `available_commands` — 下一步的有效命令
- `services` — 环境中的服务列表
- `metrics_snapshot` — 关键系统指标
- `reward` — 步骤奖励信号
- `done` — Episode 是否结束
### 任务(3 个难度级别)
| Task | Difficulty | Scenario | Expected Steps |
|------|-----------|----------|---------------|
| `easy` | 简单 | 前端因缓存未命中导致 CPU 占用过高 | 4 |
| `medium` | 中等 | 数据库锁争用导致级联故障 | 6 |
| `hard` | 困难 | CoreDNS OOM 导致集群完全瘫痪 | 10 |
### 奖励函数 (Reward Function)
奖励在整个 Episode 中提供持续信号:
- **调查** (+0.01 到 +0.08):调查因果服务获得更高奖励
- **诊断** (+0.0 到 +0.30):通过与真实根本原因的关键词匹配进行评分
- **正确修复** (+0.20):对正确的服务应用了正确的修复
- **错误修复** (-0.03 到 -0.08):对错误动作的惩罚
- **时间惩罚** (-0.02/step):超过预期解决时间后
- **最终评分** (0.0-1.0):加权分数 — 根本原因 40%,修复 30%,效率 20%,安全性 10%
## 设置
### 前置条件
- Python 3.10+
- HuggingFace API Token(用于推理)
### 安装
```
# 创建虚拟环境
python -m venv .venv
# 激活
.venv\Scripts\activate
# 激活
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
```
### 环境变量
创建一个 `.env` 文件:
```
HF_TOKEN=your_huggingface_token
API_BASE_URL=https://router.huggingface.co/v1
MODEL_NAME=Qwen/Qwen2.5-72B-Instruct
```
## 使用方法
### 启动环境服务器
```
uvicorn server.app:app --host 0.0.0.0 --port 7860
```
### 运行推理
```
python inference.py
```
这将在所有 3 个任务中运行多代理编排流水线:
1. **Lead Orchestrator** (LLM) — 分析情况,制定策略
2. **Executor** (LLM) — 将策略转换为有效的动作 JSON
3. **Analyst** (LLM) — 总结冗长输出以进行上下文窗口管理
### API 端点
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/reset` | POST | 启动新的事件 Episode |
| `/step` | POST | 执行代理动作 |
| `/state` | GET | 获取当前环境状态 |
| `/health` | GET | 健康检查 |
| `/schema` | GET | 动作/观察模式 |
### 示例:手动 API 调用
```
# 使用 easy task 重置
curl -X POST http://localhost:7860/reset -H "Content-Type: application/json" -d '{"task_id": "easy"}'
# 调查
curl -X POST http://localhost:7860/step -H "Content-Type: application/json" \
-d '{"action": {"action_type": "investigate", "target": "web-frontend", "command": "show_logs"}}'
# 解决
curl -X POST http://localhost:7860/step -H "Content-Type: application/json" \
-d '{"action": {"action_type": "resolve", "root_cause": "Cache miss on search endpoint", "resolution_summary": "Cleared and rewarmed cache"}}'
```
## Docker
```
docker build -t ai-incident-response .
docker run -p 7860:7860 ai-incident-response
```
## 架构
```
ai-incident-response/
├── models.py # Pydantic models (Action, Observation, State)
├── client.py # EnvClient subclass for remote usage
├── __init__.py # Package exports
├── inference.py # Multi-agent inference script
├── openenv.yaml # OpenEnv manifest
├── Dockerfile # Container definition
├── requirements.txt # Dependencies
├── server/
│ ├── app.py # FastAPI app via create_app()
│ └── incident_environment.py # Environment implementation
├── scenarios/
│ └── generator.py # 3 difficulty-level scenario generator
├── graders/
│ └── incident_grader.py # Deterministic episode grader
└── data/
└── raw_samples/ # Alibaba cluster trace samples (gitignored)
```
## 基线分数
| Task | Score | Steps |
|------|-------|-------|
| Easy | ~0.65 | 4-6 |
| Medium | ~0.45 | 6-9 |
| Hard | ~0.30 | 10-15 |
## 许可证
MIT
标签:AI运维, API集成, C2, Cloud Infrastructure, LLM Agent, OpenEnv, SRE, 事故响应, 人工智能, 企业级, 偏差过滤, 决策支持, 可观测性, 因果推理, 强化学习环境, 故障恢复, 故障诊断, 根因分析, 模式识别, 模拟环境, 生产环境, 用户模式Hook绕过, 站点可靠性工程, 请求拦截, 运维自动化, 逆向工具, 配置错误