chromadb
Catalog date: 2026-06-24.
A vector store used for embedding indices in dev cells and small-
collection production cases. Larger production cells use
milvus instead — ChromaDB stays in the topology
so the local-dev compose stack and per-cell base manifests keep
parity.
Identity
| Field | Value |
|---|---|
| Service id | chromadb |
| Role | vector-store |
| Image | chromadb/chroma:1.0.16 |
| Port | 8000 (in-cluster) / 8001 (host bind in compose to avoid clashing with alphaswarm-core) |
| Storage | ephemeral by default; PVC-backed in cluster |
Deployment surfaces
| Surface | Where |
|---|---|
| Compose | service chromadb in alphaswarm_platform/compose/docker-compose.yml |
| Kustomize | deployments/kubernetes/base-services/chromadb/ |
| Companion | base-services/milvus/ — production-grade alternative |
Dependencies
Upstream: none.
Downstream:
alphaswarm-core— viaalphaswarm/data/chroma_store.py(ChromaStore), which holds thedatasets(file-level metadata for the Data Scout),memories(long-term agent memory), andalphaswarm_code_snippetscollections. NoALPHASWARM_VECTOR_STOREflag was found in the codebase; connectivity is controlled byALPHASWARM_CHROMA_HOST/chroma_host(defaultlocalhost, falls back to an embeddedPersistentClientwhen unset).alphaswarm-workerfor embedding ingest tasks.
Note: the HierarchicalRAG package (now canonically implemented in
alphaswarm_kb, re-exported from
alphaswarm/rag/) does
not use ChromaDB for its retrieval vectors — per its own docstring,
"all vector storage, BM25 caches, and reflection logs go through the
single Redis instance"; Chroma is used only for the dataset/code/memory
metadata collections above.
Operations
- Collection lifecycle: managed by
ChromaStore(alphaswarm/data/chroma_store.py); never created directly by agents. - Vector dimensions: must match the active embedding model. The
configured default is
chroma_embedding_model = "all-MiniLM-L6-v2"(alphaswarm_configsettings), notBAAI/bge-m3— falls back to Chroma'sDefaultEmbeddingFunctionifsentence-transformersisn't installed. - Backup: the in-cell PVC is snapshotted nightly; production cells with significant collections should swap to Milvus.
See also
alphaswarm/data/chroma_store.py—ChromaStore(datasets / memories / code-snippet collections).alphaswarm/rag/—HierarchicalRAGpackage (Redis-backed vectors, re-exported fromalphaswarm_kb.rag).base-services/milvus/— production alternative.