amulyagupta1278/incident-response-system

GitHub: amulyagupta1278/incident-response-system

该项目基于 LangGraph 和 Claude 构建多 Agent 系统,自动化协调日志、指标和部署数据分析,快速实现线上故障的根因定位与业务影响评估。

Stars: 0 | Forks: 0

# AI 运维指挥中心 自主多 Agent 事件响应系统 ## 问题 企业的事件响应过程缓慢且依赖人工。工程师需要花费数小时筛选日志、指标和部署数据,以确定问题所在及其原因。 ## 解决方案 AI 运维指挥中心是一个多 Agent 系统,可统筹协调跨日志、指标和部署的自主调查。六个专业 Agent 协同工作以: 1. **事件指挥官** - 从多个来源加载事件数据 2. **日志分析** - 检测错误模式和异常 3. **指标分析** - 识别指标激增和相关性 4. **RCA 分析** - 将发现综合成根因假设 5. **业务影响** - 计算受影响的用户和收入影响 6. **高管摘要** - 生成工程和管理报告 由 LangGraph 统筹驱动,并使用 Claude API 进行智能合成。 ## 架构 ``` START → Incident Commander → Log Analysis + Metrics Analysis → RCA Analysis → Business Impact → Executive Summary → END ``` 每个 Agent: - 接收 IncidentState 作为输入 - 执行专门的分析 - 将发现结果补充到状态中 - 记录调用详情以供审计追踪 - 将丰富后的状态返回给下一个 Agent ## 快速开始 ``` python -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env pytest python app.py ``` 然后在浏览器中打开 http://localhost:8000。 ## 演示 1. 点击“Scenario 1: DB Pool Exhaustion”按钮 2. 等待分析完成(约 2 秒) 3. 查看事件卡片,包含根因置信度、受影响用户、收入影响 4. 点击“View Full Details”以查看工程摘要、证据和恢复建议 ## 项目结构 ``` incident-response-system/ ├── agents/ # Multi-agent system │ ├── __init__.py # IncidentState dataclass │ ├── incident_commander.py # Data loader & orchestrator │ ├── log_analysis.py # Error pattern detection │ ├── metrics_analysis.py # Metric spike detection │ ├── rca_analysis.py # Root cause hypothesis │ ├── business_impact.py # User & revenue impact │ └── executive_summary.py # Report generation ├── data/ # Realistic mock scenarios │ ├── scenario_1/ # DB Pool (50 → 30 connection limit) │ ├── scenario_2/ # Memory Leak (500MB → 2000MB) │ └── scenario_3/ # Cascading Failure (timeout cascade) ├── frontend/ # Vanilla HTML/CSS/JS │ ├── dashboard.html # Incident list & triggers │ ├── incident_detail.html # Full analysis view │ └── styles.css # Professional UI ├── tests/ # pytest suite │ ├── test_scenario_1.py │ ├── test_scenario_2.py │ ├── test_scenario_3.py │ └── test_all_scenarios.py ├── app.py # FastAPI backend ├── mock_data.py # Data loader ├── requirements.txt # Dependencies ├── .env.example # Configuration template ├── README.md # This file └── SETUP_INSTRUCTIONS.md # Detailed setup guide ``` ## 测试 ``` pytest # Run all tests pytest -v # Verbose output pytest tests/test_scenario_1.py # Single scenario ``` 所有三个场景均通过测试,满足: - 检测到的日志异常 > 0 - 检测到的指标异常 > 0 - 根因置信度 > 0.60 - 受影响用户 > 0 - 完整的审计追踪 ## 结果 ### 场景 1:数据库连接池耗尽 - **根因**:在最近的部署中,连接池大小从 50 减少到 30 - **置信度**:85% - **受影响用户**:1,400 - **收入影响**:$700/分钟 - **关键指标**:连接超时错误,CPU 激增 23% → 78%,error_rate 0.1% → 68% ### 场景 2:内存泄漏 - **根因**:代码退化导致内存未被释放 - **置信度**:72% - **受影响用户**:5,000 - **收入影响**:$1,500/分钟 - **关键指标**:GC 暂停时间增加,内存 500MB → 2000MB(无部署) ### 场景 3:级联故障 - **根因**:调用下游 payment-api 服务超时 - **置信度**:80% - **受影响用户**:3,000 - **收入影响**:$1,200/分钟 - **关键指标**:超时错误,延迟激增 55ms → 8000ms,error_rate 激增至 85% ## 技术栈 - **Python 3.10+** - 核心语言 - **LangGraph 0.0.33** - Agent 编排 - **FastAPI 0.104.1** - REST 后端 - **Claude 3.5 Sonnet** - AI 合成(API 密钥位于 .env 中) - **Pydantic 2.4.2** - 数据验证 - **pytest 7.4.3** - 测试 - **原生 HTML/CSS/JavaScript** - 前端(无构建步骤) ## API 端点 - `POST /api/incidents/trigger` - 触发事件分析 { "timestamp": "2026-07-07T14:32:15Z", "service": "payment-api", "alert_description": "Connection pool exhaustion", "severity": "critical" } - `GET /api/incidents/{incident_id}` - 获取已完成的分析 - `GET /api/health` - 健康检查 - `GET /` - 仪表板 HTML - `GET /incident/{incident_id}` - 事件详情 HTML ## 后续计划 - 实现实时 Datadog/Splunk 集成 - 增加 Claude API 集成,以生成自然语言 RCA - 创建自动修复手册 - 构建 Slack/PagerDuty 通知系统 - 实现多步骤恢复自动化 - 增加历史事件搜索与学习功能 ## 许可证 MIT ## 作者 Amulya Gupta & Anujay
标签:多模态安全, 安全规则引擎, 数据可视化, 逆向工具