Vivek-122005/Edge-Incident-Response-Agent

GitHub: Vivek-122005/Edge-Incident-Response-Agent

基于 Cloudflare 边缘计算的有状态 AI Agent,能在 60 秒内自动检测 API 异常、调查日志并生成事件摘要。

Stars: 0 | Forks: 0

# Edge Incident Response Agent ## 项目描述 一个有状态的 AI Agent,能够实时监控您的 API,检测异常情况,自主进行调查(通过浏览日志和查询数据库),并向人类发出警报——所有这些都在边缘零服务器的情况下运行。 本项目是基于 Cloudflare 构建的一个端到端的事件响应系统: - 边缘入口监控 + 异常检测 - 使用 Durable Objects + Agents SDK 进行有状态的 AI 调查 - 基于历史事件的检索增强上下文 - 在 60 秒内自动生成事件摘要 - 通过 WebSocket 在 React 仪表板中提供实时事件订阅源 ## 问题陈述 当 API 发生故障或遭到攻击时,工程师通常需要花费 15 到 30 分钟的时间手动关联日志、检查仪表板并撰写事件报告。这个过程不仅缓慢、成本高昂,而且容易出错。当前的监控工具(如 Datadog、PagerDuty)只能向您发出警报——但它们无法替您展开调查。 本项目通过一个自主的边缘 Agent 弥补了这一空白,该 Agent 能够在 60 秒内检测、调查并总结事件——完全无需任何集中式服务器。 ## 高层架构 ``` API Traffic → Workers (Ingress Monitor) ↓ anomaly detected Agents SDK + Durable Objects (IncidentAgent) ↓ investigation tools ┌───────────┼───────────┬───────────┐ D1 Vectorize Workers AI KV (logs) (RAG) (Llama 3.1) (config) ↓ report written WebSocket → CF Pages Dashboard ``` ``` ┌─────────────────────────────────┐ │ Cloudflare Edge │ │ │ API Traffic ─────▶│ [Worker] Ingress Monitor │ │ ↓ anomaly detected │ │ [Agents SDK + Durable Object] │◀── WebSocket (live UI) │ IncidentAgent │ │ ↓ spawns tasks │ │ ┌────┴──────────────────────┐ │ │ │ Tool 1: Query D1 logs │ │ │ │ Tool 2: Vectorize (RAG) │ │ │ │ Tool 3: Workers AI LLM │ │ │ └───────────────────────────-┘ │ │ ↓ writes summary │ │ [D1] incidents table │ └──────────────────────────────────┘ ↓ [CF Pages] React Dashboard (live incident feed via WebSocket) ``` ## Cloudflare 服务 | 服务 | 用途 | |---|---| | Workers | 入口监控、异常检测、API 路由 | | Agents SDK | 有状态的 IncidentAgent 编排 | | Durable Objects | 单个事件的状态和内存 | | Workers AI | LLM 推理 (Llama 3.1 8B) | | D1 | 请求日志和事件记录 | | Vectorize | 历史事件的语义搜索 (RAG) | | KV | 配置、黑名单、事件报告存储 | | Pages | 带有实时 WebSocket 订阅源的 React 仪表板 | ## 在线演示 - **仪表板**:https://incident-dashboard.pages.dev - **Worker**:https://incident-response-agent.vivek-23csai.workers.dev ## 本地开发 前置条件:Node.js 18+、Wrangler CLI、Cloudflare 账户 ``` # 安装依赖 npm install # Terminal 1 — 本地运行 Worker npx wrangler dev # Terminal 2 — 运行 dashboard npm run dev:frontend # Terminal 3 — 触发 demo 事件 node simulate.js ``` ## 部署 ``` # 部署 Worker wrangler deploy # 部署 dashboard npm run build wrangler pages deploy dist --project-name=incident-dashboard ``` ## 数据库设置 ``` # 创建 D1 database wrangler d1 create incident-db # 应用 schema wrangler d1 execute incident-db --remote --file=schema.sql # 创建 KV namespace wrangler kv namespace create incident-kv # 创建 Vectorize index wrangler vectorize create incident-vectors \ --dimensions=768 --metric=cosine ``` ## 工作原理 1. Worker 监控每一个 API 请求并将其记录到 D1 2. 当错误率在 2 分钟的窗口期内超过 40% 时,触发 Agent 3. 在距离最近的 Cloudflare PoP 实例化 Durable Object 4. Agent 查询 D1 以获取最近的错误日志(阶段 A) 5. Agent 在 Vectorize 中搜索相似的历史事件(阶段 B) 6. Agent 调用 Workers AI 进行根因分析(阶段 C) 7. 将报告写入 D1,并将 Embedding 存储到 Vectorize(阶段 D) 8. WebSocket 将每个步骤广播到实时仪表板 9. 整个调查过程在 60 秒内完成 ## 关键设计决策 **为什么选择 Durable Objects?** 普通的 Workers 是无状态的。每个事件都需要一个能够记住其查询过的内容、AI 得出的结论以及当前调查阶段的 Agent。Durable Objects 提供了同置的计算和存储——状态读取仅需微秒而非毫秒。 **为什么选择 Workers AI 而不是 OpenAI?** AI 推理永远不会离开 Cloudflare 的网络。没有外部 API 往返,无需管理凭证,也没有数据流出成本。 **为什么选择 Vectorize?** 将过去的事件摘要存储为 Embedding 可以实现语义搜索。Agent 会找到 3 个最相似的历史事件,并将它们作为上下文提供给 LLM——无需单独的服务即可实现 RAG。 ## 影响 | 指标 | 数值 | |---|---| | 检测延迟 | < 30 秒 | | 调查时间(手动) | 15–30 分钟 | | 调查时间(自动) | < 60 秒 | | 边缘覆盖范围 | 300+ 个 Cloudflare PoP | | 所需服务器数量 | 零 | 为 Cloudflare 部署构建 —— 第二阶段提交。
标签:AIOps, API安全, API监控, Durable Objects, JSON输出, Llama 3.1, LLM, RAG检索增强生成, React, Syscalls, Unmanaged PE, WebSocket, 人工智能代理, 依赖分析, 告警系统, 安全巡检, 异常检测, 数据库查询, 程序员工具, 自动化攻击, 自动化调查, 边缘AI, 边缘计算, 运维自动化