阶段、护栏与账本事件
每一个事件都流过同样的八个阶段,每个阶段都有明确的输入、输出和护栏,决定闭环能不能往下走。
检测
从 Prometheus / Loki / Tempo / Webhook / On-call 多源接入告警。静态规则负责 PG / Redis / Host 的预分组。
关联
使用 DIAGNOSIS_SKILL_MAP + LLM 语义去重(带熔断器)做跨源去重。
调查
跨指标、日志、追踪、代码、主机、拓扑的只读根因分析,附带置信度的证据链。
评审
在严重度 ≥ critical 时,由同行 critic 审计 RCA。只发 needs_correction,不发明问题 —— 多数时候是快速 no-op。
审批
对挂起提案的人工审批。对资源、命令、payload 哈希做精确匹配。没有审批 → 不执行。
恢复
窄域授权的修复执行。未知工具和跨资源目标默认拒绝。所有动作落入审计账本。
验证
独立验证器只调用 recovery.verify。四项指标白名单,三级告警分级,向 Manager 返回 VerifiedDelta。
复盘
Reporter 由预计算的 ReportFacts 撰写八段式报告。资源趋势、监控覆盖、变更 —— 绝不杜撰。
提案是契约,不是愿望清单。
OpsKeeper 的审批阶段要求一份写明爆炸半径、精确匹配护栏和审计钩子的提案。控制平面会在缺失任何一项时拒绝派发恢复动作。
- 资源、命令、payload 哈希必须与已审批事件精确一致
- 未知工具和跨资源目标默认拒绝
- 审计事件在派发时 append,完成时 seal
phase: approved
proposal:
incident_id: INC-PG-POOL-001
worker: repairer
blast_radius: pg.connection_pool / one-db
guard:
required_approval: human
exact_match:
- resource
- command
- payload_hash
audit:
on_dispatch: ledger.append
on_complete: ledger.seal闭环的底座。
数据平面是故意做得朴素:一个关系库、一个向量库、一个配置中心、一套追踪标准。任何一个都能替换,不必重写闭环。
PostgreSQL
事件记忆、append-only 账本(loop_event_log / loop_state / loop_contract),以及 MySQL GET_LOCK 风格的咨询锁用于编排串行化。
Qdrant
对历史事件做向量检索。关键字召回 + RRF 融合排序,每个查询保留候选决策证据。
OpenTelemetry
端到端 W3C traceparent 传递,覆盖 Worker → MCP 代理 → 控制平面 → Web Console。
Nacos Config
技能注册中心,HTTP 2.x Config API,本地降级,30 秒轮询热加载。skill_meta.yaml 是事实标准。
加一个新 Worker,注册一个技能,看闭环把它路由进来。
OpsKeeper 自带 Manager 风格的派发器和 L0–L3 安全级别。新 Worker 只需要注册一个 Skill 并声明工具白名单即可加入。