Skip to content

Milvus vector store

Milvus is a distributed vector database, selected via VECTOR_STORE_PROVIDER=milvus.

Enable it

bash
VECTOR_STORE_PROVIDER=milvus
MILVUS_URI=http://localhost:19530
MILVUS_TOKEN=your-milvus-token

Install the client: pip install pymilvus.

Configuration

VariableDefaultDescription
VECTOR_STORE_PROVIDERpgvectorSet to milvus to use this store.
MILVUS_URIhttp://localhost:19530URI of a running Milvus server (>= 2.4, standalone or cluster).
MILVUS_TOKEN(empty)Optional auth token.

Notes

  • Unit-tested against a mocked pymilvus client, not integration-tested against a live server. Expression syntax and client-method signatures target the pymilvus 2.4 MilvusClient API but are unverified end to end.
  • keyword_search has no BM25: it degrades to a scoped fetch of up to a scan limit plus Python term-overlap scoring, so recall is capped and scores are not comparable to ts_rank.
  • list ordering and list_scope_values are handled in Python (no ORDER BY, no DISTINCT) over a capped scan.
  • Partial updates (update/invalidate/increment_access/set_related_memory_ids) are read-modify-write upserts, not atomic field updates, so concurrent writers to the same id can lose an update.
  • Writes are not immediately visible to reads (Milvus is eventually consistent), unlike pgvector's read-your-writes. Milvus has no timestamp type, so valid_to uses a year-9999 sentinel in place of Postgres 'infinity'.

The memory layer for AI agents.