KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

04. 知识库怎样从“能搜到”走向可引用? — keel 龙骨

企业知识库的难点不是把字符串放进向量库,而是让结果同时满足租户隔离、主体权限、版本一致性和可审计引用。检索排序不能成为权限边界。

企业知识库的难点不是把字符串放进向量库,而是让结果同时满足租户隔离、主体权限、版本一致性和可审计引用。检索排序不能成为权限边界。

ACL-first pipeline

query
  -> tenant/principal filter
  -> lexical + semantic candidates
  -> deduplicate and rerank
  -> source/version/quote metadata
  -> citation validation

必须先过滤 ACL,再做召回和重排;“先召回、最后在 prompt 里隐藏”仍然会把越权内容暴露给模型。每个 chunk 应带 tenant_id、允许主体、source_uri、文档版本和稳定 chunk_id。版本变更后旧 citation 不能悄悄指向新文本。

混合检索不是一个分数

词法检索擅长精确错误码、资源名和 API 字段;语义检索擅长同义表达。生产系统通常把两路候选合并后再 rerank,并记录每路分数、模型版本和过滤原因。项目用确定性的 token/字符相似度作为替身,目的是让权限和证据契约可离线测试,而不是假装它是向量数据库。

运行:

python courses/advanced/advanced-agent-systems/course/project/examples/04_hybrid_retrieval.py
python courses/advanced/advanced-agent-systems/course/project/examples/05_citations_and_context.py

Citation 是结果契约

回答中的 citation 至少能映射到本次检索结果的 chunk_id、来源、版本和可验证 quote。伪造 URI、未召回 chunk、跨版本 quote 和 ACL 不允许的证据都应在回答提交前被拒绝。项目的 validate_citations() 是一个小型 groundedness gate;真实系统还应保存 query、候选集和最终上下文快照。

本章检查点

下一章:Context Engineering 怎样连接检索和压缩?

进入 keel 阅读