mak372/Incident-autopilot
GitHub: mak372/Incident-autopilot
基于 LangGraph 编排的多 Agent 生产事件响应系统,通过六阶段流水线实现从检测到恢复的自动化故障处理,内置安全护栏和人工审批机制保障操作安全性。
Stars: 0 | Forks: 0
Incident Autopilot - Agentic 事件响应系统
Incident Autopilot 是一个 多 agent、human-in-the-loop 的事件响应系统, 它模拟了现代 SRE 和平台团队如何 检测、分析和缓解生产环境事件。
实时演示
https://incident-autopilot.onrender.com/ - 该演示目前支持模拟的事件场景,包括延迟突增、错误率上升、资源饱和以及队列深度增加。
该系统并非单一的整体式工作流,而是编排了 专门的 agent,每个 agent 负责事件处理的不同阶段,同时强制执行安全护栏,并为高风险操作启用 人工审批。
问题陈述
真实世界中的事件响应并非单一的决策,它是一系列涉及证据、安全检查和人类判断的推理步骤。 如今的大多数工具都专注于仪表盘,而不是决策系统。
Incident Autopilot 将事件响应建模为一种 agentic 工作流,由 agent 进行推理、验证操作, 并与人类安全地协同。
核心功能
- Agentic 架构 —— 事件处理的每个阶段均由专门的 agent 负责
- 基于证据的推理 —— 使用指标、日志、部署历史和 runbook
- 护栏引擎 —— 防止不安全或不可逆的操作
- Human-in-the-loop 审批 —— 针对高风险的缓解措施
- 异步编排 —— 结合 FastAPI 后台任务
- 实时仪表盘 —— 展示事件时间线和状态
- 可插拔智能(目前为基于规则,已准备好支持 LLM)
- 确定性事件模拟器 —— 无需真实的基础设施
系统架构
Incident Detected
↓
┌──────────┐
│ Scout │ → 收集指标、日志、部署历史和 runbook
└──────────┘
↓
┌──────────┐
│ Triage │ → 对事件类型进行分类(延迟、错误、饱和)
└──────────┘
↓
┌────────────┐
│ Hypothesis │ → 生成可能的根本原因
└────────────┘
↓
┌────────────┐
│ Experiment │ → 根据证据验证假设
└────────────┘
↓
┌───────────┐
│ Executor │ → 提议缓解措施(护栏 + 审批)
└───────────┘
↓
┌───────────┐
│ Postcheck │ → 验证恢复情况并生成报告
└───────────┘
Agent 概览
| Agent | 职责 |
|---|---|
| Scout | 收集指标、日志、部署历史和 runbook |
| Triage | 使用证据和 runbook 对事件类型和严重程度进行分类(LLM 辅助的根本原因推理,带有确定性回退机制) |
| Hypothesis | 生成并对根本原因假设进行排序(LLM 辅助的根本原因推理,带有确定性回退机制) |
| Experiment | 根据收集到的证据验证假设 |
| Executor | 在严格的护栏下提议并应用缓解措施 |
| Postcheck | 验证恢复情况并生成最终的事件报告 |
安全与护栏
系统绝不会盲目执行操作。护栏确保:
- 仅允许执行可逆的缓解措施
- 生产环境操作需要人工审批
- 强制执行扩缩容限制和风险阈值
这反映了真实世界中的 SRE 安全实践。
Human-in-the-Loop 工作流
- 系统提议缓解措施
- 护栏评估安全性
- 人类通过 API 或仪表盘进行审批
- 应用缓解措施
- Postcheck 验证恢复情况
- 事件被标记为 COMPLETED 或 FAILED
运行该项目
本地运行
pip install -r requirements.txt uvicorn api:app --reload
- 仪表盘:
http://localhost:8000 - API 文档:
http://localhost:8000/docs
标签:LangGraph, LLM, Unmanaged PE, 多智能体, 网络调试, 自动化, 运维, 逆向工具