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, 故障排查, 测试用例, 版权保护, 运维自动化, 逆向工具