跳转到内容

模块 I——清点与发现

模块 I 是 estate 的目录:一份被动的、由总线驱动的清单,涵盖所有存在的事物——agent、 会话、Claude Code 实例、MCP 服务器、skill、工具、资源、模型、提供方以及非人类身份。它通过 监听来发现,从不通过探测,且只记录关系、标识符和存活性——从不记录载荷。本页是关于目录所 持有内容、以及它刻意不持有内容的参考。

连接器(connector)发出的是观测,而非实体。它们将规范化的 edge.observedcost.sampled 事实发布到 事件总线上;它们所隐含的实体从不被发送。模块 I 从每条观测的自然引用中物化出它所命名的 核心实体:一个发起方 session/agent/identity、一个 MCP 服务器、一个工具、一个资源、 一个 skill,以及——从成本采样中——一个提供方和一个模型(被发现,不含定价;定价归 FinOps 所有)。物化在至少一次(at-least-once)投递下是幂等的:按自然键执行 find-or-create,因此同一条观测被看到两次也绝不会重复出一个实体。

本模块注册了它自己的一个实体,inventory.catalog_entry——一个附加到每个被物化核心实体上的 发现叠加层。它记录一个事物是如何被发现的,而非它做了什么:一组信号来源、它被观测到所在的 主机、首次与最后一次出现的时间戳、一个出现计数,以及一个值为 activestale 的存活性 status。一个周期性的**陈旧性扫描(staleness sweep)**会在某条目在所配置窗口内未被看到时 将其标记为 stale,并在它一重新出现时立即翻回 active;该扫描只覆盖模块实际观测过的租户 (它无法、也不会枚举租户)。读取面很小且为只读:一个按 kind 和 source 计数的 summary、 一个可按 kind 和 status 过滤的分页 entities 列表,以及单实体详情视图。每次读取都需要一个 按租户限定、带命名空间的读取权限(最低的查看者层级即足够);摄取是高频的,且不按写入逐条审计。 完整形状见事件总线参考以及产品的类型化接口。

模块 I 是一个纯粹的消费方。它订阅 edge.observedcost.sampledfinding.reported,且只写入它自己的目录叠加层及它所派生的核心实体。它不发出任何自己的事件, 也不暴露任何执行(actuation)面——发现按其本质就是观测并编目。它所持久化的引用从连接器到达时 已经过脱敏;模块逐字存储它们,且不添加任何自己的原始细节,因此最小数据特性是传输协议(wire)的 特性,端到端地得以维持。