apuroopy1-prog/Devops-incident-response-agent
GitHub: apuroopy1-prog/Devops-incident-response-agent
一个基于 LangGraph 的有状态事件响应代理,自动完成告警分级、日志分析、根因推理与响应起草,以缩短 MTTR。
Stars: 0 | Forks: 0
# DevOps 事件响应代理



## 业务问题
值班工程师在凌晨 3 点收到包含模糊错误信息和原始日志转储的 PagerDuty 告警。梳理事件、诊断根本原因并起草运行手册响应需要 30-60 分钟。一个 LangGraph 代理能够自动分类严重级别、查询相关运行手册、从日志中诊断根本原因并起草事件响应,可将平均修复时间(MTTR)缩短 50% 以上。
## 项目目标
构建一个具有 4 个节点的有状态 LangGraph 代理:
- **节点 1 — 严重级别分类器:** 从告警上下文中分类 P1/P2/P3/P4
- **节点 2 — 日志分析器:** 解析原始日志并识别错误模式
- **节点 3 — 根因推理器:** 基于运行手册的 RAG 加上 LLM 推理来假设根因
- **节点 4 — 响应起草器:** 生成包含补救步骤的结构化事件响应
部署在 AWS Lambda 上。所有图执行过程在 LangSmith 中进行追踪。
## 系统架构
```
graph TD
A[PagerDuty Alert / Log Dump] --> B[FastAPI trigger]
B --> C[LangGraph StateGraph]
C --> D[Node 1: Severity Classifier]
D --> E{P1/P2?}
E -- Yes --> F[Node 2: Log Analyser]
E -- No --> G[Node 3: Root Cause Reasoner - simplified]
F --> G
G --> H[Node 4: Response Drafter]
H --> I[Structured Incident Report]
C --> J[LangSmith - full graph trace]
B --> K[AWS Lambda deployment]
```
## 文件夹结构
```
project-03-devops-incident-response-agent/
├── app/
│ ├── graph.py # LangGraph StateGraph definition
│ ├── nodes.py # 4 node implementations
│ ├── state.py # AgentState TypedDict
│ └── api.py # FastAPI + Mangum (Lambda adapter)
├── utils/
│ └── cost_tracker.py
├── evaluation/
│ ├── langsmith_eval.py
│ └── test_cases.json
├── guardrails/
│ └── __init__.py
├── infra/
│ ├── Dockerfile
│ ├── template.yaml # AWS SAM template
│ └── deploy.sh
├── tests/
│ └── test_graph.py
├── samples/
│ └── sample_incidents.json
├── langsmith_config.py
├── .github/workflows/deploy.yml
├── .env.example
├── requirements.txt
└── README.md
```
## 安装设置
```
pip install -r requirements.txt
cp .env.example .env
uvicorn app.api:app --reload
# 部署到 AWS Lambda
cd infra && sam build && sam deploy --guided
```
## 关键概念
- 使用条件边的 LangGraph StateGraph(严重级别路由)
- 在所有节点间共享的 TypedDict 状态
- 基于 FAISS 本地向量存储的运行手册 RAG
- 用于 Lambda 部署的 Mangum 适配器
- 用于图节点调试的 LangSmith 追踪
## 面试讨论要点
1. LangGraph 与简单的 LangChain 链有何不同?
2. 为什么使用条件边而不是始终运行全部 4 个节点?
3. 如何将此与 PagerDuty Webhook 集成?
4. 你会添加哪些状态字段以支持多轮事件对话?
5. 如何评估事件响应的质量?
## 时间预估
| 模式 | 时间 |
| --- | --- |
| 自定进度 | 18–24 小时 |
| 指导式 | 10–14 小时 |
标签:API集成, AV绕过, AWS Lambda, BurpSuite集成, DevOps 自动化, FastAPI, LangGraph, LangSmith, Mangum, MTTR 降低, P1 P2 P3 P4, PagerDuty, RAG, SRE 工具, 严重性分类, 事件报告, 企业级运维, 可观测性, 告警分级, 大语言模型代理, 日志解析, 有状态代理, 根因分析, 根因推理, 状态机, 结构化响应, 证书伪造, 运维自动化, 运行手册