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
标签:多模态安全, 安全规则引擎, 数据可视化, 逆向工具