gyamini25/crisispilot

GitHub: gyamini25/crisispilot

CrisisPilot 是一个基于 Gemini 和 Google Cloud ADK 的多 agent 自主事故响应指挥系统,通过并行调查与 Dynatrace 实时数据关联,在生产事故发生时自动完成根因分析和修复建议。

Stars: 0 | Forks: 0

# CrisisPilot 当生产事故触发时,CrisisPilot 会迅速启动一个由专业 AI agent 组成的作战室,它们并行进行调查,将遥测数据与最近的部署相关联,量化业务影响,综合分析根本原因,并提出修复建议——所有这些都以人类可读的节奏实时流式传输到仪表板。 - **在线演示:** https://crisispilot.vercel.app ## 黑客松赛道及必需的集成 本项目以 **Dynatrace** 赛道为目标,并使用了所有三个必需的基础组件: | 需求 | CrisisPilot 如何使用它 | |---|---| | **Gemini** | 每个 agent 的推理均由 Gemini(`gemini-flash-lite-latest`)生成,并逐个 token 地流式传输到 UI。 | | **Google Cloud Agent Builder** | 这 5 个 agent 是真正的 **ADK (Agent Development Kit) `LlmAgent`**,通过 ADK 的 `Runner` 执行(`backend/app/agents/adk_runtime.py`)。 | | **合作伙伴 MCP — Dynatrace** | Agent 通过 stdio **使用官方的 Dynatrace MCP server**(`@dynatrace-oss/dynatrace-mcp-server`)查询 **Dynatrace Grail** —— 执行真实的 `execute_dql` 调用来获取指标和部署事件(`backend/app/integrations/dynatrace_mcp.py`)。 | 这三者都能优雅降级:如果密钥/凭证缺失或受到速率限制,agent 将回退到脚本化但逼真的推理模式,从而确保演示永不中断。 ## 架构 ``` ┌─────────────────────────────────────────────┐ Incident ──▶ │ Orchestrator (sequences the agent war-room) │ (sim / API / └─────────────────────────────────────────────┘ file upload) │ parallel │ then ┌────────┼────────┐ ┌────┴─────┐ ▼ ▼ ▼ ▼ ▼ Metrics Deployment Business RootCause Comms Agent Agent Impact Agent Agent │ │ │ ▼ ▼ ▼ Dynatrace MCP (execute_dql / deployments) ← real partner MCP │ each agent = ADK LlmAgent (Agent Builder) ← Gemini-backed │ pub/sub bus ──▶ WebSocket ──▶ Next.js dashboard (live) ``` - **前端:** Next.js 15 (App Router)、Tailwind、Framer Motion、React Flow - **后端:** FastAPI + WebSockets、异步事件总线 → WS 广播 - **持久化:** MongoDB Atlas (Motor),带有内存回退适配器 - **AI:** 基于 Gemini 的 ADK `LlmAgent`;使用 Dynatrace MCP 获取实时可观测性数据 ## 快速开始 需要两个终端。复制 `backend/.env.example` → `backend/.env` 并填入密钥 (均为可选——如果没有它们,应用将以降级的“脚本化”模式运行)。 ### 1. 后端 ``` cd backend ./run.sh # creates .venv, installs deps, boots FastAPI on :8000 ``` `.env` 密钥: - `GEMINI_API_KEY` — 启用实时的 Gemini + ADK agent - `DT_ENVIRONMENT` (`https://.apps.dynatrace.com`) + `DT_PLATFORM_TOKEN` — 启用 Dynatrace MCP 集成 - `MONGODB_URI` — 真实的 Atlas 持久化存储(忽略则使用内存模式) - `CRISISPILOT_USE_ADK=true` — 通过 ADK 运行 agent(默认开启) 健康检查:`GET /healthz` 会报告哪些集成处于活动状态。 ### 2. 前端 ``` cd frontend npm install npm run dev # http://localhost:3000 ``` 打开 **http://localhost:3000**,点击 **Trigger incident**,然后观察 agent 的调查过程。 ## 演示流程 1. 启动这两个服务。 2. 点击 **Trigger incident**(或调用 `POST /api/incidents/trigger`)。 3. 观察 Metrics → Deployment → BusinessImpact 并行调查,然后由 RootCause 进行综合分析,最后由 Comms 提出修复建议——全程实时流式传输。 4. 作战室会显示真实的 **Dynatrace MCP** 工具调用(`dynatrace.query`、`dynatrace.deployments`)并附有其来源注释。 ## 仓库结构 ``` crisispilot/ ├── backend/ │ └── app/ │ ├── agents/ # 5 agents + orchestrator + adk_runtime (Agent Builder) │ ├── integrations/ # dynatrace_mcp (partner MCP client) │ ├── api/ # REST + WebSocket │ ├── core/ # pub/sub + incident simulator │ └── db/ # Mongo-shaped store (in-memory fallback) └── frontend/ # Next.js dashboard ``` ## 许可证 [MIT](LICENSE)
标签:AI智能体, API集成, DLL 劫持, Google Cloud, 事故响应, 可观测性, 大语言模型, 运维监控, 逆向工具