Skip to main content

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

  • AGM-R (Python reference implementation): agm_r/
  • License: MIT

Metadata

Release files for epistemic-vectors 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for epistemic-vectors 0.1.2
File Size Uploaded
epistemic_vectors-0.1.2.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for epistemic-vectors 0.1.2
File Interpreter ABI Platform
epistemic_vectors-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / epistemic_vectors-0.1.2.tar.gz

Download URL epistemic_vectors-0.1.2.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2c43aad98ea855076725fc032c27c4adc35cf19884329c8dde697558ba2038d7
BLAKE2b-256 checksum
How to use checksums
65c228e7a9c94b8706d195d442ebecf14ce018d4a473023c96b7132fe6918dfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.15

Release files / epistemic_vectors-0.1.2-py3-none-any.whl

Download URL epistemic_vectors-0.1.2-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c39e332e2fe22e3e12171718587657ae392f670af8b62b41a369743bd9831943
BLAKE2b-256 checksum
How to use checksums
0c4f83b1850c0f3141689c187e941c3b23af3107853375d108902b82a74e6c32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.15

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page