SearchConnector Conformance:适配器共同验收集¶
这个实验验证什么¶
这个验收集把 InMemorySearchConnector、Retrieval Platform Benchmark 和 Context Layer Benchmark 里反复出现的失败模式,提炼成真实检索投影 adapter 必须共同通过的 contract cases。
它不是检索质量 benchmark,也不是 Postgres / OpenSearch 性能测试。它先回答一个更基础的问题:一个 adapter 是否遵守 Harness 的最低安全和可解释边界。
运行命令:
bash
python scripts/search_connector_conformance.py --write-report
输出文件:
text
vault/50-outputs/search-connector-conformance-results.json
vault/50-outputs/search-connector-conformance-analysis.md
当前结果¶
当前有两个 CI 可跑 connector:
in_memory:合成参考实现。sqlite_fts:本地 SQLite FTS5 adapter,用真实 FTS 索引和 SQL 表验证 contract,不依赖外部服务。
另外已经新增两个外部服务 adapter skeleton:
postgres_fts:Postgres FTS / pgvector 形态的 P0 默认检索投影 adapter,配置HARNESS_POSTGRES_DSN且安装psycopg后进入 live conformance。opensearch:OpenSearch / Elasticsearch 规模化 adapter,配置HARNESS_OPENSEARCH_URL后进入 live conformance。
两者合计 14 个 conformance case 全部通过:
| Case | 验证点 |
|---|---|
search_filters_before_ranking |
search() 必须在 ranking 前过滤权限和 lifecycle |
get_document_scope_gate |
get_document() 也必须执行权限和 lifecycle gate |
filters_are_enforced |
metadata 和 tag filters 必须真实缩小候选集 |
include_superseded_is_opt_in |
superseded evidence 只能显式 opt-in 后出现 |
delete_or_supersede_propagates |
删除/替换必须影响默认搜索可见性 |
explain_reports_filter_reasons |
explain() 必须说明权限/lifecycle 过滤原因并返回 score parts |
gap_report_receipt |
report_gap() 必须返回可审计 receipt |
对真实 adapter 的要求¶
SQLite FTS adapter 不替代 Postgres FTS/pgvector 或 OpenSearch/ES。它的作用是让 P0 Demo 在没有外部服务时先跑通真实索引路径、权限过滤、lifecycle、explain 和删除传播。
Postgres FTS/pgvector adapter 和 OpenSearch/ES adapter skeleton 已经接入可选注册,但当前本地没有真实外部服务,因此还没有声明它们通过 live conformance。后续不能各自维护一套测试口径。最低要求是:
- 先跑
search_connector_conformance。 - 再跑真实后端自己的性能、分词、索引传播和删除传播测试。
- 再进入
retrieval_platform_benchmark和context_layer_benchmark对照。
这样可以避免一个常见坑:某个后端 Recall 很高,但权限过滤、deleted/superseded 传播、gap report 或 explain 信息不符合 Agent 进入 prompt 前的安全边界。
下一步¶
- 为 Postgres FTS/pgvector 准备测试 DSN,跑 live conformance、延迟、删除传播和 rank_log 完整性。
- 为 OpenSearch/ES 准备测试 endpoint,跑 live conformance、索引传播、权限过滤和规模化查询成本。
- 扩展 conformance:路径/owner/存在性泄漏、rank_log 字段完整性、批量 delete/reindex 传播。
- 把 conformance 结果纳入研发进度 dashboard 和 CI gate。