Extract Knowledge¶
extract-knowledge 从一次完成的分析中挖掘可复用的业务事实,并把它们存为 knowledge/*.md 文件。当推理过程揭示出值得记住的非显而易见规则时,它会在查询成功后自动运行——你不需要直接调用它。
功能作用¶
当你得到一段可用的查询后,得到它的过程往往会揭示一些 schema 中看不到的信息:某个字段编码、一个必须始终施加的过滤条件、一个必须经过映射表的 join。extract-knowledge 会把这些捕获为原子的、可复用的事实,存入项目的 knowledge,于是下一个类似的问题就已经知道这条规则。
它会捕获什么¶
- 字段编码 / 枚举——例如
status = 'A'表示活跃账户。 - 强制过滤条件——例如始终排除
rtype = 'D'。 - Join 陷阱——例如两张表必须经过映射表才能 join。
- 业务术语到字段的映射——某个业务术语实际指向哪一列。
它会跳过琐碎的查询,以及已经记录过的事实。
何时运行¶
它作为其他流程的一部分被触发——例如在 /init、/build-kb 和 Session Summarize 期间——只要一次完成的分析暴露出一条持久的规则。通常你不需要手动运行它。
你能观察到什么¶
knowledge/ 下会出现新条目(并在 AGENTS.md 中建立索引),每条都是一项与你数据相关的简短原子事实。下次出现类似问题时,agent 会检索这些事实,而不是重新发现——或遗漏——这条规则。
示例¶
你问“上个月的活跃订阅总数”。要答对它,需要知道 status = 'A' 表示活跃,且已取消的行带有 rtype = 'D' 必须排除。一旦查询验证通过,extract-knowledge 会记录两条事实:
status = 'A'→ 活跃账户- 统计活跃数时始终排除
rtype = 'D'
两者都成为 knowledge 条目,于是之后关于活跃用户的问题会自动复用它们。