kshitijkumrawat20/SplunkAgenticOps
GitHub: kshitijkumrawat20/SplunkAgenticOps
OpsPilot AI 是一个基于 LangGraph 多智能体的自适应事件调查与响应平台,通过动态诊断系统中断、关联可观测性数据并推荐修复方案来缩短运维平均恢复时间。
Stars: 0 | Forks: 0
# OpsPilot AI — 自主事件调查与响应平台
[](https://youtu.be/bYop9qhEUvk)
OpsPilot AI 是一个自适应、与领域无关的智能体事件调查与响应平台。通过用规划器驱动的注册表模型取代僵化的静态 pipeline,OpsPilot AI 能够动态诊断系统中断、关联可观测性数据、推荐操作,并在操作员的监督下执行修复。
OpsPilot AI 基于 **LangGraph**、**FastAPI**、**React (Vite)** 和 **Splunk MCP (Model Context Protocol)** 构建,它充当一名虚拟的精英站点可靠性工程师 (SRE),能够响应告警、分析日志/指标,并将平均恢复时间 (MTTR) 缩短至秒级。
## 📺 黑客松演示视频
请观看完整的 workflow、动态 agent 生成以及实时可观测性数据流的实际演示:
* **演示视频链接:** [https://youtu.be/bYop9qhEUvk](https://youtu.be/bYop9qhEUvk)
## 🏗️ 架构图
```
graph TD
subgraph Observability Data
A[Fake E-Commerce Platform] -->|Appends logs| B[logs/app.log]
B -->|Monitored & Ingested| C[Splunk Enterprise]
end
subgraph Triggering Outage
C -->|Alert Fired| D[Splunk Webhook]
D -->|POST /alerts| E[FastAPI Service :8020]
end
subgraph LangGraph Multi-Agent Registry
E -->|Initiates Workflow| F[Supervisor Router]
F -->|1. Analyze Context| G[Planner Agent]
G -->|Classify & Resolve Registry| H[capabilities.json]
H -->|Spawn Specific Specialists| I[Pluggable Worker Agents]
subgraph Registry Worker Nodes
I -->|Database Outage| J[Database Agent]
I -->|System Errors| K[Log Agent]
I -->|Performance Stats| L[Metrics Agent]
I -->|Pattern Analysis| M[Anomaly Agent]
I -->|Deployment Events| N[Deployment Agent]
I -->|Troubleshooting Guides| O[Runbook Agent]
end
J & K & L & M & N & O -->|Structured Findings| F
F -->|3. Diagnose Cause| P[RCA Agent]
P -->|4. Recommend Solution| Q[Remediation Agent]
Q -->|5. Wait for Review| R[Interactive Approval Node]
R -->|6. Compile Briefing| S[Response Agent]
end
subgraph Output & Frontend
S -->|Save JSON Report| T[reports/incident_report.json]
E <-->|WS Telemetry Stream| U[React Vite Dashboard :5173]
end
style F fill:#f9f,stroke:#333,stroke-width:2px
style G fill:#bbf,stroke:#333,stroke-width:2px
style R fill:#ffb,stroke:#333,stroke-width:2px
style T fill:#bfb,stroke:#333,stroke-width:2px
```
## 📁 目录结构
```
SplunkAgenticOps/
├── .venv/ # Python virtual environment (managed by uv)
├── .env # Local environment credentials & keys
├── pyproject.toml # Project dependencies & python metadata
├── verify_opspilot.py # E2E pipeline verification script
├── LICENSE # MIT Open Source License
├── runbooks/ # Local Operations Knowledge base
│ ├── runbook_db.py # Local runbook search engine
│ ├── database_errors.md # DB troubleshooting runbook
│ ├── redis_errors.md # Redis cache runbook
│ └── payment_errors.md # Payment gateway runbook
├── api/ # FastAPI Web API layer
│ ├── main.py # FastAPI service endpoints
│ ├── mcp_client.py # Reusable Splunk MCP stdio wrapper
│ └── websocket_manager.py # WebSocket client manager
├── agents/ # LangGraph Multi-Agent Orchestrator
│ ├── state.py # Graph state definitions
│ ├── models.py # Pydantic structured output schemas
│ ├── registry.py # Dynamic worker agent registry
│ ├── nodes.py # Individual Agent logic (Gemini)
│ ├── planner_agent.py # Planning and alert classification agent
│ ├── graph.py # Dynamic LangGraph compilation
│ └── domain/ # Domain specialist agents
│ ├── database_agent.py
│ ├── network_agent.py
│ ├── security_agent.py
│ ├── kubernetes_agent.py
│ ├── application_agent.py
│ └── infrastructure_agent.py
├── generator/
│ └── log_generator.py # Mock e-commerce log generator
├── logs/
│ ├── app.log # Continuously generated logs
│ └── deployment.log # Correlated deployment events
└── frontend/ # React + Vite frontend dashboard
├── src/
│ ├── App.jsx # React frontend logic and dashboard UI
│ └── main.jsx
└── package.json
```
## 🛠️ 前置条件
请确保您的机器上已安装以下内容:
* **Python 3.12+**(推荐使用 `uv`)
* **Node.js 18+**(包含 `npm`)
* **Splunk Enterprise**(配置为摄取 `./logs/app.log` 并监听 `8089` 端口)
## 🚀 设置与安装指南
请按照以下步骤在本地设置并运行 OpsPilot AI。
### 1. 配置环境
在根目录下创建一个 `.env` 文件:
```
MCP_Encrypted_Token=
GEMINI_API_KEY=
SPLUNK_USER=
SPLUNK_PASSWORD=
```
### 2. 后端设置
我们使用 `uv` 来实现极速的 Python 包管理。
1. 如果您尚未安装 `uv`,请先安装:
pip install uv
2. 安装所有依赖并创建虚拟环境:
uv sync
### 3. 前端设置
1. 进入前端目录:
cd frontend
2. 安装 Node 依赖:
npm install
## 🏃 运行平台
要运行完整的系统,您需要启动模拟日志生成器、FastAPI 后端和 Vite 前端。
### 步骤 1:启动日志生成器
在一个新的终端窗口中,开始生成模拟的电商日志:
```
uv run python generator/log_generator.py
```
*这会持续将错误/正常日志追加到 `./logs/app.log` 中,以供 Splunk 摄取。*
### 步骤 2:启动 FastAPI 后端
在一个新的终端窗口中,运行 uvicorn Web 服务器:
```
uv run uvicorn api.main:app --host 127.0.0.1 --port 8020
```
*注意:后端监听 `8020` 端口,以避免与运行在 `8000` 端口上的 Splunk Web 发生冲突。*
### 步骤 3:启动 Vite 前端
在一个新的终端窗口中,启动 React 开发服务器:
```
cd frontend
npm run dev
```
打开浏览器并访问 **[http://localhost:5173](http://localhost:5173)**。
## 🧪 E2E Pipeline 验证
您可以通过运行自动化测试套件来验证后端 router、agent 注册表、Splunk MCP 查询以及 LangGraph 序列化是否完美运行:
```
uv run python verify_opspilot.py
```
此脚本将:
1. 测试与 Splunk MCP Server 的连接。
2. 模拟 `Database Outage Alert` 事件。
3. 触发 Planner Agent 生成动态 pipeline。
4. 按顺序执行各个专家 agent。
5. 将输出保存到 `reports/incident_report.json`,并断言所有第 5 阶段(Phase 5)的 key 均已存在。
## 💎 功能
* **动态生成 UI:** 空闲的 pipeline 会显示一个整洁的占位符节点池。只有当专家 agent 被 Planner 规划并生成时,其对应的卡片才会实时出现在仪表板上。
* **WebSocket 批量限流:** 传入的状态更新会在 50ms 的队列中进行限流,从而防止 DOM 抖动和渲染闪烁,确保在屏幕录制期间保持高性能。
* **交互式审批:** 引擎会在 Approval Node 处暂停,等待操作员手动确认后才会执行修复。
* **兼容性回退:** 对于缺少执行计划的旧事件,系统会回退以完整静态预览执行步骤,从而保持完全的向后兼容性。
## 📄 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
标签:AI智能体, API集成, AV绕过, BurpSuite集成, FastAPI, LangGraph, React, Syscalls, 可观测性, 运维, 逆向工具