知识库构建学习目录

知识库简介

面向 AI Agent 的知识库不是“把文件塞进向量数据库”,而是一个持续运行的内容产品:来源可证明、权限可执行、版本可解释、更新和删除能传播、派生索引可重建、发布失败可回滚、质量可量化。

本库从 canonical store(规范事实存储)出发,建立“来源记录 → 版本修订 → 解析/切块/嵌入等派生产物 → 已发布检索投影”的生命周期。具体 Chunking、Embedding 和向量查询留给后续知识库;这里重点回答:什么能入库、哪一版可服务、谁能看到、失败后怎样恢复。

在总路线中的位置

先完成 文档解析,得到带来源和结构的元素;本库把这些元素纳入可运营的知识生命周期。之后依次学习 Chunking 策略、Embedding、向量数据库、语义搜索、Reranking 和 RAG。

学习目标

完成后,你应能:

  • 从用户问题、权限、引用和新鲜度要求反推知识对象与 schema;
  • 区分业务文档 ID、来源序列、source revision、pipeline revision 和发布版本;
  • 设计全量/增量采集、游标、幂等、失败隔离与 transactional outbox;
  • 保留来源、处理活动、责任主体与派生关系;
  • 让内容更新在新投影成功前继续服务旧版本,同时让 ACL 收紧和删除立即 fail closed;
  • 把关键词、向量和图索引视为可重建投影,而非唯一事实;
  • 通过墓碑、传播确认、对账和保留策略治理删除;
  • 分层评测 ingestion、content、retrieval 和 answer,而不是只看最终回答。

前置知识

  • 掌握 JSON、API 与 SQLite 基础;
  • 理解 文档解析 的源哈希、元素和质量门禁;
  • 会运行 Python 3.11+ 标准库测试;不要求先会向量数据库。

推荐学习顺序

  1. 需求、边界与 Schema:从用户任务定义 canonical 与派生对象、身份和契约。
  2. 采集、来源与规范化:设计 connector、增量游标、lineage、幂等和批次门禁。
  3. 版本、删除与权限:安全地发布、撤权、删除、复活与回滚。
  4. 索引与增量更新:用 outbox 驱动可重建投影,并持续对账。
  5. 评测、运营与增量项目:运行 SQLite 项目,验证失败发布、ACL 和墓碑传播。

动手实践或项目入口

项目使用 canonical revisions、扁平 ACL 快照、outbox、搜索投影和发布指针。41 项测试验证相同输入 no-op、来源序列乱序拒绝、pipeline 重处理、失败投影保留旧版本、ACL 变化立即阻断、删除墓碑、受控内容清除、输入/候选资源边界、过期事件不物化,以及查询时从 canonical 与 search 的实际正文、ACL 和状态字段重算完整性。worker 在物化前还会验证 event 的 tenant/document 与 revision 一致,且 revision 仍是当前状态;已被更新或删除取代的 event 仍会完成消费,但不会留下搜索副本。在线查询先用 canonical ACL 做候选与 limit 硬过滤,再校验已授权候选的投影正文/ACL;未授权文档不会占用候选窗口,投影单边扩权也不会获得可见性。项目是单进程 SQLite 教学模型,不实现层级/deny/ABAC 权限解析或旧 revision 投影到期清理,也不等于生产身份系统、消息总线、签名证明或物理擦除工具。

核心发布不变量

flowchart LR
    source["来源事件"] --> canonical["同事务写 canonical revision 与 outbox"]
    canonical --> worker["幂等 worker"]
    worker --> current{"身份匹配且仍为 current"}
    current -->|否| consumed["消费事件但不物化搜索副本"]
    current -->|是| projection["构建搜索投影与 ACL 快照"]
    projection --> published["原子切换 published pointer"]
    source --> revoke["撤权或删除"]
    revoke --> blocked["立即阻断查询并传播清除"]

这个图描述的是安全发布关系,不是分布式事务承诺。生产系统仍须定义消息顺序、重试、缓存失效、跨存储删除完成证据与身份提供方的可信边界。

跨 parser element、chunk、index generation、authorization snapshot 与 source-span citation 的目标不变量见来源到引用 reference model;实际导入本项目 SQLite revision/outbox/published pointer 的 adapter 见跨模块来源适配与原子发布;把受保护 revision/parser/chunk/entry 载荷交给另一个消费者,并重新执行 trusted binding、live deny 与 local publish 的边界见External Provenance Artifact v2。

掌握标准

  • 每个知识对象有稳定业务 ID、来源版本/序列、内容哈希、ACL 和生命周期状态。
  • 我能解释 canonical revision、current revision、published revision 和搜索投影的区别。
  • 相同事件可安全重放;旧事件不会覆盖新状态;冲突不会静默处理。
  • 内容更新失败时旧版可继续服务,但 ACL 收紧和删除不会继续暴露旧内容。
  • 删除能传播到 chunk、embedding、关键词/向量投影、缓存和保留策略,并有确认信号。
  • 索引能从 canonical 数据与版本化配置重建,发布前后有数量和抽样对账。
  • 查询在候选生成阶段执行 tenant/ACL 过滤,缓存键包含授权上下文。
  • 查询会把 published pointer 同时连接到 canonical revision 与搜索投影,重算正文/状态 hash 并比较 ACL;不能依赖后台对账稍后发现越权投影。
  • 我能用覆盖率、新鲜度、队列年龄、传播延迟和检索 gold set 验收系统。

与其他知识库的关系

主要参考资料

来源获取日期:2026-07-22。动态连接器、数据库和授权产品行为应以实施时的官方文档为准。