Skip to main content

Epistemic Vectors — a provenance-native primitive for retrieval pipelines. Drop-in Epistemic Layer for LangChain, LlamaIndex, and Mem0.

Project description

epistemic-vectors

A provenance-native primitive for retrieval pipelines — the Epistemic Layer drops in between vector-store retrieval and generation in any RAG stack and attaches an Epistemic Vector to every returned document.

What semantic embeddings did for meaning, Epistemic Vectors do for belief state. Five typed slots per document — revision_state, provenance_depth, consistency_score, authority, freshness — derived deterministically from a belief graph. No LLM, no free-text classifier.

Install

pip install epistemic-vectors[langchain]       # LangChain adapter
pip install epistemic-vectors[llamaindex]      # LlamaIndex adapter
pip install epistemic-vectors[mem0]            # Mem0 adapter
pip install epistemic-vectors[all]             # all three

Quickstart — LangChain

from agm_r import KnowledgeGraph, assert_belief, revise
from epistemic_layer.adapters.langchain import EpistemicRetriever

# (1) Build a belief graph
kg = KnowledgeGraph()
kg = assert_belief(kg, term="pluto_classification", source_id="doc_a",
                       claim_text="Pluto is the ninth planet",
                       timestamp="1930-02-18")
kg = revise(kg, old_source_id="doc_a", new_source_id="doc_b",
                new_claim_text="Pluto is a dwarf planet",
                timestamp="2006-08-24")

# (2) Wrap any LangChain retriever (e.g. Chroma) with the Epistemic Layer
retriever = EpistemicRetriever(base_retriever=chroma_retriever, kg=kg)

# (3) Docs now carry an Epistemic Vector in their metadata
for d in retriever.get_relevant_documents("what is Pluto?"):
    print(d.metadata["epistemic_vector"])
    # {"source_id": "doc_b", "revision_state": "asserted", ...}

Filter or re-rank by vector slots:

retriever = EpistemicRetriever(
    base_retriever=chroma_retriever, kg=kg,
    filter_by=lambda ev: ev.revision_state != "retracted",
    rerank_by=lambda ev: 0.5 * ev.freshness + 0.5 * ev.consistency_score,
)

Quickstart — LlamaIndex

from epistemic_layer.adapters.llamaindex import EpistemicRetriever
retriever = EpistemicRetriever(base_retriever=vector_retriever, kg=kg)
nodes = retriever.retrieve("what is Pluto?")
for nws in nodes:
    ev = nws.node.metadata["epistemic_vector"]

Quickstart — Mem0

from mem0 import Memory
from epistemic_layer.adapters.mem0 import EpistemicMemory

base = Memory()
em = EpistemicMemory(base=base, kg=kg)
em.add(messages="Pluto is a dwarf planet", user_id="alice",
       metadata={"source_id": "doc_b"})
results = em.search(query="what is Pluto?", user_id="alice")
for r in results["results"]:
    print(r["epistemic_vector"])

The primitive itself (no adapter)

Use epistemic_vector() directly against any agm_r.KnowledgeGraph:

from agm_r import KnowledgeGraph, epistemic_vector
ev = epistemic_vector(kg, "doc_b")
print(ev)
# EV(doc_b, asserted, prov=0, cons=1.00, auth=1.00, fresh=1.00)

Links

  • Paper: Epistemic Vectors and the Epistemic Layer: A Provenance-Native Primitive for Retrieval Pipelines — NeurIPS 2026 (in submission)
  • AGM-R (Python reference implementation): agm_r/
  • License: MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epistemic_vectors-0.1.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epistemic_vectors-0.1.0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file epistemic_vectors-0.1.0.tar.gz.

File metadata

  • Download URL: epistemic_vectors-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.15

File hashes

Hashes for epistemic_vectors-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0acfc16ebd67ef2c433f83892ce3b7f966ad043bcff7bdd1346fb8a0920584be
MD5 e0f6128d31f52022ef36ee4714390172
BLAKE2b-256 59d811144b04da1c5e504b7fc2540f85d33621d679bfbb7724ec518f800786ec

See more details on using hashes here.

File details

Details for the file epistemic_vectors-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for epistemic_vectors-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 38986b23670a71df51b0ad2970339f577c61bf2d6f1db60617c235de14e4f44e
MD5 ed35c5abbe0fd4a62afad9a2ee4bdf1a
BLAKE2b-256 d5aeb62d9bdfbbec9d8c4b4e9bd2268c539d77439d3982b129e3e5e0e61de456

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page