按能力协商适配器,而不是绑定数据库

让知识持续可靠 · 数据库只做 adapter

lorebit 不会从零实现数据库内核。它会根据每种存储的真实能力,通过 adapter 组合知识工作流;不能完成的能力必须显式暴露,而不是悄悄降级。

适配器分层

Adapter它负责什么lorebit core 仍负责什么
DocumentStore保存原文、元数据与版本identity、revision 与激活决策
VectorIndex语义候选检索查询编排、结果解释与 citation
LexicalIndex关键词、过滤或精确匹配hybrid 策略与缺失能力处理
GraphStore关系或路径查询领域语义与跨 adapter 一致性
CheckpointStore摄取、重建与恢复进度幂等、重试与失败状态机

先列任务需要的能力

不要从“我们已经在用什么数据库”开始。先对照用户任务列出必要能力,再判断某个 adapter 是否能诚实提供它:

用户任务需要问的能力问题
找到能支持回答的规则能否按语义、关键词、范围或版本做候选筛选?
解释答案来自哪里能否回到原文、片段和版本,而不是只返回分数?
替代一份旧规则能否保存 revision,并让旧资料停止进入默认回答?
资料更新后恢复能否报告重建进度、失败状态和可安全重试的边界?

任何一个问题的答案是“不能”都不是失败;关键是把它公开为能力边界,再调整工作流或补充适配器。

能力协商比“支持某数据库”更重要

同一个数据库产品可能只启用了部分索引、过滤或事务能力。因此 adapter 应声明 capabilities,core 再据此决定一条查询或重建路径是否可执行。

这让使用者能看见选择的代价:例如只有向量检索时,系统可以明确说明关键词匹配不可用;而不是把结果变化伪装成正常行为。

用能力卡评审一条知识流程

未来 0.x 版本应让使用者或集成方看见每条流程实际协商到了什么能力,以及缺少它时影响哪个用户结果。它不要求今天给出某个 provider 名称或配置格式。

能力它服务的用户结果缺少时必须怎样说明
原文与修订保存来源可回溯、旧新关系可解释不能承诺版本化证据或历史回溯。
片段定位引用能回到原文位置回答不能把模糊来源当作精确证据。
语义候选检索处理同义表达与自然语言问题需要说明可用的替代路径或不支持范围。
关键词与过滤对术语、地区、套餐和时间做确定性约束不能静默把范围判断交给相似度。
关系查询处理依赖、继承或跨资料路径不应把缺失的关系判断伪装成完整解释。
处理检查点让更新、重建和重试可追踪不能把部分完成说成已全部最新。

一张能力卡的结论可以是“当前不支持这条流程”,这比用不等价的降级悄悄给出看似正常的答案更诚实。

0.x 目标合同如何约束 adapter

adapter 是为了兑现 U6,而不是为了让 lorebit 绑定更多数据库。core 需要基于 adapter 声明的真实能力决定一条资料处理、检索或恢复路径能否满足用户合同;当不能满足时,使用者应得到确定性的限制说明、可选的缩小结果或明确的不支持,而不是 provider-specific 的隐式行为。

不属于 adapter 的事

  • 决定哪一份 revision 当前有效。
  • 在部分失败后协调重试或重建。
  • 把检索结果组织成带来源的上下文。
  • 把 DevCodex 或其他宿主当成唯一产品边界。

选择时避免两个误区

第一,不要把“能存向量”误写成“能交付可信答案”;检索只是证据路径的一段。第二,不要把 provider 名称写进核心规则;不同团队可能需要不同的文档、全文、向量、图或检查点能力组合。lorebit 的用户文档只帮助你表达这些选择,不替你指定供应商。

下一步:检查质量与恢复