跳转至

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。后续不能各自维护一套测试口径。最低要求是:

  1. 先跑 search_connector_conformance
  2. 再跑真实后端自己的性能、分词、索引传播和删除传播测试。
  3. 再进入 retrieval_platform_benchmarkcontext_layer_benchmark 对照。

这样可以避免一个常见坑:某个后端 Recall 很高,但权限过滤、deleted/superseded 传播、gap report 或 explain 信息不符合 Agent 进入 prompt 前的安全边界。

下一步

  1. 为 Postgres FTS/pgvector 准备测试 DSN,跑 live conformance、延迟、删除传播和 rank_log 完整性。
  2. 为 OpenSearch/ES 准备测试 endpoint,跑 live conformance、索引传播、权限过滤和规模化查询成本。
  3. 扩展 conformance:路径/owner/存在性泄漏、rank_log 字段完整性、批量 delete/reindex 传播。
  4. 把 conformance 结果纳入研发进度 dashboard 和 CI gate。