跳转至

Extract Knowledge

extract-knowledge 从一次完成的分析中挖掘可复用的业务事实,并把它们存为 knowledge/*.md 文件。当推理过程揭示出值得记住的非显而易见规则时,它会在查询成功后自动运行——你不需要直接调用它。

功能作用

当你得到一段可用的查询后,得到它的过程往往会揭示一些 schema 中看不到的信息:某个字段编码、一个必须始终施加的过滤条件、一个必须经过映射表的 join。extract-knowledge 会把这些捕获为原子的、可复用的事实,存入项目的 knowledge,于是下一个类似的问题就已经知道这条规则。

它会捕获什么

  • 字段编码 / 枚举——例如 status = 'A' 表示活跃账户。
  • 强制过滤条件——例如始终排除 rtype = 'D'
  • Join 陷阱——例如两张表必须经过映射表才能 join。
  • 业务术语到字段的映射——某个业务术语实际指向哪一列。

它会跳过琐碎的查询,以及已经记录过的事实。

何时运行

它作为其他流程的一部分被触发——例如在 /init/build-kbSession Summarize 期间——只要一次完成的分析暴露出一条持久的规则。通常你不需要手动运行它。

你能观察到什么

knowledge/ 下会出现新条目(并在 AGENTS.md 中建立索引),每条都是一项与你数据相关的简短原子事实。下次出现类似问题时,agent 会检索这些事实,而不是重新发现——或遗漏——这条规则。

示例

你问“上个月的活跃订阅总数”。要答对它,需要知道 status = 'A' 表示活跃,且已取消的行带有 rtype = 'D' 必须排除。一旦查询验证通过,extract-knowledge 会记录两条事实:

  • status = 'A' → 活跃账户
  • 统计活跃数时始终排除 rtype = 'D'

两者都成为 knowledge 条目,于是之后关于活跃用户的问题会自动复用它们。