Expand description
Embedding-based Knowledge Retrieval for ctx_knowledge.
Wraps ProjectKnowledge with a vector index for semantic recall.
Facts are automatically embedded on remember and searched via
cosine similarity on recall, with hybrid exact + semantic ranking.
Structs§
Constants§
- BACKFILL_
PER_ REMEMBER - Per-
remembercap forbackfill_missing. One MiniLM mini-batch (embed_batchchunks at 64) — bounded latency on the write path while an actively-used project converges to full vector coverage within a few calls. - SEMANTIC_
DUP_ THRESHOLD - Cosine threshold above which a freshly-remembered fact is treated as a
semantic near-duplicate of an existing one. Deliberately conservative — only
genuine paraphrases (“DB is Postgres” / “we persist to PostgreSQL”) clear it,
so the advisory stays signal, not noise. Non-destructive: it nudges the agent
to
judge, never auto-merges (distinct facts can be near in embedding space, e.g. “Postgres 14” vs “Postgres 15”).
Functions§
- backfill_
missing - Lazy vector backfill: embeds up to
capcurrent facts that are missing from the side-car index. Facts land without vectors on two paths — the consolidation/ETL writers never embed at all, and a non-blockingrememberskips its side-car while the engine is still warming up. Without a healer those facts stay invisible tomode=semanticrecall until a manualembeddings_reindex. Called fromrememberunder the per-project lock once the engine is warm, so active projects self-heal incrementally. Returns the number of facts embedded. - compact_
against_ knowledge - embed_
and_ store - find_
semantic_ duplicates - Embedding-based near-duplicate detection for
remember. Mirrors the lexicalfind_cross_key_similarbut scores cosine similarity, so paraphrases that share few tokens are still caught. Read-only against the pre-upsert index, so the incoming fact never matches itself. Returns advisory hits for the agent to resolve viajudge— it never mutates or merges facts. - format_
scored_ facts - missing_
current_ facts - Current facts that have no vector in the side-car index, most valuable
first (same ordering as
embeddings_reindex: confidence, then recency). Engine-free so the selection is unit-testable with raw indices. - reset
- semantic_
recall - semantic_
recall_ semantic_ only