zeal175/incident-response-agent

GitHub: zeal175/incident-response-agent

一个利用团队事件记忆加速诊断与修复的 AI 响应代理。

Stars: 1 | Forks: 0

# Prometheus 一个 AI 代理,能够记住你的团队解决过的每一个事件,并利用这些记忆在数秒内诊断新事件。 ## 它做什么 粘贴错误日志或告警。代理会: 1. 使用 **Hindsight** 搜索你的事件历史中相似的过去案例 2. 生成具体的诊断结果与精确修复命令 3. 从你保存的每个已解决事件中学习并存入记忆 随着时间推移,代理会显著变得更强大。你的团队之前见过的错误将在数分钟内解决。重复性问题会被立即标记并提供永久修复方案。 ## 架构 ``` flowchart LR subgraph client [Browser] UI[Chat UI] end subgraph next [Next.js server] R["/api/respond"] T["/api/retain"] end subgraph memory [Hindsight Cloud] recall[recall] retain[retain] end LLM[Groq LLM] UI --> R UI --> T R --> recall R --> LLM T --> retain ``` ASCII 等效表示: ``` User paste → POST /api/respond → Hindsight recall (top 5) → Groq diagnosis → JSON User save → POST /api/retain → Hindsight retain (structured incident text) ``` ## Hindsight 内存的使用方式 本项目使用 [Hindsight](https://github.com/vectorize-io/hindsight) 作为持久化内存层,由 Vectorize 提供支持。 - **`recall()`** — 在每次 LLM 响应前调用。语义层面搜索过去事件;结果被注入到 Groq 系统提示词中。 - **`retain()`** — 当工程师保存解决方案时调用。存储错误、根因、修复方法和解决时间。 没有 Hindsight:每次查询都得到通用的 LLM 建议。 使用 Hindsight:具体的根因、精确的命令、时间预估——全部来自你团队的实际历史记录。 请参阅 [Hindsight 文档](https://hindsight.vectorize.io/) 和 [代理内存概览](https://vectorize.io/what-is-agent-memory)。 ## 技术栈 - Next.js 14(App Router)+ TypeScript - [Hindsight Cloud](https://hindsight.vectorize.io/) — `@vectorize-io/hindsight-client` - Groq(`qwen/qwen3-32b`) - Tailwind CSS + Framer Motion(UI) - Vercel(部署) ## 本地运行 1. 克隆仓库 2. `npm install` 3. 复制 `.env.local.example` 到 `.env.local`,并添加你的 API 密钥 4. `npm run seed` — 生成 20 个合成事件(仅运行一次) 5. `npm run dev` — http://localhost:3000 ### 在全新的 Hindsight 实例上重新运行种子(或者修复重复项) 种子脚本 **始终保留** `scripts/seed.ts` 中的每一行数据——它不会先清空数据库。再次运行 `npm run seed` 会在 **相同的** 数据库上 **追加** 约 20 条记忆,因此召回结果可能看起来嘈杂。 **选项 A — 全新空数据库(推荐用于干净起点):** 在 `.env.local` 中设置一个 **新的** 数据库 ID,例如 `HINDSIGHT_BANK_ID=incident-response-fresh`,保持相同的 API 密钥,然后运行: ``` npm run seed ``` `ensureIncidentBank()` 会在数据库不存在时创建它,随后种子脚本只填充一次。 **选项 B — 全新的 Hindsight 项目:** 在 [Hindsight Cloud](https://ui.hindsight.vectorize.io) 中创建一个新的 API 密钥 / 工作区,将其放入 `HINDSIGHT_API_KEY`,可选地设置一个新的 `HINDSIGHT_BANK_ID`,然后运行 `npm run seed`。 **选项 C — 删除重复项:** 打开 [Hindsight 控制台](https://ui.hindsight.vectorize.io),选择你的数据库,并手动删除重复或测试条目,而不是在旧数据上重新种子。 ## 环境变量 | 变量 | 是否必需 | 描述 | |------|----------|------| | `HINDSIGHT_API_KEY` | 是 | 来自 [Hindsight Cloud](https://ui.hindsight.vectorize.io) | | `GROQ_API_KEY` | 是 | 来自 [Groq 控制台](https://console.groq.com) | | `HINDSIGHT_BASE_URL` | 否 | 默认:`https://api.hindsight.vectorize.io` | | `HINDSIGHT_BANK_ID` | 否 | 默认:`incident-response` | | `DISABLE_RECALL` | 否 | 设为 `true` 以跳过 Hindsight 召回(无记忆的演示模式——仅通用 LLM) | 促销码 `MEMHACK409` → $50 Hindsight Cloud 积分(黑客马拉松)。 ### 演示模式:启用/禁用记忆 **不要**在实时演示过程中编辑路由代码。在 `.env.local` 或 Vercel 中设置: ``` DISABLE_RECALL=true ``` 重启开发服务器(或重新部署)。提交相同的错误两次:第一次运行是通用回答;设置 `DISABLE_RECALL=false`(或移除它),重启后再次提交以展示召回与具体诊断。 当 `DISABLE_RECALL` 启用时,UI 会显示 **“演示:召回已禁用”** 横幅。 ## 视频检查清单(2–5 分钟) 1. **无记忆:** 设置 `DISABLE_RECALL=true`,粘贴一个真实的错误(例如 Redis OOM 在结账时)——展示通用回答和横幅。 2. **有记忆:** 关闭 `DISABLE_RECALL`,粘贴相同的错误——展示“已召回事件”和引用记忆的具体诊断。 3. **保存:** 勾选“保存到记忆”并确认成功。 4. **学习:** 再次询问类似问题(可选)——召回应能提取新事件。 ## 安全 - 使用 **`.env.local`** 存储密钥。该仓库会忽略 `.env` 和 `.env*.local` 文件——不要提交 API 密钥。 ## 许可证 如果仓库中包含,请参考 [LICENSE](LICENSE)。
标签:AI智能体, API服务, API集成, Hindsight Cloud, LLM, SEO: AI 运维, SEO: 智能事件响应, SEO: 自动化故障处理, SRE, TypeScript, Unmanaged PE, Vectorize, 事件诊断, 云端内存, 保留与回忆, 偏差过滤, 历史回溯, 可观测性, 告警处理, 固定修复, 安全插件, 工程效率, 持久化内存, 搜索召回, 日志解析, 时间预估, 根因分析, 模块化设计, 端到端诊断, 系统提示词注入, 结构化存储, 聊天界面, 自动化修复, 自动化攻击, 记忆代理, 证书伪造, 语义搜索, 重复问题标记, 错误日志