kshitijkumrawat20/SplunkAgenticOps

GitHub: kshitijkumrawat20/SplunkAgenticOps

OpsPilot AI 是一个基于 LangGraph 多智能体的自适应事件调查与响应平台,通过动态诊断系统中断、关联可观测性数据并推荐修复方案来缩短运维平均恢复时间。

Stars: 0 | Forks: 0

# OpsPilot AI — 自主事件调查与响应平台 [![观看演示](https://img.shields.io/badge/YouTube-Watch%20Demo-red?style=for-the-badge&logo=youtube)](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, 可观测性, 运维, 逆向工具