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绕过, 站点可靠性工程, 请求拦截, 运维自动化, 逆向工具, 配置错误