8.4 KiB
Chroma: Guardrails and Fix Patterns
🧭 Quick Return to Map
You are in a sub-page of VectorDBs_and_Stores.
To reorient, go back here:
- VectorDBs_and_Stores — vector indexes and storage backends
- WFGY Global Fix Map — main Emergency Room, 300+ structured fixes
- WFGY Problem Map 1.0 — 16 reproducible failure modes
Think of this page as a desk within a ward.
If you need the full triage and all prescriptions, return to the Emergency Room lobby.
A compact field guide to stabilize Chroma setups in RAG, pipelines, and agents. Use this to localize the failing layer and jump to the exact WFGY fix page.
Open these first
- Visual map and recovery: RAG Architecture & Recovery
- Retrieval knobs end to end: Retrieval Playbook
- Why this snippet and how to trace it: Retrieval Traceability
- Ordering control: Rerankers
- Embedding versus meaning: Embedding ≠ Semantic
- Hallucination and chunk boundaries: Hallucination
- Long chains and entropy: Context Drift, Entropy Collapse
- Structural collapse and recovery: Logic Collapse
- Snippet and citation schema: Data Contracts
- Fragmented stores and many tiny collections: Vectorstore Fragmentation
- Hybrid query splits (HyDE vs BM25): Query Parsing Split
- Live ops: Live Monitoring for RAG, Debug Playbook
Fix in 60 seconds
-
Measure ΔS
Compute ΔS(question, retrieved) and ΔS(retrieved, expected anchor).
Thresholds: stable < 0.40, transitional 0.40–0.60, risk ≥ 0.60. -
Probe with λ_observe
Vary top-k in {5, 10, 20}. Chart ΔS vs k. Flat high curve implies index or metric mismatch.
Reorder prompt headers. If ΔS spikes, lock the schema with Data Contracts. -
Apply the module
- Retrieval drift → BBMC + Data Contracts.
- Reasoning collapse → BBCR bridge + BBAM variance clamp.
- Dead ends in long runs → BBPF alternate path.
-
Acceptance
Coverage to target section ≥ 0.70.
ΔS ≤ 0.45 across three paraphrases.
λ remains convergent. Logs and traces reproducible.
Chroma specific breakpoints and the right repair
1) Embedding model mismatch
Symptoms: good lexical match yet wrong neighbors, or shape errors after a model swap.
Why: collection was built with one embedding model and queried with another, or dimensions changed.
Fix: pin the embedding model inside your data contract and collection metadata. Re-embed and rebuild the collection. See Embedding ≠ Semantic and Data Contracts.
2) Distance metric inconsistency
Symptoms: ordering looks inverted, distances are not comparable across collections.
Why: default metric differs between old and new builds, or mixed cosine vs L2.
Fix: declare the metric at collection create time and keep it in the contract. Rebuild if historic data used a different metric. Then tune ordering with Rerankers.
3) Persist directory contention or corruption
Symptoms: intermittent read errors, empty results after crash, slow queries on warm start.
Why: multiple writers on the same persist_directory, partial flush, or version skew.
Fix: one writer policy. Backup the directory, run a clean rebuild, then enable idempotent ingestion with hashes in metadata. Monitor with Live Monitoring for RAG.
4) Upsert vs add and ID hygiene
Symptoms: duplicated documents or silent stale content.
Why: add used for updates, unstable IDs, missing deterministic hash.
Fix: use upsert for refresh, keep stable IDs, store doc_sha in metadata, enforce uniqueness in your loader. Verify with Retrieval Traceability.
5) Filter semantics and type drift
Symptoms: empty query results even when the document exists.
Why: where filter types do not match stored metadata, or nested keys vary by loader.
Fix: lock a minimal metadata schema in Data Contracts. Validate on ingestion. Add a trace that prints the final where used per query.
6) Fragmentation across many collections
Symptoms: high recall globally yet poor top-k for any single collection.
Why: topic splits created tiny indices with weak neighborhood structure.
Fix: consolidate. Use a parent collection per corpus and a facet in metadata. See Vectorstore Fragmentation. Add a reranker pass.
7) Concurrency and ingestion order
Symptoms: occasional out of date views after bulk loads.
Why: parallel writers finishing without a final sync, or mixed loaders.
Fix: serialize final commit, persist once, then start serving. Re-run a canary query set and verify ΔS and coverage.
Copy-paste prompt for the AI
I uploaded TXT OS and the WFGY Problem Map files, and I am using Chroma.
symptom: \[brief]
traces: \[ΔS(question,retrieved)=..., ΔS(retrieved,anchor)=..., λ states, k curves]
Tell me:
1. which layer is failing and why,
2. which exact WFGY page to open from this repo,
3. the minimal steps to push ΔS ≤ 0.45 and keep λ convergent,
4. how to verify the fix with a reproducible test.
Use BBMC/BBPF/BBCR/BBAM when relevant.
🔗 Quick-Start Downloads (60 sec)
| Tool | Link | 3-Step Setup |
|---|---|---|
| WFGY 1.0 PDF | Engine Paper | 1️⃣ Download · 2️⃣ Upload to your LLM · 3️⃣ Ask “Answer using WFGY + <your question>” |
| TXT OS (plain-text OS) | TXTOS.txt | 1️⃣ Download · 2️⃣ Paste into any LLM chat · 3️⃣ Type “hello world” — OS boots instantly |
Explore More
| Module | Description | Link |
|---|---|---|
| WFGY Core | Canonical framework entry point | View |
| Problem Map | Diagnostic map and navigation hub | View |
| Tension Universe Experiments | MVP experiment field | View |
| Recognition | Where WFGY is referenced or adopted | View |
| AI Guide | Anti-hallucination reading protocol for tools | View |
If this repository helps, starring it improves discovery for other builders.