p-vbordei/incident-response
GitHub: p-vbordei/incident-response
Vollko 立方平台应急响应模块,实现警报到调查剧本的自动化转换和 RCA 时间线生成。
Stars: 0 | Forks: 0
# 应急响应
**状态:** L2 后 · Vollko 立方平台的一部分。
**语言:** TypeScript (Bun/Node) · 依赖:`cube-runtime`、`cube-spine`、`loop-closers`。
- **接收** — `Alert` + `AlertSource` 接缝 (`poll()`), 使用脚本化的、队列排空的 `FakeAlertSource`。接收规则 `triage` 丢弃线程回复:只有顶级警报会触发调查,因为回复是已经在路上的警报的后续聊天。
- **RunbookStore** — 以主题为键的运行手册 (`get`/`append`),内存中但由 JSONL 支持以便从已解决的突发事件中学到的可重用模式被写回并能在重启后存活 — 将一次性 RCA 转化为机构知识的循环。`get(topic)` 返回步骤或 `null`;调查员将 `null` 视为“没有先前的剧本,从第一原理开始调查”。`append` 在 `(topic, step)` 上是幂等的。
- **调查员(同步)** — 接缝 (`investigate(alert, runbook) → Rca`),使用脚本化的、确定性的 `FakeInvestigator`。当存在运行手册时,其步骤引导 RCA,脚本步骤随后执行。真实的同步调查员驱动代理在日志、指标和跟踪上运行;假的允许在没有实时代理的情况下测试编排。
- **AsyncInvestigator(异步/真实路径)** — 异步接缝 (`investigate(alert, runbook): Promise`) 由注入的 `AsyncModelBackend`(来自 `cube-runtime`)支持。三个导出构成了这条路径:
- `modelInvestigator(backend: AsyncModelBackend): AsyncInvestigator` — 将任何 `AsyncModelBackend` 包装到 `AsyncInvestigator` 中。后端由调用者提供;此包仅依赖于合同类型,从不依赖于模型 SDK。
- `buildInvestigatePrompt(alert, runbook): string` — 将警报和运行手册渲染成仅包含 JSON 的提示,发送到模型。
- `parseRca(text: string): Rca` — 将模型响应解析为 `Rca`。容忍围绕 JSON 对象的散文。**抛出异常**如果找不到 JSON 对象或如果缺少必需的字段(`rootCause: string`、`steps: string[]`、`resolved: boolean`)或类型错误 — 忽略合同的模型是真正的失败,而不是沉默的空 RCA。
- `FakeAsyncInvestigator` — 用于测试的确定性的异步调查员:使用固定的 `Rca` 脚本构建;反映了 `FakeInvestigator` 的运行手册前置行为。
- **runIncident** — 同步的自主循环。发出 `governance.incident.opened` → `cognition.rca` → `governance.incident.resolved` 作为因果链迹(RCA 时间线)到签名、哈希链 `Transcript`。在解决时关闭两个循环:根本原因被附加到通道的运行手册(通过 `patternFor`),并通过循环关闭器的 `OutcomeStore`(以 RCA 封面的相关性 ID 为键,`implicit` / `used`)捕获结果。返回 `IncidentResult` (`{ rca, timeline, correlationId, outcome }`);通过 `RunIncidentOptions` 配置。
- **runIncidentAsync** — `runIncident` 的异步兄弟。具有相同的管道,但接受 `RunIncidentAsyncOptions`(它接受 `AsyncInvestigator` 而不是同步 `Investigator`)并返回 `Promise`。所有其他字段 — `runbooks`、`transcript`、`bus`、`outcomes`、`when` — 与同步版本相同。
- **IncidentResult**:`{ rca: Rca, timeline: Envelope[], correlationId: string, outcome: OutcomeRecord | null }`。
开发:`bun install`、`bun test`、`bun run typecheck`。
**Vollko 立方平台** 的一部分 — 一个用于 AI 原生组织的可组合构建块的多仓库。参见 [参考星系](https://github.com/p-vbordei/reference-constellation) 了解整个堆栈端到端运行;包通过 `file:../` 互相依赖,因此 `cube-runtime`、`cube-spine` 和 `loop-closers` 必须与此一起克隆 — 独立克隆将无法 `bun install` 或构建。
Apache-2.0 © 2026 Vlad Bordei · https://github.com/p-vbordei
标签:GNU通用公共许可证, JSONL, Node.js, RCA 时间线, Ruby, TypeScript, Vollko 平台, 事故处理, 事故调查, 同步处理, 告警处理, 安全插件, 安全运营, 异步处理, 扫描框架, 指标分析, 模型后端, 知识传承, 知识库, 脚本化, 自动化攻击, 运行手册, 队列处理