hrithik0408/IncidentPilot
GitHub: hrithik0408/IncidentPilot
IncidentPilot 是一个基于 Qwen Cloud 的生产环境事故自动驾驶 Agent,通过多阶段 Agent 协作实现从告警分诊到事后复盘的端到端自动化事故响应。
Stars: 0 | Forks: 0
# IncidentPilot — 基于 Qwen Cloud 的生产环境事故自动驾驶 Agent
IncidentPilot 是一个生产级的事故响应自动驾驶 Agent。它可以接收告警、创建事故、调查日志/指标/部署/运行手册,使用 Qwen Cloud 进行推理,提出安全的修复方案,请求人工审批,执行已批准的操作,验证恢复情况并生成事后复盘报告。
## 技术栈
- 后端:FastAPI + SQLAlchemy + PostgreSQL
- 前端:Vite + React + TypeScript
- Agent:Supervisor 工作流,结合 Qwen Cloud 兼容客户端与确定性工具
- 数据库:PostgreSQL schema + 种子数据
- 部署:Docker Compose,阿里巴巴 Cloud ECS 辅助文件
## 快速开始
```
cp .env.example .env
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
docker compose up --build
```
打开:
- 前端:http://localhost:5173
- 后端 API:http://localhost:8000
- API 文档:http://localhost:8000/docs
## 演示流程
1. 打开仪表板。
2. 点击 **Trigger Demo Alert**。
3. 打开创建的事故。
4. 观察 IncidentPilot 进行调查。
5. 审批回滚。
6. 查看修复、验证和事后复盘。
## Qwen Cloud
在 `backend/.env` 中设置以下内容:
```
QWEN_API_KEY=your_key
QWEN_BASE_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1
QWEN_MODEL=qwen-plus
```
如果未配置 key,IncidentPilot 将使用确定性的本地演示兜底方案,以确保产品仍可运行。
## 调查 Agent
IncidentPilot 包含一个调查 Agent,它会在根因分析之前收集证据。
该 Agent 会调用只读的诊断工具:
- `get_service_metrics`
- `get_error_logs`
- `get_recent_deployments`
- `get_service_health`
每次工具调用都会存储在数据库中,并显示在事故时间线/仪表板上。这使得系统可审计,并防止无根据的根因猜测。
## 运行手册与记忆检索
在生成根因之前,IncidentPilot 会检索相关的运维知识:
- **运行手册**:标准操作程序(例如回滚程序)
- **历史事故记忆**:以往事故的已知修复方案
此检索过程会作为 `context_retrieved` 事件记录在时间线中,使得推理过程透明且立足于运维知识。
## 根因 Agent
IncidentPilot 包含一个根因 Agent,它会在调查和上下文检索之后分析证据。
该 Agent 会接收指标、日志、部署历史、服务健康状况、检索到的运行手册以及历史事故记忆。
它会生成:
- 带有置信度分数的根因
- 包含支持证据和反面证据的排序假设
- 推荐的安全修复方案
这使得 IncidentPilot 的 RCA 是可解释且可审计的,而不是黑盒 LLM 的回答。
## 修复规划 Agent
IncidentPilot 包含一个修复规划 Agent,它将根因分析转化为安全的行动提案。
该规划器会返回:
- 带有参数的推荐操作
- 风险级别和置信度分数
- 预期影响和可逆性
- 替代操作
- 安全注意事项
该规划器不会执行操作。生产环境的操作在执行前必须经过策略引擎和人工审批工作流处理。
## 分诊 Agent
当告警到达时,分诊 Agent 会在调查开始前对其进行分类。
分诊 Agent 会生成:
- 事故标题
- 严重程度(critical、high、medium、low)
- 受影响的服务
- 告警类别
- 业务影响
- 建议的下一步操作
- 分诊置信度分数
分诊结果会作为 `triage_completed` 事件记录在时间线中。
## 策略与风险引擎
IncidentPilot 不会盲目执行 AI 的建议。每一个操作都会经过确定性的策略引擎处理。
### 安全规则
- 生产环境回滚被归类为 `medium`(中等)风险
- 生产环境中任何 `medium`、`high` 或 `critical` 风险的操作都需要人工审批
- LLM 无法绕过策略引擎
这确保了“受控的自主性”,并防止 AI 幻觉破坏生产系统。
## 人工审批工作流
对于生产环境的变更,IncidentPilot 强制执行人工干预(human-in-the-loop)检查点。
### 流程
1. 修复规划器提出回滚建议
2. 策略引擎将其标记为 `requires_approval: true`
3. 前端显示带有风险级别和预期影响的审批卡
4. SRE 点击“Approve Remediation”(批准修复)
5. 操作执行器运行确定性的回滚工具
## 事后复盘 Agent
一旦事故得到解决和验证,事后复盘 Agent 会自动起草一份报告。
### 内容
- 影响摘要
- 根因(来自 RCA Agent)
- 解决步骤(来自执行日志)
- 预防措施(以避免未来发生类似事故)
这为 SRE 节省了每次事故后数小时的手动文档编写时间。
## 评估指标
| 指标 | 人工基线 | IncidentPilot |
|---|---:|---:|
| 分诊时间 | 10 分钟 | 60-90 秒 |
| 人工步骤 | ~12 | ~4 |
| 事后复盘初稿 | 30 分钟 | <30 秒 |
| 审计覆盖率 | 不完整的笔记 | 完整的事件时间线 |
| 根因置信度 | 主观判断 | 带有证据的 0.86 |
## 演示链接
## License
MIT
标签:AIOps, AV绕过, FastAPI, React, Syscalls, 故障排查, 测试用例, 版权保护, 运维自动化, 逆向工具