架构决策(ADR)
ADR 0006: 质量标准——以属性测试证明不变量,外加一个真实检索基准
将质量定义为由属性测试证明的保证,外加一个真实的带标注检索基准;领域准确率则交由用户自己的数据来评判。
状态:accepted · 日期:2026-06-17
不可变记录。豁免漂移追踪(无
covers)。只可被取代,不可编辑。
隶属于 0002 产品方向。
背景
当前所有评估都是合成数据的自洽性检验:QA 黄金集(41 个用例)在一份人工对齐的合成知识库上得分 1.0;检索 A/B 评测框架使用词法哈希作为金标准,其自身的 docstring 就说明它只能证明"评测框架的数学正确性,而非真实召回率";CI 中没有运行任何真实 LLM、真实语料或真实 embedding 模型。对一个通用库而言,准确率天然取决于用户自己的数据——排行榜分数不是 RAGSpine 应该拥有的东西。
决策
将质量定义为保证,而非分数:
- 首要——以属性测试证明不变量。 防编造机制绝不编造、来源溯源始终存在、RESTRICTED 绝不泄漏、行为具有确定性——把这些从少量 agent 层测试硬化为穷尽式的属性测试。这正是选择 RAGSpine 而非重依赖框架的理由。
- 外加一个真实检索基准。 唯一真正属于 RAGSpine 自己的断言——"混合检索 + listwise 重排优于朴素 BM25"——是引擎属性,而非用户数据属性。用一个真实(非合成)的带标注检索基准来支撑它,报告真实指标(Recall@k、MRR),在专用通道中运行(不必每次 CI 都跑)。
领域准确率基准测试被明确交由用户自己的数据来完成。
考虑过的备选方案(已否决)
- 以真实数据准确率评估作为发布门禁(方案 A):以真实标注集 + 真实模型覆盖所有通道作为标准。否决——准确率取决于用户的数据/模型,库无法对此负责。
- 合成数据 CI 门禁 + 单独发布的完整基准(方案 B):作为整体_框架_(以准确率数字为中心的质量观)被否决,但其中"发布一个真实基准"的切片被采纳,仅用于检索这一项断言。
影响
- "done / 1.0" 的含义是_不变量已被证明_,而非_在合成数据上的准确率_。
- 该检索基准是真实向量后端从 experimental 状态晋级的门禁(0005)。
- 保持快速、离线、确定性的 CI 循环不变,作为回归绊线。