ProllyTree lets you do top-k semantic search over text — and then rewind it, branch it, diff it, and merge it the way Git lets you do those things to code. Eight slides; takes about a minute.
An embedder turns each piece of text into a list of numbers — its vector. Texts that mean similar things land at similar coordinates. Search is then just "what's nearest?" The real index uses 384 dimensions; we're showing 2D so it's legible.
Hover any point to read its text. → press ▶ or right-arrow to continue
Your query becomes a point in the same space. Top-k sorts every document by distance and returns the closest ones. Try a query — watch where it lands.
Every write — to the primary tree and to the index — lands in a real Git commit. Click any commit below to time-travel back; both panes change together because they're stored together.
What makes versioned vector search actually useful: the source text and the index are committed atomically — never out of sync, never drifting. With a separate vector DB you babysit a sync job. Here you don't.
Fork the store, try something — re-embed with a new model, re-chunk for tighter recall,
index a speculative document an agent might be hallucinating. Discard if it doesn't help,
merge back if it does. Just store.branch("experiment").
Most vector databases give you "the latest state, whatever it happens to be." ProllyTree treats your embeddings the way you'd treat your code: a typed, reviewable, recoverable artifact.
An agent ingested a bad batch. Roll back to the last good commit; the search index travels with the data. No reindex.
Branch, swap MiniLM for an OpenAI model via CallableEmbedder, re-embed, compare recall. Discard the loser.
Diff two commits and see exactly which memories were added, removed, or rewritten between yesterday and today.
One store, many namespaces. Each agent gets its own primary tree + index. One commit covers all of them.
Inherited from the Merkle tree underneath. Every value carries an inclusion proof you can hand to a verifier.
Embeddings and source text share one transaction. No sync job, no consistency window, no drift.