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 替身。配置了 psycopg 和 HARNESS_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 的增量写入。
下一步¶
- 在本地或 CI service container 中启动 Postgres,跑
postgres_ftsconformance。 - 加入
pgvector字段和 embedding fixture,但仍保持权限、lifecycle、filter 在 evidence 进入 prompt 前执行。 - 把 Postgres adapter 的延迟和成本写入实验索引。