快速上手

架构

OpsKeeper 由一个控制平面、一个数据平面、一套插件接口组成。本页介绍它们是如何组合在一起的。

控制平面

控制平面用显式的状态机(也就是闭环)驱动事件流转。每次跃迁都受护栏保护,并产生一笔 append-only 账本事件。

control plane
┌──────────────────────────────────────────────────────────────┐
│                    OpsKeeper 控制平面                         │
│                                                              │
│   ┌─────────────┐  ┌─────────────┐  ┌────────────────────┐    │
│   │ loopbiz     │  │ manager     │  │ 安全边界            │    │
│   │ (状态机)     │→ │ (派发)       │→ │ (提案 + 审计)        │    │
│   └─────┬───────┘  └─────┬───────┘  └─────────┬──────────┘    │
│         │                │                    │               │
└─────────┼────────────────┼────────────────────┼───────────────┘
          ▼                ▼                    ▼
       (ledger)        (workers)            (proposals)

闭环

八个阶段,依次推进;护栏未满足时闭环拒绝往下走:

  1. detected —— 从 Prometheus / Loki / Tempo / Webhook 接入告警。
  2. correlated —— 跨源语义去重(规则 + 带熔断器的 LLM)。
  3. investigated —— 跨指标、日志、追踪、代码、主机、拓扑的只读 RCA。
  4. critiqued —— 在严重度 ≥ critical 时由同行 critic 审计 RCA。
  5. approved —— 对挂起提案的人工审批。
  6. recovered —— 窄域变更执行器运行已审批动作。
  7. verified —— 独立验证器返回 VerifiedDelta。
  8. postmortem —— Reporter 基于预计算的 ReportFacts 撰写报告。

Manager 派发

Manager 维护一张决策表,把 (phase, severity, role) 映射到 Worker。每个 Worker 声明一个 safety_level,从 L0(只读)到 L3(带提案的可变更)。Manager 拒绝派发安全级别高于阶段允许值的 Worker。

dispatch table (节选)
- phase: detected
  severity: [info, warn, error, critical]
  worker: alerter
  safety_level: L0

- phase: investigated
  severity: [info, warn, error, critical]
  worker: investigator
  safety_level: L0

- phase: approved
  severity: [info, warn, error, critical]
  worker: repairer
  safety_level: L3   # 需要挂起提案 + 人工审批人

数据平面

  • PostgreSQL —— 事件记忆、append-only 账本(loop_event_logloop_stateloop_contract),MySQL GET_LOCK 风格的咨询锁用于编排串行化。
  • Qdrant —— 对历史事件做向量检索。关键字召回 + RRF 融合排序;每个查询保留候选决策证据。
  • Nacos Config —— 技能注册中心,HTTP 2.x API,本地降级,30 秒轮询热加载。
  • OpenTelemetry —— 端到端 W3C traceparent 传递。

插件接口

仓库里自带两个插件:

  • agentteams-plugin-installer —— 把 AgentTeams Dashboard 变成 OpsKeeper 的插件控制台(5 个扩展点 + HTTP API)。
  • opskeeper-teamharness —— Worker 侧插件,通过 stdio MCP 暴露 17 个工具。Bearer + HMAC + W3C traceparent 鉴权。

Append-only 账本

闭环背后有两份持久化记录。loop_event_log 是 append-only 事件事实源 —— 数据库触发器拒绝 UPDATE/DELETE,更正一条事件的唯一方式是追加一条 correction。每次写入都带幂等键,重放是 exactly-once。在此之上,每个变更提案的 跃迁(insert / decide / expire / execute / rollback)都会向 chat_proposal_audit 追加一行,构成 SHA256 哈希链:hash_n = SHA256(prev_hash || canonical_json(payload) || proposal_id || action)。 任何对 payload 或顺序的篡改都会使后续所有哈希失效,仓库内置的校验器会遍历整条链并报告第一处断链。

可观测

  • 仓库自带 Prometheus 抓取配置。
  • Loki 日志流和 Tempo 追踪按 trace_id 关联。
  • 为闭环、审计账本、技能健康度预置 Grafana 仪表盘。