Storage Classify¶
storage-classify 决定你工作中产生的内容应该被保存到哪里,让每一项都落到符合其形态和复用方式的存储中。它作为 /init、/build-kb 和会话总结的一部分自动运行——你不需要直接调用它。
功能作用¶
当 Datus 产出值得保留的内容时——一条业务事实、一段已验证的 SQL、一个指标定义、一项偏好——storage-classify 会判断它属于哪个存储并路由过去。结果是你的知识库始终保持有序:事实存到你能找到的地方,定义被索引以供检索,而一次性的噪声则根本不会被持久化。
内容去向¶
| 内容 | 存储 |
|---|---|
| 可复用的业务规则——字段编码、强制过滤条件、业务术语到字段的映射、join 陷阱 | knowledge(knowledge/*.md) |
| 一张表的结构——它的标识符、度量和维度 | 语义模型 |
| 基于某个度量构建的具名业务指标 | 指标 |
| 一段完整、已验证、值得作为示例留存以供复用的 SQL | 参考 SQL |
| 高层的项目概览——架构、服务、数据资产、知识库索引 | AGENTS.md |
| 与单个 agent 绑定的、跨会话的轻量偏好 | memory |
| 可复用的多步骤工作流,你会再次运行 | skills |
| 一次性内容,或任何从 schema 已能明显看出的信息 | 不持久化 |
你能观察到什么¶
- 在
/init或/build-kb之后,产出的内容会被分散到这些存储中,而不是堆在一处。 - 业务规则成为可检索的
knowledge条目;可复用查询成为参考 SQL示例;表结构成为语义模型——每一项之后都能被检索到。 - 琐碎或不可复用的内容会被刻意排除,使知识库不被噪声填满。
示例¶
假设你完成了一次分析,用一段已验证的查询回答了“按地区统计的月活跃用户”,并在过程中得知 status = 'A' 表示活跃账户。运行结束后,storage-classify 会把这些片段分别路由:
- 已验证的查询 → 参考 SQL(一个可复用示例),
status = 'A'这条规则 → knowledge(查询背后的原因),- 若定义了地区用户数指标 → 指标。
每一项都落入为它而设的存储,于是下一个类似的问题就能同时复用这三者。
与 Init 和 Build KB 的关系¶
storage-classify 是 /init 和 /build-kb 在判断其发现与生成产物归属时所依赖的路由层。它只做分类与路由——真正的生成和索引由这些命令的相应部分完成。