模块 XXII — 健康、SLA 与可用性
模块 XXII 回答关于 estate 中 AI 组件的三个问题——什么是健康的、什么处于降级或宕机状态, 以及什么依赖于什么。它的边界限定在 agent 与 MCP 服务器的可靠性, 而非一般意义上的主机或基础设施健康。本页是该模块测量什么、物化什么, 以及其诚实边缘何在的参考。
XXII 是核心的一个消费者,而非一个探测器:向客户基础设施打开套接字是连接器(connector)该管的事, 而封存的观测集(observation set)中没有健康这一种类(kind)。因此健康是推导而来, 其依据是该模块能够证明的信号:
- 存活(被动)。 一个会话或 agent 触及某个 MCP 服务器——或一个 agent 在行动—— 即是该主体存活的证据。它会刷新该主体的最后可见标记,并折叠出一条依赖边。
- 主动探测结果。 一个外部健康检查器或 agent 本身向某个按检查项划分的报告端点 POST 一个结果——这是”健康检查 / OTEL 指标”的诚实摄取路径。
- 陈旧(staleness)。 一个已知主体若在其预期节奏内停止被看见,本身就是一个信号。
一个后台扫描会将它转为
degraded,再转为down,并开启一个事件(incident)。 该扫描只会降级或标记为宕机;恢复仅来自真实的存活, 因此一个刚创建的检查项绝不会发出一次虚假的恢复。
它的契约与实体
Section titled “它的契约与实体”该模块拥有四个实体。一个健康检查(health check)是一个由运维方声明的受监控主体
(一个 agent 或一个 MCP 服务器),带有预期节奏与 SLA 目标;
它携带该主体当前的快照状态——healthy、degraded、down 或 unknown。
一个健康事件(health event)是一个仅追加的转换账本,可用度(uptime)与 SLA 从中重建而来——
绝不作为一个运行中的计数器存储。一个健康事件单(health incident)
是一个降级或宕机时段的 open→resolved 生命周期,每个主体强制只有一个开启中的事件单。
一个**健康依赖(health dependency)**是一条自动发现的 发起方 → 目标 边——
即依赖地图,以幂等方式累积。
健康仅为已声明的检查项物化。一个被观测到存活但没有已声明检查项的主体
会在依赖地图上被如实呈现为 observed——被看见存活,但健康未被测量——
这是一个与 healthy(一个已声明的检查项发出了信号)和 unknown(已命名、无存活证据)
都不同的状态。本产品绝不捏造一个它并未计算出的”已测量为健康”的状态。
当主体是一个核心 id 时,XXII 还会将该主体的当前状态镜像到核心的 HealthStatus 实体中,
以便其他平面可以读取一个 agent 或 MCP 的健康。
它消费什么、产出什么
Section titled “它消费什么、产出什么”XXII 从总线消费 edge.observed 用于被动存活与依赖地图,
外加抵达其 API 的主动探测报告。它产出,但不投递:
宕机、降级、已恢复与 SLA 违约信号以最小数据(minimal-data)的 FindingReport 形式
在 finding.reported 通道上发出——
即由模块 XV(通知)路由至 Slack、PagerDuty 或某个 SIEM 的
产品级告警流。XXII 从不投递,也从不订阅它自己的 findings。
- 事件总线参考 —
edge.observed(存活)与finding.reported(XXII 发出的信号)。 - 模块 XV — 输出集成与通知 — 将 XXII 的健康 findings 路由至各目的地。
- 模块概览 — XXII 所处的位置与执行的划分。
- 架构概览 — 引擎、总线与核心层。
- 诚实与边界 — 本产品今天观测什么与它执行什么。