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 工作流

  1. 系统提议缓解措施
  2. 护栏评估安全性
  3. 人类通过 API 或仪表盘进行审批
  4. 应用缓解措施
  5. Postcheck 验证恢复情况
  6. 事件被标记为 COMPLETEDFAILED

运行该项目

本地运行


pip install -r requirements.txt

uvicorn api:app --reload

  • 仪表盘:http://localhost:8000
  • API 文档:http://localhost:8000/docs

标签:LangGraph, LLM, Unmanaged PE, 多智能体, 网络调试, 自动化, 运维, 逆向工具