跳转至

Postgres FTS / pgvector Adapter

结论

P0 默认路线是 Markdown 渐进披露 + Postgres FTS/pgvector 检索缓存。当前已新增 PostgresFtsSearchConnector 作为真实 Postgres adapter 边界。

它与现有 SearchConnector contract 对齐:

  • search()
  • get_document()
  • report_gap()
  • explain()
  • delete_or_supersede()

没有 Postgres 服务时,CI 不会假装通过真实 adapter;本地仍用 sqlite_fts 作为可复现 SQL/FTS 替身。配置了 psycopgHARNESS_POSTGRES_DSN 后,Postgres adapter 会自动进入 SearchConnector conformance connector 集合。

当前状态

已完成:

  • adapter 文件:framework/context/adapters/postgres_fts.py
  • optional availability gate:postgres_adapter_available()
  • conformance 注册:有 HARNESS_POSTGRES_DSN 时加入 postgres_fts
  • 测试:未配置 DSN 时明确 skip / 不注册,不阻塞 CI

运行方式:

bash HARNESS_POSTGRES_DSN='postgresql://user:pass@localhost:5432/harness' \ python scripts/search_connector_conformance.py --connector all --write-report

仍未完成

  • pgvector embedding 字段、向量索引和 hybrid rerank。
  • Postgres migration / schema version 管理。
  • P50/P95 延迟、索引重建时间、删除传播和权限变更传播 benchmark。
  • 与真实业务源 Connector 的增量写入。

下一步

  1. 在本地或 CI service container 中启动 Postgres,跑 postgres_fts conformance。
  2. 加入 pgvector 字段和 embedding fixture,但仍保持权限、lifecycle、filter 在 evidence 进入 prompt 前执行。
  3. 把 Postgres adapter 的延迟和成本写入实验索引。