Skip to content

v0.6.0 — Vector Backend Abstraction + Qdrant

Choose a tag to compare

@heyhayes heyhayes released this 22 Feb 00:56
· 43 commits to main since this release

What's new

Vector Backend Abstraction

VectorBackend and Embedder protocols decouple storage from business logic. MemoryStore becomes a thin layer that delegates to whichever backend is configured.

Qdrant Backend

Native Qdrant support with server-side tag filtering via MatchAny, deterministic UUID point mapping, and concurrent read/write support. No more SQLite contention from ChromaDB under multi-agent workloads.

Hybrid BM25 + Vector Search

When using Qdrant, search combines dense vector similarity with BM25 keyword matching via reciprocal rank fusion. Enabled by default — transparent to the MCP tool interface.

Migration CLI

annal migrate --from chromadb --to qdrant --project <name> moves data between backends with batched inserts and progress reporting.

Config-driven Backend Selection

storage:
  backend: qdrant
  backends:
    qdrant:
      url: http://localhost:6333
      hybrid: true

Defaults to ChromaDB for backwards compatibility. Install Qdrant support with pip install annal[qdrant].

Stats

  • 10 commits, 12 files changed
  • 185 tests passing (16 Qdrant backend + 10 Qdrant integration)
  • New files: backend.py, backends/chromadb.py, backends/qdrant.py, migrate.py